【发布时间】:2012-04-09 18:46:56
【问题描述】:
我在 Emacs 中使用自动完成和 yasn-p,我对它们的设置感到困惑。我将以下代码放入我的.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)
我正在尝试将 yasn-p 设置为自动完成弹出菜单中的第一个候选者。但是,如下例所示,这不适用于我当前的设置:当我输入单词 for 时,formatItem 位于第一位,for 位于第二位。 formatItem 只是当前缓冲区中的一个局部函数。
for_____________
|formatItem |
|for a|
|for s|
|force s|
|foreachv s|
----------------
所以我的问题是:我怎样才能让 yasn-p 成为自动完成的第一个候选人?我的.emacs 配置中是否缺少某些内容?
感谢任何帮助。
【问题讨论】:
-
我不知道答案,但是自动完成有一个内置的学习系统,所以你选择一个候选人的次数越多,下次它就会越高。所以你可能只需要使用一段时间,所有你常用的sn-ps都会自动浮到顶部。
标签: macos emacs autocomplete yasnippet