粘液在emacs24中不起作用

时间:2012-02-06 14:44:54

标签: emacs slime emacs24

我在archlinux中使用emacs24。如果我使用marmalade.org的slime软件包,那么当我使用M-x slime时,错误是:

debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread
#<THREAD "initial thread" RUNNING {AB007A9}>:
  Couldn't load
  "/home/sinners/.emacs.d/elpa/slime-20100404.1/swank-loader.lisp": file does
  not exist.

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

但如果我使用官方网站上的slime-cvs软件包,错误是:

Debugger entered: (("Error in timer" slime-attempt-connection (#<process inferior-lisp> nil 2) (void-variable --cl-accu--)))
  #[257 "\302\303\304\300\301F\"\207" [slime-attempt-connection (#<process inferior-lisp> nil 2) debug nil "Error in timer"] 7 "\n\n(fn DATA)"]((void-variable --cl-accu--))
  funcall(#[257 "\302\303\304\300\301F\"\207" [slime-attempt-connection (#<process inferior-lisp> nil 2) debug nil "Error in timer"] 7 "\n\n(fn DATA)"] (void-variable --cl-accu--))
  slime-timer-call(slime-attempt-connection #<process inferior-lisp> nil 2)
  apply(slime-timer-call (slime-attempt-connection #<process inferior-lisp> nil 2))
  byte-code("r\301\302H\303H\"\210)\301\207" [timer apply 5 6] 4)
  timer-event-handler([t 20271 59188 161536 0.3 slime-timer-call (slime-attempt-connection #<process inferior-lisp> nil 2) nil])

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:10)

--cl-accu--变量的问题有关在存在词汇作用域时断开emacs cl包的问题。尝试转到粘液分布中的slime.el,找到字符串 文件末尾的;; lexical-binding: t部分中的;; Local Variables:,并将其更改为;; lexical-binding: nil。如果您有文件,请删除旧的slime.elc文件。

答案 1 :(得分:4)

我有完全相同的问题,这是通过删除我之前使用byte-recompile-directory编译的slime.elc文件来解决的。我没有尝试再次编译它。

答案 2 :(得分:2)

我不确定,但此问题可归因于SLIMESWANK的不同版本。但是,您应该使用pacman来安装lisp实现(我认为SBCL是Linux上最受欢迎的实现),然后使用quicklisp安装其他所有实现。

请参阅this博文,了解如何使用SWANK安装SLIMEquicklisp