Written by razrlele
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:
1 |
sudo apt-get install ctags |
然后在当前项目根目录下执行标签生成命令:
1 |
ctags -R . |
然后打开Vim,将光标停在所需要知道的变量或者函数面前:
然后:
1 |
Ctrl + ] |
或者:
1 |
Ctrl + Left MouseClick |
就可以跳转至函数的定义:
使用:
1 |
Ctrl + t |
或者:
1 |
Ctrl + Right MouseClick |
即可跳转回原光标处。
以上操作也是支持跨文件的跳转的,对于新手来说这就是最基本的Ctags功能,还有更多功能可以参考下面的References。
注:我所使用Vim是基于spf13-vim 配置的。
References:
Generate Ctags Files for C/C++ Source Files and All of Their Included Header Files