Ctags
简述
Ctags,为源码建立标签文件tags
,以帮助在源文件中定位
vim往往可以通过其他插件实现函数,变量等的查找,或者实现源码间切换
而这些插件依赖于tags
文件
安装
Ubuntu上可以通过一下命令安装:
$ sudo apt-get install ctags
其他平台,待续
tags中对象列表
用#define定义的宏
枚举型变量的值
函数的定义、原型和声明
名字空间(namespace)
变量(包括定义和声明)
类(class)、结构(struct)、枚举类型(enum)和联合(union)
类、结构和联合中成员变量或函数
用参数生成我们需要的tags文件
具体详细的参数,就不再写了,直接使用下面这条略显完备commmand:
$ ctags -R -c++-kinds=+px --fields=+ialS --extra=+q
每个参数解释如下:
-R | ctags递归生成子目录的tags(在项目的根目录下很有意义)
-c++-kinds=+px | ctags记录c++文件中的函数声明,各种外部和前向声明
--fields=+ials | ctags要求描述的信息,其中:
i -->表示如果有继承,则表示出父类
a -->表示如果元素是类成员的话,要标明其调用权限(即public或者private)
l -->表示包含标记源文件的语言
S -->表示函数的签名(即函数原型或者参数列表)
--extra=+q | 强制要求ctags做如下操作:
如果某个语法元素是类的一个成员,ctags默认会给其记录一行,
以要求ctags对同一个语法元素再记一行,这样可以保证在VIM中多个同名函数可以通过路径不同来区分。
插件和使用
-
很多插件依赖于tags文件,例如omnicppcomplete,tagslist,echofunc
关于这些插件的安装,可以查看之前的《Vim下的fancy的插件》 -
Vim中的简单使用
Ctrl + ] | cursor移动到某个元素,按下此组合键,就会跳转到对应定义 Ctrl + o | 按下此组合键,即可返回原来的地方 g + d | cursor在局部变量出,按下此组合键,就会跳转到局域变量定义处
- 上一篇: 使用 Vundle 对 Vim 插件进行管理及安装
- 下一篇: Vim的一些操作