ctags安装与使用
一.ctags是什么
ctags工具是用来遍历源代码文件生成的tags文件,而这些tags文件被编辑器如vim用来快速查找定位源代码中的符号(tag/symbol),包含变量名,函数名等。
二.如何安装ctags
1.在线安装ctags工具
sudo apt-get install exuberant-ctags
2.vim配置ctags插件脚本,并运行
#! /bin/bash
TAGS="set tags+=/usr/include/tags"
MAP="map <F9> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>"
JUMP="nmap <c-]> g<c-]>"
for var in "$MAP" "$TAGS" "$JUMP"
do
ret=`grep "$var" ~/.vimrc | wc -l`
if [ $ret -eq 0 ]
then
echo "$var" >> ~/.vimrc
fi
done
ls -lh /usr/include/tags 2> /dev/null
if [ $? -ne 0 ]
then
cd /usr/include/
sudo ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . 2> /dev/null
fi
三.使用ctags定位符号
1.搜索需要查询的结构体或函数名
vi -t tag(搜索结构体名或函数名)
如:vi -t FILE
vi -t EIO
vi -t signal
2.ctrl+]组合键进入子级结构体查找
成功找到FILE结构体的系统定义
3.ctrl+t 返回上一层
四.如何在自己的源码目录下添加ctags
1.直接在源码目录下执行
ctags -R .
“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。Tags文件中包括这些对象的列表:用#define定义的宏枚举型变量的值函数的定义、原型和声明名字空间(namespace)类型定义(typedefs)变量(包括定义和声明)类(class)、结构(struct)、枚举类型(enum)和联合(union)类、结构和联合中成员变量或函数VIM用这个“tags”文件来定位上面这些做了标记的对象。
查看生成的ctags文件
自此,我们可以通过vi -t tag名来快速定位函数名和结构体定义等等。