当我运行grep "keyword" -n
并获得以下结果列表时:
a/b/c:10: keyword
a/b/c:70: keyword
a/b/d:50: keyword
如何在它找到的行中打开其中一个文件(比如列表中的第二个)?
我现在只需使用鼠标复制输出,然后复制它vim
,然后添加+
我复制的行号。(这意味着我vim a/b/c +70
使用鼠标副本来获取文件名,并使用另一个鼠标副本来获取行号[或者我只是手动复制它,当它足够短时])
有没有办法用键盘快捷键做到这一点?
两件事情:
Vim 对
grep
.如果你打开 Vim 并执行
:grep keyword ...
,Vim 会用结果填充quickfix 列表,并跳转到第一个文件。然后,您可以使用(和其他命令)跳转到第n个 quickfix 条目。:cc n
您可以使用 grep 的输出填充上述快速修复列表:
然后使用上面提到的快速修复导航命令。
要么比手动使用 grep 的输出更简单。
作为 (2) 的替代方法,您可以将 grep 的输出保存到一个文件并使用该文件,如果您认为以后不一定会打开 Vim:
如果@muru 回答说已经不支持grep,你可以这样做:
例如,它可以与另一个命令一起使用
git grep
。此外,您可以在缓冲区中打开输出并在其上使用“cbuffer”。
请参阅手册中的快速修复部分。
通过管道输出
grep
tovim
并使用gF系列运动移动到光标下的文件。