【问题标题】:Is it possible to make autocomplete to complete a yasnippet in Emacs? [duplicate]是否可以自动完成以在 Emacs 中完成 yasnippet? [复制]
【发布时间】:2015-08-07 23:46:36
【问题描述】:

我已经配置了 yasn-p 和自动完成绑定,所以它不会发生冲突,自动完成使用 <tab> 而 yasn-p 使用 <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)

我创建了两个 yasn-ps,一个带有密钥 lorem_dummy,另一个带有密钥 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 并按下以在下拉列表中显示两个选项(lorem_dummylorem_image),是否可以让 Emacs 自动完成工作?因为现在它没有出现 yasn-ps,但是常规的自动完成确实有效(变量和其他东西)。

-- 更新--

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

video

【问题讨论】:

  • 好的,它是重复的。很抱歉,但恐怕我在 stackoverflow 上搜索时找不到那个问题。请关闭或删除此内容,因为您发布的内容解决了我的问题。

标签: emacs autocomplete yasnippet


【解决方案1】:

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

(eval-after-load "auto-complete"
  '(add-to-list 'ac-sources 'ac-source-yasnippet))

【讨论】:

  • 我在 &lt;backtab&gt; 定义之后添加了一个错误:Symbol's value as variable is void: ac-sources
  • @Fabman,这仅在加载 auto-complete 后有效。我已经相应地更新了我的答案。
  • 对不起,我在激活 'ac-sources 之前添加了这一点,这就是我收到该错误的原因。无论如何,添加后仍然不会自动完成 sn-ps。
  • 对不起,克里斯,不,我不是,我只是检查了您添加的“可能重复”,这确实解决了我的问题。我想我没有找到合适的词,英语不是我的第一语言。
  • @Fabman,请提出一个新问题。
猜你喜欢
  • 2013-03-24
  • 2012-04-09
  • 2011-04-13
  • 2019-05-03
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 2016-05-26
相关资源
最近更新 更多