当从 VIM 使用 grep 时,如何跳转到结果?

当从 VIM 使用 grep 时,如何跳转到结果?

当使用 VIM 的 grep 插件时,我可以在当前目录中搜索一组文件中出现的所有字符串,如下所示:

:grep Ryan *.txt

输出类似这样的内容:

file1.txt:3:Ryan was here
file2.txt:10:Ryan likes VIM
file3.txt:5:superuser.com is a fav of Ryan
(1 of 3): Ryan was here
Press ENTER or type command to continue

如果我按下回车键,它只会带我回到我的编辑器。我真正想要做的是能够打开其中一个文件并跳转到找到字符串的位置。有办法做到这一点吗?这1 of 3部分让我想到有一种方法可以浏览结果,但我不知道我可以使用哪些命令。有人能解释一下吗?

答案1

按下 ENTER 键时,您应该看到 file1.txt 的第 3 行。要跳转到下一个匹配项,请执行:cn;要跳转到上一个匹配项,请执行:cp。执行:copen将打开一个包含匹配项列表的窗口。将光标移动到所需的匹配项,然后按 ENTER 键跳转到该匹配项。

有关使用的更多信息:grep,请参阅

:help grep
:help quickfix.txt

在快速修复列表中键入:cn:cp向前和向后移动可能会很不方便,因此我使用了这些映射:

nmap <silent> <C-N> :cn<CR>zv
nmap <silent> <C-P> :cp<CR>zv

此外,该:grep命令不是一个插件;它是 Vim 的一部分。

相关内容