9

我的问题已经有一段时间了,这让我非常头疼。我正在使用 emacs 24.2.1

下一个代码是我的自动完成配置,当我在没有 yasnippet 的情况下运行它时,一切运行顺利。

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

这是我对 yasnippets 的配置

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

在这段代码之后,yasnippet 可以正常工作,但自动完成功能对于 c-mode、c++-mode、java-mode 和 php-mode 停止工作,但它在 lisp 和 python 上运行良好(我只用这些语言进行了测试)。

我已经尝试过我发现的东西,比如这个自动完成代码

(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)

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

(global-auto-complete-mode t)

一段时间后,我意识到当我没有 yasnippet 时自动完成功能运行良好,所以这不是解决方案。我也尝试过(yas/initialize)(yas--initialize)但它没有任何区别。我还在自动完成之前和之后启动了 yasnippets,结果是一样的。我也尝试过修改 yas/trigger-key 变量,但我总是得到相同的结果。希望你能帮助我。

4

1 回答 1

9

正如 jpkotta 所说,我只是将我的 ac-source-yasnippet 设置为 nil ,仅此而已。

(setq ac-source-yasnippet nil)
于 2013-04-18T13:05:15.973 回答