我最近从 Emacs 中的 package-list-packages
更新了 SLIME。但是,当我尝试使用 M-x slime
运行它时,我得到了这个:
(progn (load "/home/koz/.emacs.d/elpa/slime-20140913.730/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.3081"))
*
; loading #P"/home/koz/.emacs.d/elpa/slime-20140913.730/swank-loader.lisp"
;;
;; Error while compiling /home/koz/.emacs.d/elpa/slime-20140913.730/swank/backend.lisp:
;; Failed to find the TRUENAME of /home/koz/.emacs.d/elpa/slime-20140913.730/swank/backend.lisp:
;; No such file or directory
;; Aborting.
;; *
之后我还有一个 REPL,但我觉得这很奇怪,我想知道发生了什么以及为什么。
最佳答案
开启 Freenode's #lisp channel ,我与一位同意 MELPA 中当前版本的 SLIME (20140913.730) 的人交谈过。在我的系统上,整个 $HOME/.emacs.d/elpa/slime-20140913.730/swank/目录都丢失了,这可能是它无法编译其中找到的 Lisp 文件的原因。
channel 的其他成员建议从 Quicklisp 安装 SLIME;我这样做了,它奏效了,虽然那里的 SLIME 版本稍旧(日期为 2014-08-01)。这是我所做的(我还没有安装 Quicklisp);调整以匹配您的系统和偏好:
- 从 Emacs 的包列表中卸载 SLIME(执行
M-x list-packages
,转到 SLIME 行,按 d,然后按 x )。 - 访问 http://www.quicklisp.org/beta/并下载绿色框中的文件(在我的例子中,它位于 ~/Downloads 中)。
- 将 SBCL 升级到 1.2.2 或更高版本。这可能是矫枉过正。
- 启动
sbcl
。 - 评估
(load "~/Downloads/quicklisp.lisp")
. - 评估
(quicklisp-quickstart:install)
;可选地,如果您不希望它进入 ~/quicklisp,请添加:path "~/.quicklisp/"
(替换您实际希望安装的任何目录)。 - 通过评估
(ql:quickload "swank")
来安装 SLIME 和 SWANK。 - 可选:评估
(ql:add-to-init-file)
以修补您的 .sbclrc 以始终在 SBCL 中加载 Quicklisp。 - 使用 Ctrl+D 退出 SBCL。
- 调整您的 Emacs 配置文件,如 SLIME's readme 所示.对于路径条目,请使用
"~/quicklisp/dists/quicklisp/software/slime-2.9"
(根据您安装 Quicklisp 的任何路径进行调整)。 - 重启 Emacs 和
M-x slime
应该可以工作了。
关于emacs - SLIME 未从 Emacs 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858840/