1

我已经配置了 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)

我还按照此问题中的建议将这样的 yasnippet 源添加到了 ac-sources 中。

(defun add-yasnippet-ac-sources ()
  (add-to-list 'ac-sources 'ac-source-yasnippet))
(add-hook 'web-mode-hook 'add-yasnippet-ac-sources)

我创建了两个 yasnippets 一个带有 keylorem_dummy另一个带有 key lorem_image,其中一个示例:

# -*- 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">

在遵循“重复问题”链接中的解决方案后,一切似乎都运行良好,但几个小时后它开始表现得很奇怪,随机,有时它工作有时它不工作。我制作了一个视频来显示问题,它可以工作,然后我重新启动 Emacs 并再次停止工作。

视频 1

>更新<

好的,我发现了一些东西,并不是它随机工作,它只是它根本不起作用。在该视频中,自动完成功能与 yasnippet 键一起使用,因为它们是在其他缓冲区中打开的,并且正在使用它。如果我关闭这些缓冲区,它们就会停止工作。所以,问题是这个 init.el AC 它根本不适用于 yasnippet

视频 2 更新和评论

4

0 回答 0