我是vim的新手,仍然探索它的一些功能。我有一个vimgrep的问题。我可以搜索一个模式像这样vimgrep / define / **,以便它找到并打开包含一个define的下一个文件。但我还不能找到如何去到下一个文件/行匹配我的模式。任何指针?
quickfix列表的有用命令(命令的omitable部分的方括号):
>:cn [ext] and:cp [revIoUs]跳转到下一个和上一个条目
>:cnf [ile]和:cpf [ile]跳转到下一个和上一个文件(如果quickfix列表没有按文件排序你可以write a function that getqflist()
,performs a sort and then setqflist()
>:cr [ewind] and:cla [st]转到quickfix列表的开头或结尾
>:col [der] and:cnew [er]将迭代历史quickfix列表。
不用说有很多其他命令,你可以发现他们:help quickfix。
我个人有以下地图:
| ø | 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