我以前在windows中使用Emacs,最近我想尝试Ubuntu 14.04。我使用相同的设置,相同的init.el
,相同的包。但是在Ubuntu下启动Emacs时遇到错误。
我不是一个elisp程序员,我希望我能在这里得到一些帮助。我正在使用Prelude for Emacs 24,但即使我使用-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)
答案 0 :(得分:2)
您似乎需要删除〜/ emacs.d / elpa / company-XXX并重新安装。
即使您使用-Q
调用它,它仍然有一个检查~/.emacs.d/
目录的启动文件。
首先尝试删除.elc文件,然后删除所有内容。
答案 1 :(得分:2)
删除~/.emacs.d/elpa
,重新启动Emacs,让Prelude再次安装所有软件包。
看起来你在不同的Emacs版本中偶然发现了package.el之间的不兼容性。不过,我不知道为什么。通常,只有在从Emacs 23升级到24或从Emacs 24.3升级到(尚未发布的)Emacs 24.4时才会出现这样的错误。但是,这些似乎都不是这样的。
您也会因emacs -Q
而收到此错误,因为emacs -Q
仍会从~/.emacs.d/elpa
加载所有用户安装的包。