安装YASnippet

Ale*_*afi 5 emacs debian yasnippet

我安装了YASnippet并使用以下配置:

(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c")
(require 'yasnippet) ;; not yasnippet-bundle

(yas--initialize)
(yas/load-directory "~/.emacs.d/packages/yasnippet-0.6.1c/snippets")
Run Code Online (Sandbox Code Playgroud)

但是,当我启动Emacs时它会给我一个错误:

Warning (initialization): An error occurred while loading `/home/alexander/.emacs':

Symbol's function definition is void: yas--initialize

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.
(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c")
(require 'yasnippet) ;; not yasnippet-bundle

(yas--initialize)
(yas/load-directory "~/.emacs.d/packages/yasnippet-0.6.1c/snippets")
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我试图找到答案,但没有成功.(我也尝试过另一个版本的yasnippet yasnippet-0.6.1b,但它是一样的.)

har*_*rpo 5

一眼就看出来了

(yas--initialise)
Run Code Online (Sandbox Code Playgroud)

应该

(yas/initialize)
Run Code Online (Sandbox Code Playgroud)

我正在运行,0.6.1并且yas--initialize包中没有这样的功能.

我的初始化代码看起来像

(require 'yasnippet)
(yas/initialize)
(yas/load-directory
 (dot-emacs "elpa/yasnippet-0.6.1/snippets"))
Run Code Online (Sandbox Code Playgroud)

我想你在某处有一些乱码的初始化代码.

编辑

我应该load-directory在我的样本中省略了调用,因为它不是重点.但是对于它的价值,dot-emacs我只是一个与配置无关的函数来引用相对于我的init的文件:

(defun dot-emacs (relative-path)
  "Return the full path of a file in the user's emacs directory."
  (expand-file-name (concat user-emacs-directory relative-path)))
Run Code Online (Sandbox Code Playgroud)