我最近切换到vim,并了解到您可以使用AG执行搜索。
我经常做
:Ag foo
Run Code Online (Sandbox Code Playgroud)
并且,在快速列表窗口中
:cdo s/foo/bar/g |update
Run Code Online (Sandbox Code Playgroud)
但是,它会打开缓冲区中的所有文件。如何不让 Vim 打开缓冲区,而让 vim 替换单词?
使用 :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 则遍历列表中引用的每个文件。