2013-07-22 119 views
2

使用cscope集成的Vim,我可以使用ctrl-T导航回来并使用:标签查看当前标签堆栈位置。但我该如何前进呢?我可以从该名男子的网页上发现的唯一的事情就是去函数定义(如CTRL-])vim中的标签导航

+0

你试过':ta'吗? – Kent

+0

@Kent我不使用ctags as-suck。我正在使用ctags。所以:ta不是傻笑 – vpillai

回答

2

标签栈是由所有的“跳转到”创建。每次你按ctrl-],你跳转到的标签被添加到标签堆栈,你可以使用ctrl-t或:tag来跳回tagstack中的前一个标签,或者:pop以其他方式跳转。 both:tag和:pop都有一个可选计数,所以:5tag将转到第五个以前的标签。

请参阅:help tagstack。

11

您还可以使用按Ctrl +按Ctrl +Ø向前移动和分别通过跳转列表后退。这与标签命令一起工作,因为它们被视为跳跃运动。

所以到:

  • 跳转到一个标签:按Ctrl +]
  • 跳回:Ctrl + O
  • 再次跳转到标签:Ctrl + I
+0

这在跳转列表中起作用(并且标签列表是副作用)。但它们并不完全是标记导航。 – vpillai

2

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

:pop是用于在标记堆栈移动“向后”(将导致“在标签栈的底部”消息),并与缺省键绑定<C-t>

:tag的命令是用于在移动“转发”标签堆栈(将导致'在标签堆栈顶部'消息)。

我不知道任何键联结为:像向后移动的标签,所以我映射(不)来标记。

nnoremap <C-[> :tag<CR>