vim+ctags+cscope+taglist+nerdtree
ctags
1、安装ctags
1) sudo apt-get install ctags 或者
2) 在http://ctags.sourceforge.net/ 下载源代码包之后,解压缩生成源代码目录
进入源代码目录执行./configure & make & make install
2、vim中ctags简单使用
详细的使用ctags用法,在vim中使用:help tags
1)生成tags文件
在源码根目录下执行ctags -R命令来为程序源代码生成标签文件,其-R选项表示递归操作,同时为子目录
也生成标签文件,vim利用生成的标签文件,
可以进行检索,并在不同的文件、元素之间来回切换。也可以用ctags file_name1.c filename2.c filename3.h
来产生ctags文件或者ctags *.c *.h
2)字段补全
为了使得字段补全有效,在生成tags时需要一些额外的参数,推荐的c++参数主要是:
ctags -R --c++-kinds=+px --fields=+iaS --extra=+q
其中:
选项 c++-kinds 用于指定C++语言的 tags记录类型, --c-kinds用于指定c语言的, 通用格式是 --{language}-kinds
选项 fileds 用于指定每条标记的扩展字段域
选项 extra用于增加额外的条目: f表示为每个文件增加一个条目, q为每个类增加一个条目
3)指定tags文件位置
可以手动指定tags文件
a)在vim命令行中输入或者修改.vimrc文件 set tags=./tags(当前路径下的tags文件)
如果要引用多个不同目录的tags文件,可以用逗号隔开,set tags=path1, path2...,或者
set tags+=path
set tags+=path
b)如果经常在不同工程里查阅代码,那么可以在~/.vimrc中添加:
set tags=tags;
set autochdir
第一个命令里的分号是必不可少的,这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,
就到父目录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用
第二个设置项来改变vim的当前目录。
4)跳转到指定函数
在变量或函数处 ctrl+] 来跳转到变量或者函数定义的地方。ctrl+t返回到跳转前的位置。
或者使用命令:tag func_nameshi 来跳转到变量或者函数定义的地方。
ctags不会生成局部变量的索引。
:tags会列出查找/跳转过程
3、ctags的局限性
tags文件只能查看函数,类或变量的定义,而没有被调用信息。
如果要知道一个函数在什么地方被使用,需要使用cscope工具。
添加的tags最好是source code的索引,对于include头文件索引没有效果,
taglist
taglist插件是以vim脚本的形式存在,因此只需要将其下载下来放到相应的目录即可。
taglist基于ctags才能发挥作用,因此要确保安装了ctags。
通过在vim命令行下运行help taglist.txt查询taglist的用法。