我是vim的新手,还在探索它的一些功能.我有vimgrep的问题.我可以搜索vimgrep /define/ **这样的模式,以便找到并打开包含a的下一个文件define.但我还不知道如何转到与我的模式匹配的下一个文件/行.有什么指针吗?
Ben*_*oit 83
quickfix列表的有用命令(括号中可省略部分的括号):
:cn[ext]并:cp[revious]跳转到下一个和上一个条目:cnf[ile]并:cpf[ile]跳转到下一个和上一个文件(如果quickfix列表没有按文件排序,你可以写一个函数getqflist(),执行排序然后setqflist():cr[ewind]并:cla[st]转到quickfix列表的开头或结尾:col[der]并且:cnew[er]将通过历史的quickfix列表进行迭代.毋庸置疑,还有很多其他命令,你可以发现它们:help quickfix.
我个人有以下地图:
| ø | SHIFT | CTRL
------+--------+---------+---------
<F11> | :cprev | :cpfile | :colder
<F12> | :cnext | :cnfile | :cnewer
Run Code Online (Sandbox Code Playgroud)
当然,如果你使用位置列表而不是quickfix列表(:lvimgrep)相同的命令存在,只需更换初始c用l,就是这样.
Vim 8增加:
:cdo:对quickfix列表的所有条目执行命令.例如:vim /foo/ *.cpp *.h *.hpp可以跟着:cdo s/pattern/replacement/g:cfdo:执行命令快速修复列表中的所有文件.例如,:vim /foo/ *.cpp *.h *.hpp可以跟着:cfdo %s/2ndpattern/2ndreplacement/gRan*_*ris 10
要跳转到下一个可以使用的模式:cnext.你可以反过来:cNext.
我不确定自动跳过所有事件直到下一个文件的方法,但您可以打开quickfix窗口:cwindow以查看匹配列表并通过点击Enter列表中的条目导航到这些匹配.