全站搜索和替换 vim cdo no buffers

shi*_*igg 4 vim ag

我最近切换到vim,并了解到您可以使用AG执行搜索。

我经常做

:Ag foo
Run Code Online (Sandbox Code Playgroud)

并且,在快速列表窗口中

:cdo s/foo/bar/g |update
Run Code Online (Sandbox Code Playgroud)

但是,它会打开缓冲区中的所有文件。如何不让 Vim 打开缓冲区,而让 vim 替换单词?

gre*_*ory 5

使用 :cfdo 并关闭您打开和修改的所有缓冲区:

:cfdo :bd
Run Code Online (Sandbox Code Playgroud)

所以工作流程如下:

:Ag foo
:cdo %s/bar/baz/g | update 
:cfdo :bd
Run Code Online (Sandbox Code Playgroud)

:cdo 遍历 quickfix 列表中的每个条目,而 :cfdo 则遍历列表中引用的每个文件。