【问题标题】:how to set folder path for gtags如何设置gtags的文件夹路径
【发布时间】:2014-04-18 15:04:53
【问题描述】:

我是 gtags 新手,有一个问题。我有一个大项目,比如android AOSP,我想让gtags解析一些文件夹,怎么用gtags实现呢?我搜索并得到了解决方案:

  1. 在 gtags 中使用 -f 选项,似乎不支持文件夹

我可以设置文件夹路径并且 gtags 只处理这些文件夹有什么好主意吗?

【问题讨论】:

    标签: emacs tags gnu-global


    【解决方案1】:

    更新:问题的作者在 cmets 中提出了一个更好的解决方案。我在这里添加它,以便更容易找到:

    .. 在我需要的子目录中创建标签文件,并添加目录 加载项目时到 GTAGSLIBPATH,


    我的回答:

    您可以通过将文件/目录列表添加到 ~/.globalrc 或 /etc/gtags.conf 中的 skip 关键字来限制 gtags 索引的内容。这是一个示例 gtags.conf 文件。

    问题是 global/gtags 包通常不安装 gtags.conf(至少它在 ubuntu 12.04 上的 global-5.7.1-2 中不存在),因此您需要从全局源获取它分发,或使用其他人的 gtags.conf 作为参考。例如here

    这样的事情应该可以工作。请注意,前导 / 表示 from the top of the tree。没有它,gtags 将跳过树中任何地方的匹配条目。:

    common:\
        :skip=/skip-this-dir/,/lib/and-this/,/include/and-this-one-too/:
    

    【讨论】:

    • 谢谢,这听起来像是一些全局设置,不限于单个项目。如果操作多个项目,它们会共享相同的跳过设置吗?可能我不懂 gtags。
    • 是的。它是全球性的。双关语意。 :-/
    • 我找到了替代方案,我可以在我需要的子目录中创建标签文件,并在加载项目时将目录添加到 GTAGSLIBPATH,它对我有用。
    • 太棒了!我没有想到。更新您的问题(或添加您自己的答案?)可能是个好主意,这样您的解决方案就不会丢失在 cmets 中。
    • 对于像我这样迟到的人,gnu global(至少从 6.5.6 开始)在项目根目录中查找 gtags.conf。因此,您可以使用@ArtemB 的解决方案并为此项目设置跳过。这样您就不必在项目加载时设置任何环境变量 - 它应该可以正常工作。
    【解决方案2】:

    -f 选项以 find(1) 为前提。请尝试以下方法。

    $ find folder1 folder2 folder3 -type f -print | gtags -f -
    

    $ find folder1 folder2 folder3 -type f -print >gtags.files
    $ gtags
    

    【讨论】:

      【解决方案3】:

      这是我的 bash 函数,用于删除文件和路径,包括 'dummy' 和 'win':

      function gtagsupdate { 
      find . -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" | grep -v dummy | grep -v win | gtags -f -
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-11
        • 1970-01-01
        • 1970-01-01
        • 2018-03-22
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多