我已经配置了yasnippet和自动完成绑定,因此它不会发生冲突,自动完成使用<tab>
而yasnippet使用<backtab>
:
(add-to-list 'load-path
"~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas-global-mode 1)
;; Remove Yasnippet's default tab key binding
(define-key yas-minor-mode-map (kbd "<tab>") nil)
(define-key yas-minor-mode-map (kbd "TAB") nil)
;; Set Yasnippet's key binding to shift+tab
(define-key yas-minor-mode-map (kbd "<backtab>") 'yas-expand)
我还按照this question中的建议将yasnippet这样的源添加到了ac源。
(defun add-yasnippet-ac-sources ()
(add-to-list 'ac-sources 'ac-source-yasnippet))
(add-hook 'web-mode-hook 'add-yasnippet-ac-sources)
我使用密钥lorem_dummy
创建了两个yasnippets,使用密钥lorem_image
创建了另一个yasnippets,其中一个示例:
# -*- mode: snippet; require-final-newline: nil -*-
# name: lorem_image
# key: lorem_image
# binding: direct-keybinding
# --
<img src="http://lorempixel.com/${1:width}/${2:height}/${3:$$(yas-choose-value '("abstract" "city" "animals" "food" "people" "transport" "business" "sports" "technics"))}/${4:text}" alt="$3">
在&#34;重复的问题&#34;中遵循解决方案后链接,一切似乎都很完美,但几个小时之后,它开始表现得很奇怪,随机,有时它有时会起作用。我制作了一个显示问题的视频,它有效,然后我重新启动Emacs并再次停止工作。
&GT; UPDATE&LT;
好吧,我发现了一些东西,并不是它随机起作用,只是因为它根本不起作用。在该视频中,自动完成与yasnippet键一起使用,因为它们在其他缓冲区中打开,并且它正在使用它。如果我关闭那些缓冲区,它们就会停止工作。 所以,问题是,使用这个init.el AC,它根本不适用于yasnippet