2011-11-11 9 views
27

Ho appena installato la modalità auto-complete, tuttavia ogni volta che avvio emacs devo utilizzare la modalità auto-completa M-x. È comunque necessario caricarlo automaticamente?Emacs auto-complete-mode all'avvio

mio .emacs è la seguente:

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

Grazie

+0

Penso che ci sia una soluzione suggerita in [Emacs Wiki] (http://www.emacswiki.org/emacs/AutoComplete). Cerca la modalità di completamento automatico globale e verifica se questo funziona per te. – alexurba

risposta

42

Penso che si può fare in vari modi. Per attivarlo a livello globale si dovrebbe usare

(global-auto-complete-mode t) 

ma utilizza completamento automatico-mode, forse, che si trasformano AC solo su quelli elencati ac-modes. È possibile aggiungere manualmente proprio come questo

(add-to-list 'ac-modes 'sql-mode) 

È possibile fare la vostra lista, se si desidera AC essere attivo solo per pochi modi

(setq ac-modes '(c++-mode sql-mode)) 

o riscrivere per avere AC ovunque.

(defun auto-complete-mode-maybe() 
    "No maybe for you. Only AC!" 
    (auto-complete-mode 1)) 

modificato:

completamento automatico in minibuffer è male. Penso che questo andrà meglio.

(defun auto-complete-mode-maybe() 
    "No maybe for you. Only AC!" 
    (unless (minibufferp (current-buffer)) 
    (auto-complete-mode 1))) 
+2

Potrebbe essere utile sottolineare che è necessario un '(require 'auto-complete)' da qualche parte prima che '(global-auto-complete-mode t)' sia eseguito. –

+0

Ho trovato '(setq ac-modes '(C++ - modalità sql-mode))' per essere il modo più semplice (e meno ambiguo) per realizzare ciò che volevo. –

+0

Nessuna di queste opzioni funziona per me su emacs 24.3.1 su Ubuntu x86. Vedo che lo stato sulla modeline ('AC') ma nessuna delle caratteristiche AC funziona, e so che lo fanno perché ho usato per accenderlo manualmente usando' M-x auto-complete-mode'. Ciò che ha funzionato per me è stato in https://emacs.stackexchange.com/questions/18982/how-do-i-make-auto-complete-enabled-by-default – Sonny

19

Ho solo bisogno di questo:

(require 'auto-complete) 
(global-auto-complete-mode t) 

aggiunto alla mia .emacs.d file/init.el.

Ho installato il completamento automatico con il gestore pacchetti. Sto usando Emacs 24.

+0

Questo ha funzionato per me, ma non l'altro. Grazie. –

+1

Si prega di avvisare anche con questa impostazione, la modalità AC non verrà attivata per ogni modalità. Ad esempio, la modalità AC non funzionerà in modalità ReST senza riscrivere '' auto-complete-mode-maybe() '' come la risposta accettata. – zack