我在使用grep
获得的多行中的几个文件中出现了多次特定字符串。
$ grep -rn --include="*.cpp" mystring
lib/mlib/actionbuttonrule.cpp:300: mystring Foobar...
lib/mlib/actionbuttonrule.cpp:314: other mystring
lib/mlib/item.cpp:3025: /* mystring**/
lib/mlib/item.cpp:3082: mystring Foobar...
lib/mlib/item.cpp:3095: Foo mystring bar
我想在相应的行上按顺序打开这些文件。我尝试用vim
做到这一点,但到目前为止,打开这条线并没有成功。
不能是vim
或grep
,但我认为必须有某种功能......
答案 0 :(得分:6)
您可以在Vim的快速修补程序列表中加载grep
输出:
$ vim -q <(grep -rn --include="*.cpp" mystring)
使用:cn
转到下一次出现,并使用:cp
转到上一次出现。
请参阅:help -q
和:help quickfix
。
答案 1 :(得分:1)
这是另一种方法
$ grep -rn --include="*.cpp" mystring > op
$ vim op
然后使用gF
并返回文件操作,使用 Ctrl + 6
答案 2 :(得分:0)
使用vim作为寻呼机的一个技巧是传递一个连字符。这导致它从STDIN而不是从文件
读取grep -rn --include="*.cpp" mystring | vim -