vim 中的标签导航

问题描述 投票:0回答:4

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

vim ctags cscope exuberant-ctags
4个回答
24
投票

您还可以使用Ctrl+ICtrl+O分别在跳转列表中向前和向后移动。这适用于标签命令,因为它们算作跳跃动作。

所以:

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

12
投票

标签栈是由你所有的“跳转到定义”创建的。每次执行

<C-]>
时,您跳转到的标签都会添加到标签堆栈中,您可以使用
<C-t>
:pop
跳回到标签堆栈中的上一个标签或
:tag
去另一种方式。
:tag
:pop
都采用可选计数,因此
:5pop
将转到前五个标签。

:help tagstack
.


5
投票

只是添加这个答案,因为我没有代表可以编辑或评论接受的答案,但

<C-t>
实际上对应于
:pop
命令,而不是所述的
:tag
命令。

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

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

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

nnoremap <C-[> :tag<CR>


0
投票

如您所说,使用

CTRL-T
,而
:ta
则相反。

© www.soinside.com 2019 - 2024. All rights reserved.