Używam autouzupełniania i yasnippet w Emacsie i jestem zdezorientowany ich ustawieniami. I umieszczony następujący kod w moim .emacs
:Informacje o autouzupełnianiu i yasnippet w 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)
Próbuję ustawić yasnippet jako pierwszego kandydata z menu kontekstowego autouzupełniania. Jednak, jak pokazuje poniższy przykład, nie działa to z moimi bieżącymi ustawieniami: kiedy wpisuję słowo for
, formatItem
znajduje się na pierwszym miejscu, a for
na drugim. formatItem
to tylko lokalna funkcja w bieżącym buforze.
for_____________
|formatItem |
|for a|
|for s|
|force s|
|foreachv s|
----------------
Moje pytanie brzmi: w jaki sposób mogę uczynić yasnippet pierwszym kandydatem w autouzupełnieniu? I czy jest coś czego brakuje w mojej konfiguracji .emacs
?
Każda pomoc jest doceniana.
ja nie znam odpowiedzi, ale auto kompletne posiada wbudowanego systemu uczenia się, a więc częściej wybrać kandydata na ukończenie, tym wyżej będzie następnym razem. Możesz więc używać go tylko przez pewien czas, a wszystkie często używane fragmenty będą automatycznie wypływać na górę. – Tom