vim - 如何跳转当前缓冲区中的下一个标签 - vim?

标签 vim

有没有办法跳转到当前缓冲区中的下一个标签?

sub A { 
  /* ... */
  [cursor]
}

sub B { /* ... */ }

我知道 AB 都是当前缓冲区中的标签。 有没有办法跳转到[cursor]之后的下一个标签? (在此示例中为 B)。

最佳答案

没有任何内置内容,但您可以自己实现:

您可以通过以下方式获取当前缓冲区内所有标签的列表

:let tags = filter(taglist('.*'), 'v:val.filename ==# expand("%:p")')

然后转义标签名称以在正则表达式中使用,并将它们作为替代搜索分支连接:

:let tagsExpr = '\V' . join(map(tags, 'escape(v:val.name, "\\")'), '\|')

最后执行搜索以找到当前缓冲区中的下一个标签:

:call search(tagsExpr)

关于vim - 如何跳转当前缓冲区中的下一个标签 - vim?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54413230/

相关文章:

python - 当 ctrl-C 不起作用时,终止由 vim 创建的 shell

vim - 使用 Vim 在 beamer 演示文稿中编译和显示单个幻灯片的 PDF

vim 8.2 unicode 问题

command-line - Vim,转到特定行后执行操作

vim - 是否有一种简单的方法可以排除 FuzzyFinder 搜索的文件?

bash - 从 zsh 恢复到 bash 后 Vim/Vundle 坏了

vim - VIM:删除文件中所有行的特定单词之前的所有字符

vim - 如何忽略结构声明并仅考虑 cscope 中的定义?

regex - Vim 的替代命令可以像 sed 的 "t labe"一样处理递归模式吗?

vim - 如何在 Vim 中从行尾向后搜索字符