Sto utilizzando auto-completamento e yasnippet in Emacs e sono confuso dalle loro impostazioni. Ho messo il seguente codice nel mio .emacs
:Informazioni sul completamento automatico e yasnippet in emacs
(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas/global-mode 1)
(global-set-key (kbd "C-i") 'yas/expand)
(setq yas/also-auto-indent-first-line t)
(add-to-list 'load-path "~/.emacs.d/plugins/autocomplete/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/plugins/autocomplete/ac-dict")
(ac-config-default)
(setq ac-use-menu-map t)
(define-key ac-menu-map "\C-n" 'ac-next)
(define-key ac-menu-map "\C-p" 'ac-previous)
(defun ac-js-mode()
(setq ac-sources '(ac-source-yasnippet
ac-source-symbols
ac-source-words-in-buffer
ac-source-words-in-same-mode-buffers
ac-source-files-in-current-dir
)))
(add-hook 'js-mode-hook 'ac-js-mode)
Sto cercando di impostare yasnippet come primo candidato nel menu a comparsa completamento automatico. Tuttavia, come mostra l'esempio seguente, questo non funziona con le mie impostazioni attuali: quando digito la parola for
, formatItem
è in prima posizione e for
in seconda. formatItem
è solo una funzione locale nel buffer corrente.
for_____________
|formatItem |
|for a|
|for s|
|force s|
|foreachv s|
----------------
Quindi la mia domanda è: come posso rendere yasnippet il primo candidato in completamento automatico? E c'è qualcosa che manca nella mia configurazione .emacs
?
Qualsiasi aiuto è apprezzato.
non so la risposta, ma completamento automatico ha un sistema di apprendimento integrato, in modo che il più delle volte si seleziona un candidato per un completamento più alto sarà la prossima volta. Quindi potresti doverlo usare solo per un po ', e tutti i frammenti utilizzati frequentemente verranno automaticamente spostati verso l'alto. – Tom