1 ctags简介
ctags产生标记文件以帮助在源文件中定位对象。
2 其生成的标记文件tags中包括这些对象的列表:
用#define定义的宏
枚举型变量的值
函数的定义、原型和声明
名字空间(namespace)
类型定义(typedefs)
变量(包括定义和声明)
类(class)、结构(struct)、枚举类型(enum)和联合(union)
类、结构和联合中成员变量或函数
3 安装
# yum -y install ctags
4 生产tags文件
4.1 跳转到项目目录
$ cd /home/test/myWork
4.2 产生tags文件
$ ctags -R --fields=+lS /home/test/myWork
–fields=[+|-]flags
定义标签文件表项中的有效扩展字段 (见下面的 TAG FILE FORMAT,以获得更多信息)。flags 参数
是一组单个字母标记, 每一个代表一种类型的扩展字段,具有如下含义 (缺省为禁用,除非下面有
注明):
a 类成员的访问控制信息
f 作用域局部于文件 [使能]
i (关于)继承的信息
k 使用一个字符表示的标签类型 [使能]
K 标签类型的完整名称
l 包含该标签的源文件的编程语言类型
m (关于)实现的信息
n 标签出现的行号
s 标签的范围 [使能]
S 函数的指纹 (例如,原型或参数列表)
z 在 kind 字段中包含 "kind:" 关键字
t 把变量或 typedef 的类型和名字做为 "typeref:" 字段 [使能] (*3)
4.3 读取tags文件
$ cat /home/test/myWork/tags
Mytest /home/test/myWork/index.php /^class Mytest$/;" c language:PHP
display /home/test/myWork/index.php /^ public function display()$/;" f language:PHP
start /home/test/myWork/db/conn/mysql.php /^function start()$/;" f language:PHP
start /home/test/myWork/index.php /^ public function start()$/;" f language:PHP
t /home/test/myWork/start.php /^$t = new Mytest();$/;" v language:PHP
5 使用tags文件
5.1 读取tags文件
tags必须在vim运行的当前目录,才能在vim里面正确跳转。
如果这个tags是经常使用的。可以加入到~/.vimrc中
$ vim ~/.vimrc
set tags+=/home/test/myWork/tags
vim 打开项目后。可以通过以下方式,查看加载的所有tags
:echo &tags
./tags,./TAGS,tags,TAGS,/home/test/myWork/tags
5.2 命令使用
ctrl + ]:跳转到当前标签
ctrl + o:调回到之前的标签
:tags 列出所有的跳转的tag标签
:3tag 回调3步
:tag tagname 回到到指定tag
6 中文参考文件
ctag配置各种详细文档:http://easwy.com/blog/archives/exuberant-ctags-chinese-manual/。