有一种方法跳转到下一个标签在当前缓冲器?
sub A {
/* ... */
[cursor]
}
sub B { /* ... */ }
我知道这两个A
和B
是在当前缓冲区标记。
是否可以跳到[cursor]
之后的下一个标签? (在此示例中为B
)。
答案 0 :(得分:2)
没有内置功能,但是您可以自己实现:
您可以通过以下方式获取当前缓冲区内所有标签的列表:
:let tags = filter(taglist('.*'), 'v:val.filename ==# expand("%:p")')
然后转义要在正则表达式中使用的标记名称,并将其作为替代搜索分支进行连接:
:let tagsExpr = '\V' . join(map(tags, 'escape(v:val.name, "\\")'), '\|')
最后执行搜索以找到当前缓冲区中的下一个标签:
:call search(tagsExpr)