在vim中使用CTRL+] 可以查找到变量,函数等的定义,使用它CTRL+t可以返回到上一个光标
ctags工具是用来生成查找定义时所需的符号文件的,可以使用如下的指令为当前文件夹下的所有文件生成符号
ctags -R *
vim中的tags变量指明符号文件位置,在vim中使用如下语句可以重新设置tag
文件的位置
:set tags=xxx/tags
无法跳转变量
ctags生成符号的时候可以进行符号类型控制,可以选择是否生成函数、变量、枚举的符号,以下指令可以查看到各语言的选型
ctags --list-kinds
如果只使用 ctags -R * 生成符号文件,是采用默认的策略选项,当发现不包含相应类型的符号,可使用以下方式重新生成tags文件,如下一个test.cpp文件需要重新生成符号,使用+l表示添加local vairable的符号,前面的减号代表去除这类型的符号,这些在man ctags 中对应
ctags --c++-kinds=+l test.cpp
结构和类成员
对于c/c++ 对象内的成员,需要使用--fields=+iaS,--extra=+q 添加额外的选项,详情使用man ctag 查看
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)。