VIM - 仅在搜索结果中更新多个文件

VIM - Update multiple files only in the result of search

这是我的问题:

我有一个大项目,从 ag 搜索器中过滤掉了很多文件和目录。

我需要更新多个文件,但只有我感兴趣的文件可供搜索者使用,所以我想做的是 :argdo:buffdo 但在收到的集合上来自 ag 个搜索请求。

  1. :Ag something_to_change -> 结果包含 10 个文件的列表
  2. Grep 这个结果并只对这 10 个文件执行替换命令

我想象它看起来像::Ag something_to_change | :args | :argdo %s/something_to_change/somthing_changed/ge | update

感谢您对此提出的任何建议

如果您使用的是较新的版本(7.4.858 及更高版本),您可以使用内置的 :cdo:cfdo 命令:

:Ag something_to_chnage
:cfdo %s/something_to_change/somthing_changed/ge

参见 :help :cdo:help :cfdo

如果你不这样做,我的插件 vim-qf 带有 :Doline:Dofile,它们与 :cdo:cfdo 的功能相同。