一、vim:tags
vim默认自带tags的常用指令,其需要用到的是tags文件
tags文件内容格式为(每行):
标签 文件路径 摘要描述 标签类型 标签格式化表示 标签的可见性
如:
因此如果发现tag指令没有打开对应位置,可以查看tags文件内容,查看标签是否没有被索引进去
那么可以通过不断更改打tags命令的参数,来最终使目标标签都索引上
vim中设置tags路径,可通过如下指令关联多个tags
set tags+=path
二、tags相关指令
1.ctrl+]:当前窗口下查询标签的所在文件的位置并展示(多个匹配时,展示第一个匹配到的)
2.ctrl+w+]:同ctrl+],只是是新开窗口
3.ctrl+o:回到上一个标签的位置上
4.ctrl+n:查询符合标签为开头的所有标签,并展示,继续按ctrl+n则往下选择
5.ctrl+p:查询符合标签为开头的所有标签,并展示,继续按ctrl+p则往上选择
6.g]:展示标签所有匹配的情况,选择对应数字,则打开标签所在的文件的位置并展示
三、tags生成
1.自己编写简单的工具,生成规定格式tags文件
2.使用现成的工具来完成-ctags
2.1 安装ctags(ubuntu)
sudo apt-get install ctags
2.2 打tags
在需要打标签的代码根路径下:
ctags -R
会在当前tags路径
但是一般这样会漏掉c/c++声明的在头文件的函数等,因此常用是下面的指令:
ctags -R -I __THROWNL -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p --c++-kinds=+p --fields=+iaS --extra=+q -f ~/.vim/systags path1 path2 path3
其中的path1 path2 path3 对应你存放在多个路径的下的代码的根目录
然后将打完的tags的路径通过set tags+= 来设置即可
2.3 其他
vim打开后,其tags所设置的所关联所有tags,只要有被更新,其当前vim已经打开的都能被马上感知到-可用于实现自动更新tags