使用Emacs 24自动完成不适用于Java,C或C ++模式

时间:2013-02-03 20:14:19

标签: emacs autocomplete emacs24

我使用橘子酱回购安装了自动完成。所有东西都正确安装并且移动后的东西我设法启动并运行自动更正而没有任何错误,我的init.el中包含以下代码:

;; auto-complete
(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete/dict")
(ac-config-default)

现在我可以使用自动完成而不使用Emacs Lisp,但每当我使用任何其他模式时,例如Java,C或C ++,它根本不起作用。

我也安装了yasnippet(它工作正常),不确定是否与它有任何关系。这是我的init.el中的相关代码:

;;yasnippet
(add-to-list 'load-path
              "~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas-global-mode 1)

我正在学习Emacs,目前我还是一个菜鸟。我一直在查看文档,但是没有找到任何东西。我真的很感激任何帮助。

2 个答案:

答案 0 :(得分:6)

您可能需要添加完成源。这是我配置中的内容:

(set-default 'ac-sources
             '(ac-source-abbrev
               ac-source-dictionary
               ac-source-yasnippet
               ac-source-words-in-buffer
               ac-source-words-in-same-mode-buffers
               ac-source-semantic))

更新ac-config-default应该涵盖这一点,但如果自动完成没有针对这些模式激活,请尝试在init.el中添加以下内容:

(dolist (m '(c-mode c++-mode java-mode))
  (add-to-list 'ac-modes m))

(global-auto-complete-mode t)

Update2 :我发布了一个gist,可以使用package-install调整您的init.el以提取自动填充功能。

我不知道你引用的是哪个版本的自动完成,但最新版本对我来说还不错。

C-mode with working auto-completions

答案 1 :(得分:0)

我和你有完全相同的问题。 Emacs-Lisp与自动完成功能完美,但C,C ++不起作用。在尝试了各种组合之后,我发现从.emacs评论yasnippet解决了我的问题。希望这可以帮到你。我的自动完成版本是1.3.1。