ag Silver Searcher:模式的规则是什么?

use*_*459 22 regex vim vimgrep

ag在Vim中使用字符串/文件搜索效果很好.

然而,似乎没有太多文档如何为ag构建模式.

我试图在Practical Vim的一个例子中使用ag而不是vimgrep.

我希望在递归中的目录中的所有文件中找到"Pragmatic Vim"的每一个出现,并用"Practical Vim"替换该字符串.在某些文件中还有"Pragmatic Bookshelf",并且该字符串必须保留.

这本书暗示了这种方法:

/Pragmatic\ze Vim
:vimgrep /<C-r>// **/*.txt
Run Code Online (Sandbox Code Playgroud)

然后,在该步骤之后,使用:Qargsplugin命令填充quickfix list ,最后:argdo %s//Practical/g

现在,我如何指定/Pragmatic\ze模式使用ag

ag在所有设计什么,我想在这里做什么?

Ing*_*kat 23

Silver Searcher工具使用PCRE(Perl兼容正则表达式)语法.因此\ze,除了Vim之外,您需要使用Perl语法进行积极的前瞻:(?=pattern).(相应的回顾后\zs将是(?<=pattern)).

我在命令行上显示你的例子,但它应该在Vim中是相同的:

$ ag 'Pragmatic(?= Vim)'
Run Code Online (Sandbox Code Playgroud)