如何在使用模式之间跳转:vimgrep(Quickfix list)?
我是vim的新手,并且还在探索它的一些function。 我有一个vimgrep的问题。 我可以像这样search一个模式vimgrep /define/ **
以便它find并打开包含一个define
下一个文件。 但我还没有find如何去下一个匹配我的模式的文件/行。 任何指针?
quickfix列表的有用命令(括号括在可省略的部分命令中):
-
:cn[ext]
和:cp[revious]
跳转到下一个和上一个条目 -
:cnf[ile]
和:cpf[ile]
跳转到下一个和上一个文件 (如果quickfix列表没有按文件sorting,可以编写一个函数getqflist()
,执行sorting,然后setqflist()
-
:cr[ewind]
和:cla[st]
转到quickfix列表的开头或结尾 -
:col[der]
和:cnew[er]
将遍历历史的quickfix列表。
不用说,有很多其他的命令,你可以在:help quickfix
find它们。
我个人有以下地图:
| ø | SHIFT | CTRL ------+--------+---------+--------- <F11> | :cprev | :cpfile | :colder <F12> | :cnext | :cnfile | :cnewer
当然,如果你使用位置列表而不是quickfix列表( :lvimgrep
),则存在相同的命令,只需用l
代替初始的c
,就是这样。
Vim 8增加 :
-
:cdo
:在quickfix列表的所有条目上执行一个命令。 例如
:vim /foo/ *.cpp *.h *.hpp
可以跟
:cdo s/pattern/replacement/g
-
:cfdo
:在quickfix列表中执行所有文件的命令。 例如,
:vim /foo/ *.cpp *.h *.hpp
可以跟
:cfdo %s/2ndpattern/2ndreplacement/g
要跳转到下一个模式,可以使用:cnext
。 你可以反过来:cNext
。
我不确定一种方式,直到下一个文件自动跳过所有的事件,但你可以打开quickfix窗口:cwindow
查看匹配列表,并通过在列表中的条目上按Enter键导航到这些匹配。