vim结合ctags

在编程过程中,函数转跳(从函数会话快速跳到函数定义或相反)是常用功能,vim可以结合 ctags 工具实现

备注

另一个常用的程序转跳工具是 cscope ,更适合大型项目使用,能够为C,lex 和 yacc 源代码文件构建一个符号交叉引用表(symbol cross-reference table)。请参考 nvim环境使用escpe实现代码导航

安装

  • 在 macOS 上使用 Homebrew 安装(其实 XCode command line tools 也提供 ctags 但是使用参数和我们常用的Linux环境ctags不同):

在macOS上使用 Homebrew 安装 ctags
brew install ctags
  • Ubuntu Linux 上可以安装 universal-ctags (相对较新,建议安装) 或 exuberant-ctags

安装 universal-ctags
apt install universal-ctags

使用

在源代码项目目录下执行递归生成 tags :

在源代码项目目录下执行 ctags 创建包含索引的名为 tags 文件
ctags -R .

现在打开 vimnvim ,可以使用如下快捷键进行函数转跳:

  • ctrl + ] 从 函数实例和类型 跳到函数定义的位置

  • ctrl + T / ctrl + o 从 函数定义 重新返回函数实例

  • 结合 ctrl + Wctrl + ] 可以开启一个新窗口跳到函数定义位置(此时vim窗口会划分为2个窗口)

  • 结合 ctrl + Wctrl + 方向键 在上述两个窗口间来回跳

备注

ctrl+方向键 在macOS中默认是 Mission Control 快捷键,有冲突,需要修改 System Settings >> Keyboard >> Keyboard Shutcuts...

参考