2

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

我创建了两个 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">

lorem_dummy如果我只写 lorem 并按下以在下拉列表中显示两个选项(和) ,是否可以使 Emacs 自动完成工作lorem_image?因为现在它没有出现 yasnippets,但是常规的自动完成确实有效(变量和其余的东西)。

--更新--

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

视频

4

1 回答 1

1

添加ac-source-yasnippet到您的ac-sources,例如

(eval-after-load "auto-complete"
  '(add-to-list 'ac-sources 'ac-source-yasnippet))
于 2015-05-26T12:35:49.223 回答