【转】ctags使用详解

2019-01-13  本文已影响0人  RonZheng2010

参考资料

ctags使用详解(转载)
https://www.cnblogs.com/justkong/p/6265506.html

1. --list-maps

ctags可以根据文件的扩展名以及文件名的形式确定该文件是何种语言。用--list-maps查看默认情况下哪些扩展名对应哪些语言。

ctags --list-maps

2. --list-kinds=c++

查看c++语言可以识别哪些语法元素。

ctags --list-kinds=c++

3. --c++-kinds

ctags识别很多元素,但未必全都记录,例如“函数声明”这一语法元素默认是不记录的。可以控制ctags记录的语法元素的种类,例如,下面的命令要求记录c++文件中的函数声明,包括各种外部和前向声明:

ctags -R --c++-kinds=+px

4. --list-languages=c++

指定扫描那种语言的文件。也可以指定文件的扩展名。下面的例子要求也扫描扩展名为.inl的文件。

ctags --langmap=c++:+.inl

5. -h

有些头文件的扩展名不是.h或.hpp。以下的命令指定.inc文件也是头文件。

ctags -h +.inc

6. --fields

tag对语法元素的描述取决于语法元素的种类。可以在命令行中指定显示哪些描述,以哪种格式显示等。比如下面的命令。

" i 表示如果有继承,要标明父类;
" a 表示如果是类的成员,要标明其access属性(即是public的还是private的);
" S 表示如果是函数,要标明函数的signature;
" K 表示要显示语法元素类型的全称;
" z 表示在显示语法元素的类型时,使用格式kind:type。

ctags -R --fields=+aiKSz

7. --extra

ctags在记录成员函数时,默认情况下tag的名字只包括该函数的名字,不包括类名,这样很多不同类但同名的函数所对应的tag名字都一样。于是在VIM中使用函数名来定位时就会出现很多选择,很麻烦。如果想用包括类名的函数全名进行定位,就得要求ctags记录全名。

如下面的命令:

ctags --extra=+q

8. --exclude

可以要求ctags不要扫描某些目录或文件,比如下面的命令:

ctags --exclude=lex.yy.cc

9. 常用法

以下命令是ctags的常用法。

" 递归搜索所有文件
"
" 记录的语法元素要标明父类
" 记录c++文件中的函数声明
" 类成员要标明其access属性;
" 函数要标明函数的signature;
" 函数记录全名
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .

相关链接

VIM 常用法 (一)
VIM 常用法 (二)
VIM 常用法 (三)
【转】ctags使用详解

上一篇下一篇

猜你喜欢

热点阅读