在vim中标记导航

时间:2013-07-22 09:04:09

标签: vim ctags cscope exuberant-ctags

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

3 个答案:

答案 0 :(得分:12)

您还可以使用 Ctrl + I Ctrl + O 分别向前和向后移动跳转清单。这适用于标记命令,因为它们算作跳跃运动。

所以:

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

答案 1 :(得分:4)

标签堆栈是由您的所有“跳转到定义”创建的。每次执行ctrl-]时,您跳转到的标记都会添加到标记堆栈中,您可以使用ctrl -t或:tag跳回tagstack中的上一个标记,或者:pop以相反的方式跳转。两者:tag和:pop选择一个可选的计数:5tag将转到第五个前一个标签。

请参阅:help tagstack。

答案 2 :(得分:3)

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

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

的命令

:tag用于在标记堆栈中移动“转发”(将导致“在标记堆栈顶部”消息)。

我不知道任何关键字绑定:标签就像向后移动一样,所以我已经映射(而不是)标记。

nnoremap <C-[> :tag<CR>