Emacs auto-complete-c-headers无法使用引号

时间:2014-10-02 19:05:41

标签: c++ c emacs emacs24

我正在使用:

我的.emacs文件的相关部分如下(我的.emacs文件中的其他内容很少,我在调查此问题时尝试将其减少到最低限度。)

;; Auto-complete
(add-hook 'after-init-hook
      (lambda()
        (ac-config-default)))

;; Auto-complete C/C++ header file names
(add-hook 'c-mode-common-hook
      (lambda()
  (require 'auto-complete-c-headers)
  (add-to-list 'ac-sources 'ac-source-c-headers)
  (add-to-list 'achead:include-directories '"/usr/include/c++/4.9.1")
  (add-to-list 'achead:include-directories '"/usr/include/c++/4.9.1/x86_64-unknown-linux-gnu")
  (add-to-list 'achead:include-directories '"/usr/include/c++/4.9.1/backward")
  (add-to-list 'achead:include-directories '"/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include")
  (add-to-list 'achead:include-directories '"/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include-fixed")))

自动完成适用于:

#include <iost...

但不是为了:

#include "MyCla...

但它适用于:

#include <MyCla...

虽然MyClass.hpp不是系统包含文件(位于./下,这是auto-complete-c-headers的标准搜索路径)。但是我必须编辑括号并将其更改为引号。

查看auto-complete-c-headers的代码,它在我看来引号案例应该有效。

有关可能导致此问题的原因的任何想法?

我在想,也许Emacs在

之后进入某种模式
#include "

阻止它从auto-complete-c-header中获取建议。

作为程序员的编辑,我对我最新的Emacs经历感到非常满意,如果能解决这个小小的烦恼,我会感激不尽。

1 个答案:

答案 0 :(得分:2)

我遇到同样的问题,作为一个不完美的解决方案,你可以使用:

(setq ac-disable-faces nil)

这将启用引号之间的自动匹配。 如果这不起作用,请尝试将其与 autopair 电子对模式结合使用。