Bor*_*ris 8 macos emacs autocomplete yasnippet
我在Emacs中使用自动完成和yasnippet,我对它们的设置感到困惑.我在下面放了以下代码.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)
Run Code Online (Sandbox Code Playgroud)
我试图将yasnippet设置为自动完成弹出菜单中的第一个候选者.但是,如下面的示例所示,这不适用于我当前的设置:当我键入单词时for,formatItem处于第一个位置和for第二个位置.formatItem只是当前缓冲区中的本地函数.
for_____________
|formatItem |
|for a|
|for s|
|force s|
|foreachv s|
----------------
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何让yasnippet成为自动完成的第一个候选人?我的.emacs配置中是否缺少某些内容?
任何帮助表示赞赏.
ac-config-default安装钩子来设置合理的默认ac-sources值.这些挂钩(特别是ac-common-setup)可能会干扰您的设置.
您可以通过查看缓冲区中ac-sources(C-h vac-sources)的实际值js-mode来查看是否已通过与自定义值进行比较来修改它.
如果是这种情况,我会看到两个解决方案:
ac-config-default并指定所有autocomplete设置,ac-source-yasnippet在ac-sources运行之后放置.假设ac-common-setup确实是麻烦制造者,这看起来像:(defadvice ac-common-setup (after give-yasnippet-highest-priority activate)
(setq ac-sources (delq 'ac-source-yasnippet ac-sources))
(add-to-list 'ac-sources 'ac-source-yasnippet))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2944 次 |
| 最近记录: |