Emacs auto-complete-c-headers 不能使用引号

Emacs auto-complete-c-headers won't work with quotation marks

本文关键字:auto-complete-c-headers 不能 Emacs      更新时间:2023-10-16

我正在使用:

  • Linux Manjaro
  • GNU Emacs 24.3.1,Manjaro中更新的标准Emacs包
  • Emacs包了来自Melpa的auto-complete和auto-complete-c-headers

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

;; 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不是一个系统包含文件(位于./下,这是自动完成c头的标准搜索路径)。但是,我必须编辑括号并将其更改为引号。

看看自动完成c-headers的代码,在我看来引号大小写应该有效。

你知道是什么导致了这个问题吗?

我在想,也许Emacs在之后进入了某种模式

#include "

这阻止了它接受来自自动完成c头的建议。

作为一名程序员的编辑,我对自己最近的Emacs经历感到非常满意,如果有任何关于如何解决这个小问题的提示,我将不胜感激。

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

(setq ac-disable-faces nil)

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