vim +ctags +taglist +global+cppcomplete 配置

 

原文链接:http://blog.chinaunix.net/u/22968/showart_432334.html
  1. 使用Cscope

 

cscope的tag生成最简单的方法是:
在你的开发工程的最上层目录执行cscope-indexer,它会遍历下面的所有目录,生成两个文件,一个是cscope.files,这个文件记录需要生成tags的文件名,可以手工修改,另一个是cscope格式的tags文件cscope.out。完成后,你在生成了cscope.out的目录打开工程的任意文件,就可以使用Ctrl-]跳转查找类型定义了。

更多内容请参考下面两篇文章:
    
http://cscope.sourceforge.net/cscope_vim_tutorial.html
    http://cscope.sourceforge.net/large_projects.html
  2.使用taglist
taglist的功能是即时生成当前文件的函数列表和全局变量列表,便于索引。
在vim中命令模式下使用 
Tlist 打开或者关闭当前文件的索引;
TlistSync 立即在打开的索引窗口中定位当前的光标所在位置属于哪个函数或者结构定义中。
还有其他命令,请参考它的帮助文件。

ctags的使用
其实cscope是用来替代ctags功能的,ctags的应用广泛,还有其他很多的软件依赖它。

例如要生成cppcomplete需要的tags文件的话,需要运行下面的命令:
 
代码:
ctags -n -f cppcomplete.tags --fields=+ai --C++-types=+p * -L cscope.files
 注意,我在最后使用了参数"-L cscope.files" 这仅仅是借用拉cscope生成的文件索引来帮助ctags去查询相关工程文件生成tags。

使用cppcomplete
cppcomplete的使用我只是简单的发现它可以根据上述方法生成的tags文件来自动补全类型成员。
使用很简单,就是在你需要补全类型成员时,按F8键就可以拉。它一般第一次使用时,需要让你确认是使用已有的tags文件还是再生成一次。一般我们自己控制生成tags文件的时机,它就使用就行拉。
但它也受到ctags的分析能力比较差的限制,可能不是每次都能帮到你。

使用global
在工程的最上层目录执行命令:
gtags
等待它完成所有需要的global自己格式的tags的生成
生成完后,需要的就是在生成tags的目录打开你的工程的任意文件,用如下命令查询相关类型引用和关联关系:
 
代码:
Gtags xxxx      查找xxxx的定义
Gtags -r xxxx   查找xxxx的引用
Gtags -s xxxx   查找xxxx出现的地方

它的提示信息很有显,不如cscope更直观,但对大型分析的比较完整。
有时它无法正常分析的类型 可以试试用带-s 的参数的方式找找类型定义。再不行,我就不清楚拉 

 

 

你可能感兴趣的:(vim,tags)