使用:vimgrep(快速修复列表)时如何在模式之间跳转?

使用:vimgrep(快速修复列表)时如何在模式之间跳转?,vim,vimgrep,Vim,Vimgrep,我是vim的新手,仍在探索它的一些特性。我对维姆格里普有意见。我可以搜索像这样的模式vimgrep/define/**,以便它找到并打开包含define的下一个文件。但是我还不知道如何转到下一个与我的模式匹配的文件/行。有指针吗?要跳转到模式的下一个匹配项,可以使用:cnext。您可以使用:cNext进行反向操作 我不确定自动跳过所有事件直到下一个文件出现的方法,但您可以使用:cwindow打开快速修复窗口,查看匹配列表,并通过在列表中的条目上按Enter键导航到这些匹配项。快速修复列表的有用命

我是vim的新手,仍在探索它的一些特性。我对维姆格里普有意见。我可以搜索像这样的模式
vimgrep/define/**
,以便它找到并打开包含
define
的下一个文件。但是我还不知道如何转到下一个与我的模式匹配的文件/行。有指针吗?

要跳转到模式的下一个匹配项,可以使用
:cnext
。您可以使用
:cNext
进行反向操作


我不确定自动跳过所有事件直到下一个文件出现的方法,但您可以使用
:cwindow打开快速修复窗口,查看匹配列表,并通过在列表中的条目上按Enter键导航到这些匹配项。

快速修复列表的有用命令(命令表部分的括号):

  • :cn[ext]
    :cp[revious]
    跳转到下一个和上一个条目
  • :cnf[ile]
    :cpf[ile]
    跳转到下一个和上一个文件
    (如果快速修复列表未按文件排序,您可以
  • :cr[ewind]
    :cla[st]
    转到快速修复列表的开头或结尾
  • :col[der]
    :cnew[er]
    将迭代历史快速修复列表
不用说还有很多其他命令,您可以在
:help quickfix
中找到它们

我个人拥有以下地图:

      | ø      | SHIFT   | CTRL
------+--------+---------+---------
<F11> | :cprev | :cpfile | :colder
<F12> | :cnext | :cnfile | :cnewer
| | SHIFT | CTRL
------+--------+---------+---------
|:cprev |:cpfile |:更冷
|:cnext |:cnfile |:cnewer
当然,如果您使用位置列表而不是快速修复列表(
:lvimgrep
),则存在相同的命令,只需将初始的
c
替换为
l
,即可

Vim 8新增功能

  • :cdo
    :对快速修复列表的所有条目执行命令。例如
    :vim/foo/*.cpp*.h*.hpp
    后面可以跟
    :cdo s/pattern/replacement/g
  • :cfdo
    :对快速修复列表中的所有文件执行命令。例如,
    :vim/foo/*.cpp*.h*.hpp
    后面可以跟
    :cfdo%s/2ndpattern/2ndreplacement/g

:cnfile
就是你想要的!@Benoit:把它放在自己的文件里answer@Benoit的确如此。我会让你发布这篇文章并获得奖励。流行的插件将
:cprev
:cnext
映射到
[q
]q
。只需很少的时间就可以适应。它还映射了
[
]
:cpfile
:cnfile
.N.B.这不能与
:cNext
相混淆,如果我键入
:cn
,然后点击tab,我会首先想到这一点。问题是,你只会得到一个“无更多项目”错误,因为@RandyMorris”的答案指出
:cNext
是反向的。我只是假设d有点不对劲。