我正在使用vim中的:Ag来搜索模式,但是我不知道如何在我的项目中搜索和替换所有文件,或者在我指定的目录中进行搜索和替换。这该如何实现?
我正在使用vim中的:Ag来搜索模式,但是我不知道如何在我的项目中搜索和替换所有文件,或者在我指定的目录中进行搜索和替换。这该如何实现?
:args `grep -nl foo *.js`
:argdo %s/foo/bar/c
尽管如此,它对于:Ag
的帮助不大,因为Vim没有类似于:*do
系列命令的内置命令可以在快速修复列表上工作。
Drew Neil有几个屏幕录像这里和那里,处理项目范围的搜索/替换。第二篇文章底部提到的:Qfdo
命令专门针对:vimgrep
/:Ack
/:Ag
用户。使用该命令和:Ag
,两步操作变成:
:Ag foo
:Qfdo s/foo/bar/c
-- 编辑 --
Vim现在有:cdo
,:cfdo
,:ldo
,:lfdo
。
:cdo
的示例::cdo s/foo/bar/g
。该命令将在当前文件中查找所有包含"foo"的字符串,并将其替换为"bar"。 - Bala Clarkvim
中,有多种解决方案,但您必须打开所有文件才能执行此操作。您可以在不同的窗口、缓冲区或选项卡中打开文件,并且对于所有选项,您都有一种方法来操作所有文件::windo :Ag
或者
:bufdo :Ag
或者
:tabdo :Ag
请参阅:help windows
、:help buffers
或:help tab-page-commands
以获取更多信息。