如何从Vim搜索列表跳转到一个事件

时间:2020-03-06 14:46:02  来源:igfitidea点击:

在Vim编辑器中,我在函数上选择了[] I(使用C ++代码)。
这显示了一个列表,上面写着"按ENTER或者键入命令以继续"。

现在跳到一个出现的地方,说6,我输入6,但这不起作用。

在这种情况下,我可以键入哪些命令,以及如何从该列表跳至第N个出现位置?

更新:

实际上,我尝试了:N(例如:6),但是当我键入时,Vim进入了插入模式,而冒号被插入了代码中。

更新

假设:N方法是正确的,尽管没有输入任何配置,仍然可以完全卸载和安装Vim,尽管现在输入不会将Vim切换为插入模式。

解决方案

它应该向我们显示一个列表,例如:

1:   345 my_func (int var)
2:  4523 my_func (int var)
3: 10032 my_func (3);

第二列是行号。键入:345跳到第345行。

当我使用vim时,我跳到一个标签,例如:

:tag getfirst

我得到的东西看起来像:

# pri kind tag               file
  1 F   m    getfirst          /home/sthorne/work/.../FormData.py
               class:FakeFieldStorage
               def getfirst(self, k, default):
    ....
  8 F   m    getfirst          /home/sthorne/work/.../CGIForm.py
               class:CGIForm
               def getfirst(self, name):
Choice number (<Enter> cancels):

我键入" 5"转到第5个事件。

如果我们无法使vim表现出这种行为(我的vim默认情况下似乎处于启用状态),则可以使用g]代替ctrl-],这类似于:tselect而不是:tag

在vim上:h tselect来查看完整的定义

If you already see the tag you want to
  use, you can type 'q' and enter the
  number.

尝试使用123G转到第123行(请参见:h G)。

如果按下跳转按钮,并获得可能的目标列表,请选择数字,然后再次单击跳转。

因此给定

1:   345 my_func (int var)
2:  4523 my_func (int var)
3: 10032 my_func (3);

如果我们点击" 2] |",它应该直接跳到该行。

`[I]仅列出搜索结果。要跳转到结果,请使用序列[[CTRL + I]。

我们可以在以下位置查看相关跳转的完整列表:

http://www.vim.org/htmldoc/tagsrch.html#include-search

我遇到了同样的问题,将以前的答案汇总在一起并进行了实验,得出了以下解决方案:

[I  // gives list of matches for word under cursor, potentially some matches are in headers. remember the number of the match you're interested in, eg. the 3rd
q  // quits the list of matches
3[Ctrl-i  // (with cursor in same position) jumps to third match