Ctags

Written by    14:56 January 7, 2016 

之前在图形学实验课上使用Visual Stuido 读代码的时候,经常用到一个很实用的功能就是go to definition,即跳转至函数的定义代码段,这在阅读大型工程代码的时候非常有用,后来有一段时间没有机会去读一些比较大的工程代码,一般写的读的一些代码也都是自己写的几十几百行单文件代码,而且大多数都是在Linux下用Vim编辑,并没有太需要相关功能。最近又开始在Linux上读一个上万代码量的工程,因为代码只能在Linux下调试运行,所以自然也不方便在Windows上使用IDE编辑阅读,自己一个一个找函数定义实在是太头大,Google一番过后才发现其实Vim早就支持go to definition功能了,就是基于Ctags实现的。

Ctags是一个支持多语言的函数、变量、类、宏索引(或者标签)生成程序,在安装完Ctags过后,在当前目录下执行标签生成命令过后,就可以用Vim使用跳转功能了。

首先安装Exuberant Ctags

然后在当前项目根目录下执行标签生成命令:

然后打开Vim,将光标停在所需要知道的变量或者函数面前:

Screenshot from 2016-01-07 14:45:07

然后:

或者:

就可以跳转至函数的定义:

Screenshot from 2016-01-07 14:48:03

使用:

或者:

即可跳转回原光标处。

以上操作也是支持跨文件的跳转的,对于新手来说这就是最基本的Ctags功能,还有更多功能可以参考下面的References。

注:我所使用Vim是基于spf13-vim 配置的。

References:

Vim and Ctags tips

Generate Ctags Files for C/C++ Source Files and All of Their Included Header Files

Category : experience

Tags :