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)