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不能跳转到库函数!!!