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

nic*_*o_c 7 emacs autocomplete emacs24

我使用marmalade repo安装了auto-complete.一切安装正确,移动后的东西我设法启动并运行自动更正没有任何错误与我的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)
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Chr*_*ett 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))
Run Code Online (Sandbox Code Playgroud)

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

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

(global-auto-complete-mode t)
Run Code Online (Sandbox Code Playgroud)

Update2:我发布了一个要点,使你的init.el能够使用自动完成功能package-install.

我不知道你引用了什么版本的自动完成,但最新版本对我来说很好.

具有工作自动完成功能的C模式