Emacs 无效函数出错:abbrev

Emacs 无效函数出错:abbrev,emacs,emacs24,Emacs,Emacs24,我以前在windows中使用Emacs,最近我想试试Ubuntu 14.04。我使用了相同的设置,相同的init.el,相同的包。但是我在Ubuntu下启动Emacs时出错了。 我不是一个elisp程序员,我希望我能在这里得到一些帮助。我正在使用Emacs24的Prelude,但即使我使用-Q运行Emacs,同样的错误仍然存在 错误如下: Debugger entered--Lisp error: (invalid-function "abbrev") "abbrev"("convenien

我以前在windows中使用Emacs,最近我想试试Ubuntu 14.04。我使用了相同的设置,相同的init.el,相同的包。但是我在Ubuntu下启动Emacs时出错了。 我不是一个elisp程序员,我希望我能在这里得到一些帮助。我正在使用Emacs24的Prelude,但即使我使用-Q运行Emacs,同样的错误仍然存在

错误如下:

Debugger entered--Lisp error: (invalid-function "abbrev")
  "abbrev"("convenience" "matching")
  byte-code("\300\301\302\303\304\305\306\307\310\311\312\"&\207" [define-package "company" "20140731.944" "Modular text completion framework" ((emacs "24.1") (cl-lib "0.5")) :url "http://company-mode.github.io/" :keywords "abbrev" "convenience" "matching"] 11)
  load("/home/zhijia/.emacs.d/elpa/company-20140731.944/company-pkg" nil t)

  package-load-descriptor("/home/zhijia/.emacs.d/elpa" "company-20140731.944")
  package-maybe-load-descriptor("company" "20140731.944" "/home/zhijia/.emacs.d/elpa")
  package-load-all-descriptors()
  package-initialize()

  byte-code("\302\303!\210\302\304!\210\305\306\307\310#\210\311\312\"\313 \207" [prelude-dir package-user-dir require cl package add-to-list package-archives ("melpa" . "http://melpa.milkbox.net/packages/") t expand-file-name "elpa" package-initialize] 4)

  require(prelude-packages)
  eval-buffer(#<buffer  *load*> nil "/home/zhijia/.emacs.d/init.el" nil t)  ; Reading at buffer position 4156
  load-with-code-conversion("/home/zhijia/.emacs.d/init.el" "/home/zhijia/.emacs.d/init.el" nil nil)

  load("/home/zhijia/.emacs.d/init.el" nil nil t)
  load-file("~/.emacs.d/init.el")
  call-interactively(load-file record nil)
  command-execute(load-file record)
  execute-extended-command(nil "load-file")
  call-interactively(execute-extended-command nil nil)

似乎需要删除~/emacs.d/elpa/company-XXX并重新安装

即使您使用-Q调用它,它仍然有一个检查~/.emacs.d/目录的启动文件


在删除所有内容之前,请先尝试删除.elc文件。

似乎需要删除~/emacs.d/elpa/company-XXX并重新安装

即使您使用-Q调用它,它仍然有一个检查~/.emacs.d/目录的启动文件

请先尝试删除.elc文件,然后再删除所有文件。

删除~/.emacs.d/elpa,重新启动emacs,然后让Prelude重新安装所有软件包

看起来您偶然发现了不同Emacs版本中package.el之间的不兼容性。但我不知道为什么。通常,这样的错误只有在从Emacs 23升级到24,或从Emacs 24.3升级到尚未发布的Emacs 24.4时才会发生。不过,这里的情况似乎都不是这样

emacs-Q也会出现此错误,因为emacs-Q仍然从~/.emacs.d/elpa加载所有用户安装的软件包。

删除~/.emacs.d/elpa,重新启动emacs,然后让Prelude重新安装所有软件包

看起来您偶然发现了不同Emacs版本中package.el之间的不兼容性。但我不知道为什么。通常,这样的错误只有在从Emacs 23升级到24,或从Emacs 24.3升级到尚未发布的Emacs 24.4时才会发生。不过,这里的情况似乎都不是这样


emacs-Q也会出现此错误,因为emacs-Q仍然从~/.emacs.d/elpa加载所有用户安装的软件包。

我怀疑只删除.elc文件并保留其余文件就足够了。@alinsoar我不确定。此错误源于评估-pkg.el描述符,这些描述符是在安装时由package.el生成的。我怀疑仅删除.elc文件并保留其余文件就足够了。@alinsoar我不确定。此错误源于评估-pkg.el描述符,这些描述符在安装时由package.el生成。