【问题标题】:Autocompletion with Emacs and tags使用 Emacs 和标签自动完成
【发布时间】:2013-11-11 13:37:24
【问题描述】:

您好,我正在处理一个非常庞大且复杂的 C 代码库(复杂不是很好)。代码库使 linux 内核相形见绌,让您有一个想法。我已经设置了 emacs 来做我想做的大部分事情。我得到了函数和变量的自动补全,但有些东西不起作用(全能补全)。

我使用 cedet v2、xgtags、auto-complete、yastnippet、cscope 和其他一些工具,所有这些工具都是通过 emacs-24 上的 el-get 安装的。当我在一个较小的项目上工作时,C 中的全完成功能可以工作,所以当我访问对象时,我会得到一个结构成员的列表。但是,在非常大的“项目”中,访问结构时,全方位完成不起作用。正如我所说,我完成了函数和变量,但没有完成结构。

我的解释是自动完成是使用它的解析器,它无法处理代码库的大小和复杂性。但是,gtags 或 etags 可以处理它。

有没有办法自动完成查看 gtags (xgtags) 数据库?我的 gtag 确实运行良好。

编辑: 我不是我系统的管理员,我无法轻松安装软件包。目前,我没有clang。话虽如此,我非常有能力从源代​​码编译,并且可以通过这种方式获得很多包。

【问题讨论】:

    标签: emacs autocomplete elisp emacs24 cedet


    【解决方案1】:

    我发现 cedet 实在是太让人失望了。 我建议只使用一个可以完成所有工作的工具 https://github.com/Andersbakken/rtags 它会在您键入以及使用智能补全时突出显示错误。获取所需的 emacs 包后,只需将其添加到您的 init 文件中即可

    (require 'rtags)
    (require 'popup)
    (require 'rtags-ac)
    (setq rtags-completions-enabled t)
    (rtags-enable-standard-keybindings c-mode-base-map)
    (add-hook 'c++-mode-hook
              (lambda ()
                (setq ac-sources '(ac-source-rtags)
    )))
    

    【讨论】:

      【解决方案2】:

      您是否尝试过与auto-complete 包一起提供的ac-source-gtags?您还可以组合多个来源,如documentation...中所述。

      【讨论】:

        【解决方案3】:

        使用 clang+automplete 也是一种选择:

        http://truongtx.me/2013/03/06/emacs-ccpp-autocomplete-with-clang/

        编辑:我看到您已经编辑了表明您没有叮当声的问题。无论如何,我将这个答案留在这里,以防其他人发现它有用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-27
          • 1970-01-01
          • 2011-05-04
          • 2010-10-14
          • 1970-01-01
          • 2014-05-17
          • 2013-11-01
          • 1970-01-01
          相关资源
          最近更新 更多