Tôi đang sử dụng tự động hoàn thành và đoạn mã trong Emacs và tôi bị nhầm lẫn bởi cài đặt của chúng. Tôi đặt đoạn mã sau vào .emacs
tôi:Giới thiệu về tự động hoàn thành và đoạn mã trong các 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)
Tôi cố gắng để thiết lập yasnippet là ứng cử viên đầu tiên trong menu sổ popup tự động hoàn tất. Tuy nhiên, như ví dụ dưới đây cho thấy, điều này không hoạt động với cài đặt hiện tại của tôi: khi tôi nhập từ for
, formatItem
ở vị trí đầu tiên và for
trong giây lát. formatItem
chỉ là một hàm cục bộ trong bộ đệm hiện tại.
for_____________
|formatItem |
|for a|
|for s|
|force s|
|foreachv s|
----------------
Vì vậy, câu hỏi của tôi là: làm thế nào tôi có thể làm cho yasnippet là ứng cử viên đầu tiên tự động hoàn thành? Và có gì thiếu trong cấu hình .emacs
của tôi không?
Mọi trợ giúp đều được đánh giá cao.
Tôi không biết câu trả lời, nhưng tự động hoàn chỉnh có một hệ thống học tập được xây dựng trong, do đó bạn thường xuyên hơn chọn một ứng cử viên cho một hoàn thành cao hơn nó sẽ được thời gian tới. Vì vậy, bạn chỉ có thể phải sử dụng nó một lúc và tất cả các đoạn trích được sử dụng thường xuyên của bạn sẽ tự động nổi lên trên cùng. – Tom