如何使用自动完成来完成yasnippets

时间:2014-09-05 09:11:21

标签: emacs

我在.emacs文件中使用autocomplete-1.4.0和yasnippet-0.8.1以及以下顺序和配置。

    ; === auto-complete ===
    (require 'auto-complete)
    (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 
    (require 'auto-complete-config)
    (ac-config-default)

    ;; === yasnippet ===
    (require 'yasnippet)
    (yas-global-mode t)
    (setq yas-snippet-dirs
    '("~/.emacs.d/snippets/my-snippets"
      "~/.emacs.d/snippets/yasnippet-snippets"
      ))

但是,对于任何现有的代码段或我创建的任何新代码段,我都没有获得自动完成提示。如果我在这里做错了什么,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:5)

您应该添加yasnippet ac-source。 我在我的init文件中有这个:

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

然后,对于我希望启用yasnippet源的每个模式,我将add-yasnippet-ac-sources添加到该模式钩子:

(add-hook 'ruby-mode-hook 'add-yasnippet-ac-sources)