2013-04-02 6 views
9

Ho avuto un problema per un po ', e mi sta dando un vero mal di testa. Sto usando emacs 24.2.1emacs 24 autocompleta yasnippet

Il prossimo codice è la mia configurazione per il completamento automatico, e quando lo eseguo senza yasnippet tutto funziona senza intoppi.

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

Questa è la mia configurazione per yasnippets

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

Dopo questo codice, yasnippet funziona bene, ma il completamento automatico smette di funzionare per la c-mode, C++ - modalità, java-mode e php-mode, ma funziona bene con lisp e python (ho provato solo con queste lingue).

Ho provato cose che ho trovato in questo modo il codice per il completamento automatico

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

Dopo qualche tempo mi sono reso conto che il completamento automatico funzionava bene quando non ho yasnippet, in modo che non è il soluzione. Ho anche provato (yas/initialize) e (yas - initialize) ma non fa alcuna differenza. Ho anche avviato yasnippet prima e dopo il completamento automatico e il risultato è lo stesso. Ho anche provato a modificare la variabile yas/trigger-key, e ho sempre lo stesso risultato. Spero che tu possa aiutarmi.

+0

Quali versioni di auto-completamento e yasnippet stai utilizzando? Un tempo, l'ultimo yasnippet e ac-source-yasnippet non funzionavano insieme, anche se non sono sicuro che sia ancora così. Ho impostato l'ac-source-yasnippet su zero nel mio init.el. – jpkotta

+0

Sta funzionando con quello !!! grazie, continuerò a cercare un po 'di più, perché è piuttosto strano avere ac-source-yasnippet impostato su zero. Non ci sono problemi a causa di ciò nella tua configurazione? – silgon

+0

È un po 'strano, ma non penso che causi problemi per me. Sia yasnippet che autocomplete funzionano bene. Guardando il codice sorgente, sembra come rimuoverlo da ac-sources (che è il buffer locale) potrebbe essere più corretto. – jpkotta

risposta

9

Come ho detto jpkotta, ho impostato il mio ac-source-yasnippet su zero e basta.

(setq ac-source-yasnippet nil)