美文网首页
【转】ctags使用详解

【转】ctags使用详解

作者: RonZheng2010 | 来源:发表于2019-01-13 14:34 被阅读0次

    参考资料

    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使用详解

    相关文章

      网友评论

          本文标题:【转】ctags使用详解

          本文链接:https://www.haomeiwen.com/subject/axffdqtx.html