我正在尝试使用 gvim 查找和替换文件层次结构,如下所示:
find . | xargs grep -l pattern | xargs -n 1 gvim -c "%s/pattern/replacement/gc" -c "wq"
Run Code Online (Sandbox Code Playgroud)
我可能会尝试在没有 n 标志的情况下使其正常工作,但理论上我可以拥有许多匹配的文件。现在发生的是 gvim 从终端分离,所以 xargs 一个接一个地启动 gvim 的所有实例,几乎没有延迟。如果我可以强制 gvim 保持终端,xargs 将等待 gvim 完成,因此将永远只有一个 gvim 实例在运行。
不幸的是,我无法在与之相关的环境中使用 vim。我从一位同事那里获得了 gvim 的工作二进制文件,但他们没有 vim 二进制文件,我自己编译 vim 失败,暂时放弃了。
您正在寻找-f
命令行选项:
Run Code Online (Sandbox Code Playgroud)-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|.
归档时间: |
|
查看次数: |
473 次 |
最近记录: |