在vim中标记导航

vpi*_*lai 3 vim ctags cscope exuberant-ctags

使用cscope集成的Vim,我可以使用ctrl-T导航回来,并使用:tags查看当前标记堆栈的位置.但是如何在堆栈中前进呢?我从手册页中找到的唯一一件事是转到函数定义(如ctrl-])

小智 13

您还可以使用Ctrl+ ICtrl+ O分别通过跳转列表向前和向后移动.这适用于标记命令,因为它们被视为跳跃运动.

所以:

  • 跳转到标签:Ctrl+ ].
  • 跳回:Ctrl+ O.
  • 再次跳转到标签:Ctrl+ I.


rom*_*inl 10

标签堆栈由您所有的“跳转到定义”创建。每次这样做时<C-]>,您跳转到的标签都会添加到标签堆栈中,您可以使用<C-t>:pop跳转回标签堆栈中的前一个标签或:tag走另一条路。这两个:tag:pop一个可选的计数,以便:5pop将进入第五以前的标签。

:help tagstack


小智 5

只是添加此答案,因为我没有代表对已接受的答案进行编辑或评论,但<C-t>实际上对应于:pop命令,而不是所述:tag命令。

:pop 用于在标签堆栈中“向后”移动(将导致“在标签堆栈底部”消息)并且是具有默认键绑定的命令 <C-t>

:tag 用于在标签堆栈中“向前”移动(将导致“在标签堆栈顶部”消息)。

我不知道 :tag 的任何键绑定,比如向后移动,所以我已经映射 (not ) 到标签。

nnoremap <C-[> :tag<CR>