如何让 gvim 保持终端直到它结束?

how to make gvim hold terminal until it ends?

我正在尝试使用 gvim 查找和替换文件层次结构,如下所示:

  find . | xargs grep -l pattern | xargs -n 1 gvim -c "%s/pattern/replacement/gc" -c "wq"

我可能会尝试在没有 n 标志的情况下使其正常工作,但理论上我可以有很多很多匹配的文件。现在发生的是 gvim 从终端分离,所以 xargs 一个接一个地启动 gvim 的所有实例,几乎没有延迟。如果我可以强制 gvim 保持终端,xargs 将等待 gvim 完成,因此将永远只有一个 gvim 运行.

很遗憾,我无法在与之相关的环境中使用 vim。我从一位同事那里获得了 gvim 的工作二进制文件,但他们没有 vim 二进制文件,我自己无法编译 vim 并暂时放弃了它。

您正在寻找 -f 命令行选项:

-f        GUI: Do not disconnect from the program that started Vim.
          'f' stands for "foreground".  If omitted, the GUI forks a new
          process and exits the current one.  "-f" should be used when
          gvim is started by a program that will wait for the edit
          session to finish (e.g., mail or readnews).  If you want gvim
          never to fork, include 'f' in 'guioptions' in your |gvimrc|.