如何跳转当前缓冲区中的下一个标记-vim?
有没有办法跳转到当前缓冲区中的下一个标记如何跳转当前缓冲区中的下一个标记-vim?,vim,Vim,有没有办法跳转到当前缓冲区中的下一个标记 sub A { /* ... */ [cursor] } sub B { /* ... */ } 我知道A和B都是当前缓冲区中的标记。 是否有方法跳转到[光标]之后的下一个标记?(在本例中是B)没有内置功能,但您可以自己实现: 您可以通过获取当前缓冲区内所有标记的列表 :let tags = filter(taglist('.*'), 'v:val.filename ==# expand("%:p")') 然后转义标记名以在正则表达式中使
sub A {
/* ... */
[cursor]
}
sub B { /* ... */ }
我知道A
和B
都是当前缓冲区中的标记。
是否有方法跳转到
[光标]
之后的下一个标记?(在本例中是B
)没有内置功能,但您可以自己实现:
您可以通过获取当前缓冲区内所有标记的列表
:let tags = filter(taglist('.*'), 'v:val.filename ==# expand("%:p")')
然后转义标记名以在正则表达式中使用,并将其作为可选搜索分支连接:
:let tagsExpr = '\V' . join(map(tags, 'escape(v:val.name, "\\")'), '\|')
最后,执行搜索以定位当前缓冲区中的下一个标记:
:call search(tagsExpr)
我不知道Vim能够做到这一点(开箱即用),但是
]
会跳转到B
(和[
到A
)