如何从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