ctags --fields=+iaS --extra=+q -R -f ~/.vim/systags /usr/include /usr/local/include
最基本的命令是:ctags -R,这条命令将所在的目录递归地生成tags文件。而上面这条命令是将/usr/include和/usr/local/include两个目录递归地生成tags文件,命名为systags放在~/.vim目录中。
set tags+=~/.vim/systags
将这个tags文件加入.vimrc的tags路径之中。
另外,关于--field和--extra:
ctags -R --fields=+iaS --extra=+q *
形如:
–fields=[+|-]flags–fields指定tags的可用扩展域(extension fields),以包含到tags入口。
i:继承信息Inheritance information
a:类成员的访问控制信息 Access (or export) of class members
S: 常规签名信息,如原型或参数表 Signature of routine(e.g. prototype or parameter list)
形如: –extra=[+|-]flags
指定是否包含某种扩展信息到tags入口。
q:包含类成员信息(如c++,java,Eiffel)。
但就算是C 语言的结构,也需要这两个参数设置才能获取成员信息。 这样就能自动完成结构和类的成员了。
另外,cscope是一种增强版的ctags,然而对于跳转到库函数的定义处,它并不如ctags。cscope不能跳转到库函数!!!
参考:
http://blog.csdn.net/zklth/article/details/7027798