我遇到问题已有一段时间了,这真让我头疼。我正在使用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模式,c++模式,java模式和php模式下工作,但在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变量,并且总是得到相同的结果。希望你能帮助我。
最佳答案
正如jpkotta所说,我只是将ac-source-yasnippet设置为nil,仅此而已。
(setq ac-source-yasnippet nil)
关于emacs 24自动完成yasnippet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15774807/