1

我花了一个下午试图让 ritz-swank 包与 emacs 和 Clojure 一起工作。(谷歌搜索错误消息等等并没有提供有用的线索。)我希望有人能给我一些指导,让我启动并运行。

错误是Symbol's value as variable is void: slime-ritz

根据http://www.delorie.com/gnu/docs/elisp-manual-21/elisp_142.html

“如果你从来没有给一个符号任何值作为全局变量,我们说那个符号的全局值是无效的。换句话说,这个符号的值单元格中没有任何 Lisp 对象。如果你尝试评估这个符号,你得到一个 void-variable 错误而不是一个值.... 一个 void 变量没有任何值。”

我尝试slime-ritz使用 Emacs 'describe-variable' (Ch v) 找到 的值,但它没有返回任何内容。对“ritz”进行适当的搜索没有结果,但搜索“slime”返回了一堆函数(所以我假设slime包存在)。

我的安装过程

我按照https://github.com/pallet/ritz/tree/develop/swank(pallet/ritz项目页面)的安装部分中的说明进行操作,从头开始两次以确保我做对了。这是我最后一次尝试的顺序:

  1. 从一个既不包含 Emacs 也不包含~/.emacs.d目录的系统开始。

  2. 安装 Emacs 24.2,最新可用的 Mac OS X 版本(来自http://emacsformacosx.com/

  3. 通过curl命令安装 Emacs Prelude(参见http://batsov.com/prelude/

  4. 下载(如项目页面所说)的特定版本slimeslime-ritz

  5. 使用手动安装它们M-x package-install-file

  6. 退出并重新启动 emacs,以防万一....

  7. 按照页面说明安装了 lein-ritz 并成功获得:

    Greggs-Mac-Pro:combolock gr$ lein ritz user=> Swank 服务器监听本地端口 51521

  8. M-x slime-connect(应该建立从 Emacs 到 Swank 服务器的连接)Symbol's value as variable is void: slime-ritz在 Emacs 迷你缓冲区中返回错误。

诊断数据

运行M-x package-activated-list产生了以下已加载包的列表:

(ace-jump-mode ack-and-a-half elisp-slime-nav exec-path-from-shell expand-region flycheck gist gh guru-mode helm-projectile helm logito magithub magit melpa paredit pcache projectile dash rainbow-delimiters rainbow-mode s slime slime-ritz solarized-theme undo-tree volatile-highlights yasnippet zenburn-theme)

运行M-x package-list-packages列出了已安装的以下软件包:

ace-jump-mode      20121104....
ack-and-a-half     20130204....
dash               20130223....
elisp-slime-nav    20130127....
exec-path-from-... 20121108.945
expand-region      20130223....
flycheck           20130223....
gh                 20121231.208
gist               20121231.212
guru-mode          20121016....
helm               20130223....
helm-projectile    20130131....
logito             20120225....
magit              20130222....
magithub           20121130....
melpa              20120202....
paredit            20110508....
pcache             20120408....
projectile         20130220....
rainbow-delimiters 20120428.45 
rainbow-mode       0.6         
s                  20130216....
slime              20101113.1   <-- manually installed, from sources
slime-ritz         0.6.0        <--  specified by pallet/ritz page
solarized-theme    20130215....
undo-tree          20130119.926
volatile-highli... 20120215.9  
yasnippet          20130218....
zenburn-theme      20130215....

我注意到它clojure-mode不存在,所以我添加了它,但是上面的第 8 步给出了相同的错误消息。

一些暗中提问

1)我需要安装pallet吗?

2)我是否需要安装该ritz系列的任何其他软件包(https://github.com/pallet/ritz)?

我真的很期待使用 ritz-swank——它看起来真的很强大!(感谢 Hugo Duncan 的辛勤工作!)

4

1 回答 1

0

Emacs Predule 提供 nrepl.el 而不是 swank-clojure。您需要安装 nrepl-ritz 而不是 swank-ritz。Swank-clojure 是一个死项目,在 clojure-mode 2.0.0(Predule 附带的那个)中不再支持。

于 2013-02-24T06:12:10.013 回答