如何跳电流缓冲下一个标签 - VIM?

时间:2019-01-29 02:59:43

标签: vim

有一种方法跳转到下一个标签在当前缓冲器?

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

sub B { /* ... */ }

我知道这两个AB是在当前缓冲区标记。 是否可以跳到[cursor]之后的下一个标签? (在此示例中为B)。

1 个答案:

答案 0 :(得分:2)

没有内置功能,但是您可以自己实现:

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

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

然后转义要在正则表达式中使用的标记名称,并将其作为替代搜索分支进行连接:

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

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

:call search(tagsExpr)