1、说明
Ctags 是 vim 下方便代码阅读的工具。尽管 ctags 也可以支持其它编辑器,但是它正式支持的只有 vim。并且 vim 中已经默认安装 ctags,它可以帮助程序员很容易地浏览源代码;ctags 最先是用来生成 C 代码的 tags 文件,后来扩展成可以生成各类语言的 tags,但是我主要还是用来阅读 C 源代码。
ctags更新地址:http://ctags.sourceforge.net/ 这个网站是 ctags 的官方网站,可以下载到关于 ctags 的最新内容。
2、ctags能定位什么内容
1) 用#define定义的宏
2) 枚举类型变量的值
3) 函数的定义、原型和声明
4) 名字空间(namespace)
5) 类型定义(typedef)
6) 变量(包括定义和声明)
7) 类、结构体、枚举类型、联合
8) 类、结构体和联合中成员变量或函数
3、安装ctags
如果是redhat或centos系统可以直接使用yum在线安装
[root@localhost ~]# yum install ctags
源码位置生成tags文件
[root@localhost ~]# ctags -R *
4、查找操作(3种使用方式)
1)直接在命令行上操作
[root@localhost ~]# vim -t main
[root@localhost ~]# vim -t pos_create_task
结果:直接打开对应符号对应文件,并定位到该符号的定义位置。常用在知道符号,但不知道在哪个文件模块中的位置。
2)在vim的模式下使用": ta"命令
:ta main
:ta pos_create_task
3)在光标指定位置下直接使用"ctrl + ]"
在光标指定的位置下直接使用 "crtl + ]" 就可以定位到函数的定义位置;使用 "ctrl + t" 快捷键返回到上次跳转之前的位置。
关于ctags的用法很多,以下是我们列举的部分:
-->"ctrl + t"退回到原来的地方
-->"[{"转到上一个位于第一列的"{"
-->"}]"转到下一个位于第一列的"{" /* 似乎不管用 */
-->"{"转到上一个空行
-->"}"转到下一个空行
-->"gd"转到当前光标所指的局部变量的定义
-->"*"转到当前光标所指的单词一次出现的地方
-->"#"转到当前光标所指的单词上一次出现的地方
5、注意事项
使用 vim 打开相关使用 tags 标记的源文件时,当前目录要在 tags 所在目录下执行 vim 命令。如果在其子目录下边执行 vim 打开相应文件,默认是使用不了 ctags 的跳转功能的。解决的方式是,在 vim 的配置文件中 /etc/vimrc 或者 ~/.vimrc 中设置:set tags=/var/dz_resource/ineedle/soft/tags,这样就可以了。