我在Vim中使用ag
进行字符串/文件搜索,效果很好。
然而,似乎没有太多的文档介绍如何构建用于ag的模式。
我试图在《实用 Vim》一书的示例中使用ag代替vimgrep。
我想在一个目录下递归地查找“Pragmatic Vim”的所有出现,并将此字符串替换为“Practical Vim”。有些文件中还有“Pragmatic Bookshelf”,这个字符串必须保留。
这本书建议采用以下方法:
/Pragmatic\ze Vim
:vimgrep /<C-r>// **/*.txt
在执行完该步骤后,请使用:Qargs
插件命令填充quickfix列表,最后执行:argdo %s//Practical/g
现在,我如何使用ag
指定/Pragmatic\ze
模式?
ag
是否设计用于我在这里尝试做的事情?
$ ag '(?<=Pragmatic )Vim'
可以找到 Vim,我正在尝试找到 Pragmatic 部分。然而,由于我正在尝试用相关文件填充 quickfix,这个命令似乎限制了列表到所需的文件。我想我需要阅读有关 PCRE 的资料。看来,我仍然需要使用/Practical\ze
来完成:argdo %s//Pragmatic/ge
部分? - user3156459ag
命令。在Vim内部的:s
命令中,你仍然需要使用\ze
。 - Ingo Karkat