我通过 ELPA 安装 slime。我的 .emacs 文件如下所示:
(setq inferior-lisp-program "sbcl --noinform")
(add-to-list 'load-path "~/slime/")
(require 'slime)
(slime-setup)
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "http://marmalade-repo.org/packages/")
("melpa" . "http://melpa.milkbox.net/packages/")))
启动 emacs 时出现以下错误:
警告(初始化):加载“/home/name/.emacs”时发生错误:
文件错误:无法打开加载文件,史莱姆
为了确保正常运行,您应该调查并消除初始化文件中的错误原因。使用“--debug-init”选项启动 Emacs 以查看完整的错误回溯。
当我调试时:
Debugger entered--Lisp error: (file-error "Cannot open load file" "slime")
require(slime)
eval-buffer(#<buffer *load*> nil "/home/name/.emacs" nil t) ; Reading at buffer position 91
load-with-code-conversion("/home/name/.emacs" "/home/name/.emacs" t t)
load("~/.emacs" t t)
#[0 "\205\262
当我访问 ~/.emacs.d/elpa/slime-20130308.1112 时,slime.el 显然就在那里。网上的其他人似乎也遇到了问题。如果我无法让它与 emacs24 一起工作,我该如何为 common lisp 设置 slime 环境?
答案1
我使用 Damien Cassou 的 ppa 中的 Debian amd64 软件包安装了 emacs 24。我在粘液方面遇到了一些问题(我不记得它们是否与上面的相同)。我通过重新安装 Quicklisp 修复了它(http://www.quicklisp.org/),然后用它来安装 slime:
(ql:quickload :quicklisp-slime-helper)
对我来说,它与 sbcl 配合得很好(在两台机器上)。我刚刚查看了我的 .emacs;我的加载路径中没有添加任何内容,只是
(load (expand-file-name "~/quicklisp/slime-helper.el"))
(setq inferior-lisp-program "sbcl")
(require 'slime)
(slime-setup '(slime-fancy))
答案2
我刚刚注意到你加载路径说
(add-to-list 'load-path "~/slime/")
但你的 slime.el 文件位于~/.emacs.d/elpa/slime-20130308.1112
不同的位置。您可能需要更正它:(add-to-list 'load-path "~/.emacs.d/elpa/slime-20130308.1112/")
你还没有说(--noinform)你的 sbcl 在哪里
(setq inferior-lisp-program "sbcl --noinform")
。所以我想你必须在命令行上这样做:$ which sbcl
然后系统会告诉你 sbcl 在哪里(可能是 /usr/bin/sbcl)并通过以下方式通知 emacs(setq inferior-lisp-program "/usr/bin/sbcl")