我正在使用:vim中的Ag来搜索模式,但我无法弄清楚如何搜索和替换我项目中的所有文件,或者直接指定的文件。这是怎么做到的?
答案 0 :(得分:16)
在Vim中,项目范围的搜索和替换最多只需两个步骤,除非您安装一个插件,为您提取这两个步骤的摘要{{3 }}
在最基本的形式中,项目范围的搜索/替换如下所示:
:args `grep -nl foo *.js`
:argdo %s/foo/bar/c
但:Ag
对你的帮助不大,因为Vim没有内置命令,类似于在quickfix列表上工作的:*do
系列。
Drew Neil有几个截屏视频,EasyGrep.和here,涉及项目范围内的搜索/替换。第二篇文章底部提到的:Qfdo
命令专门针对:vimgrep
/ :Ack
/ :Ag
个用户。使用there和:Ag
,两步流程变为:
:Ag foo
:Qfdo s/foo/bar/c
- 编辑 -
Vim现在有:cdo
,:cfdo
,:ldo
,:lfdo
。
答案 1 :(得分:0)
在vim
中,有多个解决方案,但您必须打开所有文件才能执行此操作。您可以在不同的窗口,缓冲区或选项卡中打开文件,对于所有选项,您可以使用方法对所有文件进行操作:
:windo :Ag
或
:bufdo :Ag
或
:tabdo :Ag
有关详细信息,请参阅:help windows
,:help buffers
或:help tab-page-commands
。