使用集成了 cscope 的 Vim,我可以使用 ctrl-T 向后导航,并使用 :tags 查看当前标签堆栈位置。但是我如何在堆栈中前进?我唯一能从手册页中找到的是转到函数定义(如 ctrl-])
您还可以使用Ctrl+I和Ctrl+O分别在跳转列表中向前和向后移动。这适用于标签命令,因为它们算作跳跃动作。
所以:
标签栈是由你所有的“跳转到定义”创建的。每次执行
<C-]>
时,您跳转到的标签都会添加到标签堆栈中,您可以使用 <C-t>
或 :pop
跳回到标签堆栈中的上一个标签或 :tag
去另一种方式。 :tag
和 :pop
都采用可选计数,因此 :5pop
将转到前五个标签。
见
:help tagstack
.
只是添加这个答案,因为我没有代表可以编辑或评论接受的答案,但
<C-t>
实际上对应于:pop
命令,而不是所述的:tag
命令。
:pop
用于在标签堆栈中“向后”移动(将导致“在标签堆栈底部”消息)并且是具有默认键绑定的命令<C-t>
:tag
用于在标签堆栈中“向前”移动(将导致“在标签堆栈顶部”消息)。
我不知道 :tag 的任何键绑定,比如向后移动,所以我已经映射(不是)到标签。
nnoremap <C-[> :tag<CR>
如您所说,使用
CTRL-T
,而:ta
则相反。