CIs*_*ies 10 vim command-line grep
当我运行grep "keyword" -n并获得以下结果列表时:
a/b/c:10: keyword
a/b/c:70: keyword
a/b/d:50: keyword
Run Code Online (Sandbox Code Playgroud)
如何打开找到的行中的文件之一(比如列表中的第二个)?
我现在只需使用鼠标复制输出,然后复制它vim,然后添加+我复制的行号。(这意味着我vim a/b/c +70使用鼠标副本来获取文件名,并使用另一个鼠标副本来获取行号[或者我只是手动复制它,当它足够短时])
有没有办法用键盘快捷键来做到这一点?
mur*_*uru 16
两件事情:
Vim 对grep.
如果你打开 Vim 并执行:grep keyword ...,Vim 会用结果填充quickfix 列表,并跳转到第一个文件。然后,您可以使用(和其他命令)跳转到第n个快速修复条目:cc n。
您可以使用 grep 的输出填充上述快速修复列表:
vim -q <(grep -n keyword ...)
Run Code Online (Sandbox Code Playgroud)
然后使用上面提到的 quickfix 导航命令。
两者都比手动处理 grep 的输出更简单。
作为 (2) 的替代方案,您可以将 grep 的输出保存到一个文件并使用该文件,如果您认为在以下情况下您不一定会打开 Vim:
grep ... | tee log
vim -q log
Run Code Online (Sandbox Code Playgroud)