Answers:
:[vim]grepover的一个好处/?是,结果将被放入quickfix列表(或位置列表,如果使用的话:l[vim]grep),这意味着您可以使用来拉出所有匹配项的列表:cl。然后,您可以使用数字直接从列表中转到所需的结果。
这也意味着您可以使用与:[vim]grep pattern %搜索整个代码库相同的命令来搜索当前缓冲区,:[vim]grep pattern path因此它具有一些很好的对称性。
此外,您可以分支并使用Silver Surfer / Ripgrep为您提供非常强大的搜索。这些可以映射到:[vim]grep命令。
我看到3个主要优点
使用一致的regex引擎/语法:使用:grep/vimgrep允许您定义一个grepprg,可以将其定义为grep/ack/agetc。使用此引擎,您可以使用一致的regex引擎搜索当前缓冲区或多个缓冲区/文件。另一方面,如果您使用vim的/pattern选项,则会陷入vim的默认正则表达式引擎中,该引擎的语法与extended regular expression语法不同。因此,无论何时您必须搜索表达式,都必须考虑/记住您应该使用\)还是正义)和其他差异。这可能非常烦人(/programming/3864467/whats-the-difference-between-vim-regex-and-normal-regex)
vimgrep填充快速修复程序/位置列表:使用:grep/vimgrep可以填充搜索列表。(https://medium.com/@lakshmankumar12/quickfix-and-location-list-in-vim-ca0292ac894d)。
如果您确实想使用位置列表,]q如果您有Tim-Popes不受损害的插件(https://github.com/tpope/vim-unimpaired),则可以使用快捷方式进行导航。
在vim中进行复杂的搜索:通常,如果必须进行复杂的搜索,则可能必须使用命令行。但是,如果定义greprg正确并使用诸如[1]之类的命令
:vim / pattern1 / find . -type f
您可以进行非常复杂的搜索,并在location list或中显示搜索结果quickfix list。
[1] http://vimcasts.org/episodes/search-multiple-files-with-vimgrep/