如何从 Vim 搜索列表跳转到某个匹配项

发布于 2024-07-06 00:44:35 字数 651 浏览 11 评论 0原文

在 Vim 编辑器中,我在函数上选择了 ]I (在 C++ 代码中)。 这显示了一个列表,其中显示“按 ENTER 或键入命令继续”。。

现在要跳转到某个事件(例如 6),我输入 6 - 但这不起作用。

在这种情况下我可以输入哪些命令,以及如何跳转到此列表中的第 N 个出现的位置?

更新:

实际上我尝试了:N (例如 :6) - 但是当我输入 : Vim 进入插入模式时,冒号就会插入到代码中。

更新

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

In Vim editor I opted ]I on a function (in C++ code).
This presented a list, which says 'Press ENTER or type command to continue'.

Now to jump to an occurrence say 6, I type 6 - but this is not working.

What commands can I type in such a case, and how do I jump to Nth occurrence from this list?

Update:

Actually I tried :N (eg :6) - but the moment I type : Vim enters Insert mode, and the colon gets inserted in the code instead.

Update

Assuming :N approach is correct, still complete uninstall and install of Vim, without any configuration, too did not help - though now typing : does not switch Vim to insert mode.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

云淡风轻 2024-07-13 00:44:36

当我使用 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”以转到第五次出现。

如果你无法让你的 vim 具有这种行为(我的 vim 似乎默认打开),你可以使用 g] 而不是 ctrl-],类似于 :tselect 而不是 :tag

When I use vim, and I jump to a tag, by doing for instance:

 :tag getfirst

I get presented with something that looks like:

  # 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):

I type '5' to go to the 5th occurrence.

If you can't get your vim to have that behaviour (it seems to be on by default for my vim), you can use g] instead of ctrl-], which is analagous to :tselect instead of :tag

柏林苍穹下 2024-07-13 00:44:36

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

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

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

[I only lists the search results. To jump to the results use the sequence [ CTRL+I.

You can see the full list of relevant jumps at:

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

惯饮孤独 2024-07-13 00:44:36

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

因此,

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

如果您点击“2]|”,它应该直接跳到该行。

If you hit a jump button, and get a list of possible targets, select the number, and hit the jump again.

So given

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

If you hit '2]|', it should jump directly to that line.

蓝梦月影 2024-07-13 00:44:36

我遇到了同样的问题,并将之前的答案拼凑在一起并进行实验,我想出了这个解决方案:

[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

I had the same problem, and cobbling together the previous answers and experimenting I came up with this solution:

[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
你曾走过我的故事 2024-07-13 00:44:36

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

如果您已经看到您想要的标签
使用时,您可以键入“q”并输入
数量。

Do :h tselect on vim to see the complete definition

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

困倦 2024-07-13 00:44:36

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

Try using 123G to go to line 123 (see :h G).

酒解孤独 2024-07-13 00:44:35

它应该向您显示一个类似的列表:

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

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

It should present you a list like:

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

The second column is line numbers. Type :345 to jump to line 345.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文