2013-04-02 50 views
9

我一直有一個問題,它給了我一個真正的頭痛。我正在使用emacs 24.2.1emacs 24 autocomplete yasnippet

下一個代碼是我的自動完成配置,當我沒有運行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的事情,所以這不是解。我也試過(亞/初始化)(亞 - 初始化)但它沒有任何區別。我還在自動完成之前和之後啓動了yasnippets,結果是一樣的。我也試着修改yas/trigger-key變量,並且總是有相同的結果。希望你能幫助我。

+0

你使用的是什麼版本的auto-complete和yasnippet?有一段時間,最新的yasnippet和ac-source-yasnippet沒有一起工作,儘管我不確定這是否仍然如此。我在我的init.el中設置了ac-source-yasnippet爲零。 – jpkotta

+0

它的工作與!謝謝,我仍然會進一步搜索,因爲將ac-source-yasnippet設置爲nil有點奇怪。在你的配置中沒有任何問題嗎? – silgon

+0

這有點奇怪,但我不認爲這對我造成了問題。 yasnippet和自動完成都可以正常工作。看看源代碼,它似乎是從交流源(這是本地緩衝區)中移除它可能更加正確。 – jpkotta

回答

9

正如jpkotta所說,我只是將我的ac-source-yasnippet設置爲零,就是這樣。

(setq ac-source-yasnippet nil)