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

psy*_*lik 2 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"
      ))
Run Code Online (Sandbox Code Playgroud)

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

ale*_*ale 5

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

(defun add-yasnippet-ac-sources ()
  (add-to-list 'ac-sources 'ac-source-yasnippet))
Run Code Online (Sandbox Code Playgroud)

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

(add-hook 'ruby-mode-hook 'add-yasnippet-ac-sources)
Run Code Online (Sandbox Code Playgroud)