vim ctags 插件实现代码跳转的功能。希望在一个项目中快速的找到函数,变量,宏等定义的地方。
下载
安装
tar -jxvf ctags-5.8.tar.gz
cd ctags-5.8
vim INSTALL (在这里可以看到如何安装ctags,没有兴趣的可以不看这步)
./configure
make
sudo make install
使用&配置
使用
1、生成tags文件
cd ~/testCode/
/usr/local/bin/ctags -R ./ (这里指定了全路径是因为安装了多个ctags,所以需要指定哪个版本。)
如果是C++工程,建议使用 ctags -R --c++-kinds=+p --fields=+ialS --extra=+q ./
命令完成后就会产生一个tags文件。ctags 插件就是根据这个文件来进行函数定位的。
2、打开一个文件,然后选定任意一个函数或者变量,使用 ctrl + ] 就可以跳转到该函数或者变量定义的地方。
3、ctrl + t 跳回去
配置 (可以直接复制到 ~/.vimrc)
"ctags config
"设置tags文件路径,这样不管在哪用vim打开代码都可以跳转了。
"如果不设置,那么就必须在有tags文件的目录才能跳转
set tags=/code/svn/study/trunk/tags
"实现自动递归查找功能,但是我在set tags 之后就可以实现递归查找了。
"有可能是因为我的tags是在项目根目录下生成的有关。先记录,如果
"不能实现递归跳转可以添加上试试。建议tags文件都在项目根目录下生成。
"set autochdir
"set tags=tags;
命令总结
ctags -R * (生成tags文件。建议在项目的根目录下生成tags文件,因为ctags要实现整个项目跳转就需要项目根目录下有这个文件。)
vim -t 函数名或者变量名
ts (tagslist, 可以列出当前跳转的所有结果)
tp (tagspreview, 跳转到上一个)
tn (tagsnext,跳转到下一个)
ctrl + ] (跳转)
ctrl + t (跳回到最初的地方)
报错
ctags -R ./
ctags: Failure on attempt to read file : Is a directory
当前目录下有一个tags的目录,删除或者改名即可。
其他
ctags -R ./ 命令是默认只包含C语言的语法分析。
如果需要支持C++语法分析,需要用如下命令:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ./
如果有echofunc插件来显示函数的参数定义插件。那么需要用如下命令:
ctags -R --fields=+lS ./
建议直接使用:
ctags -R --c++-kinds=+p --fields=+ialS --extra=+q ./