Vim:Ag在全局和目录中搜索和替换

use*_*098 13 vim

我正在使用:vim中的Ag来搜索模式,但我无法弄清楚如何搜索和替换我的项目中的所有文件,或者我直接指定的文件.这是怎么做到的?

rom*_*inl 17

在Vim中,项目范围内的搜索替换最多只需两步即可完成,除非您安装一个插件,为EasyGrep提取这两个步骤.

在最基本的形式中,项目范围的搜索/替换如下所示:

:args `grep -nl foo *.js`
:argdo %s/foo/bar/c
Run Code Online (Sandbox Code Playgroud)

但是,它对你没有多大帮助:Ag,因为Vim没有类似于:*do在quickfix列表上运行的系列的内置命令.

Drew Neil 在这里那里有几个截屏视频,用于处理项目范围内的搜索/替换.:Qfdo第二篇文章底部提到的命令专门面向:vimgrep/ :Ack/ :Ag用户.与该命令:Ag,这两个步骤的过程变为:

:Ag foo
:Qfdo s/foo/bar/c
Run Code Online (Sandbox Code Playgroud)

- 编辑 -

现在,Vim有:cdo,:cfdo,:ldo,:lfdo.

  • 使用`:cdo`:`:cdo s/foo/bar/g`的示例 (5认同)