我正在使用:
我的.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经历感到非常满意,如果能解决这个小小的烦恼,我会感激不尽。
答案 0 :(得分:2)
我遇到同样的问题,作为一个不完美的解决方案,你可以使用:
(setq ac-disable-faces nil)
这将启用引号之间的自动匹配。 如果这不起作用,请尝试将其与 autopair 或电子对模式结合使用。