【问题标题】:How to create ctags only for c and h files in code如何仅在代码中为 c 和 h 文件创建 ctags
【发布时间】:2013-05-02 05:26:39
【问题描述】:

我有一个编译代码。如果我尝试使用 'usr/bin/ctags -R *' 生成标签,它将包括所有 c、h、目标文件等。所以它需要大量时间和内存。能否请您告诉我如何仅为 c/h 文件生成标签。

【问题讨论】:

    标签: c tags ctags


    【解决方案1】:

    使用 --languages 参数:

    ctags --languages=C

    【讨论】:

    • --languages只能读取.c文件,不能读取.h文件,应该使用:ctags -h=".c.h"
    • --languages 仅包含 .c,因此您还需要包含 c++ "--languages=C,C++" 这将添加 .h 文件以及几个 c++ 文件扩展名。 “.h”文件必须作为 C++ 处理,因为它是一个超集,你不能假设它们只使用 C 语言特性
    【解决方案2】:

    您可以使用.ctagsignore 文件从生成的标签中排除任何不需要的文件。 以下是我在项目中使用的示例:

    .ctagsignore 的内容:

    bin
    makefile
    obj
    tags
    workspace.vim
    

    然后生成标签: -ctags -R --exclude=@.ctagsignore

    这会忽略 bin 和 obj 文件夹中的每个文件、makefile、(未来)生成的标签文件以及项目目录中的 workspace.vim 文件。它本质上像 .gitignore 文件一样工作,因此您可以使用通配符 (*.o) 表示法 - myfolder/*.o 会忽略 $PROJ_DIR$/myfolder/ 中的所有目标文件

    【讨论】:

      【解决方案3】:

      我会尝试“man ctags”并通过选项阅读。

      或者你可以使用 shell 魔法:

      ctags `find . -name "*.[ch]" -print` 
      

      或者类似的东西

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        • 2013-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多