1

我是一个试图设置 emacs 和 slime 的 clojure noob。似乎没有一种真正的方法可以做到这一点,所以我关注了一些博客文章以及 swank-clojure 和 leiningen README。

大多数情况下它都有效。我的问题是,如果我尝试从回溯中选择 restart 0 [QUIT],我会得到

'进程过滤器错误:参数数量错误:nil,0'

(我还在“Mx slime-connect”上看到关于 slime 和 swank 版本不匹配的警告,但谷歌搜索表明这是意料之中的)。

这是 Debian Lenny。我通过 'git clone git://git.boinkor.net/slime.git' 得到了粘液。Clojure 和 clojure-contrib 是 1.2.0,swank-clojure 是 1.2.1。

有人见过这个吗?或者,是否有所有部件兼容版本的最新列表?非常感谢。

编辑:

看起来很可能是这个问题。我在该线程中关注了与 OP 相同的博客文章。

编辑:

是的。使用ELPA获取 slime 和 slime-repl 包修复了它。

4

3 回答 3

2

不要通过 git 获取粘液,而是使用 ELPA。请参阅我对问题的编辑中的链接。

于 2011-03-15T21:09:32.813 回答
1

clojure 生态系统在去年发生了很大变化,因此许多链接最多的教程都以艰难的方式做事。你真的不需要构建 clojure/contrib 并安装它了。Maven2 和 leinengen 都非常适合您。

您可能只需安装 lein(来自教程)然后创建一个新项目即可起床并使用 clojureing。即使在我的大型项目中,这也足以让我感到高兴。你真的不需要在系统范围内安装 clojure。

来自在我运行之前从未见过 clojure 的(ubuntu-10.10)系统:

dev:~$ lein new foo
Created new project in: foo
dev:~$ cd foo
dev:~/foo$ ls
    project.clj  README  src  test
dev:~/foo$ lein repl
Downloading: org/clojure/clojure/1.2.0/clojure-1.2.0.pom from central
Downloading: org/clojure/clojure-contrib/1.2.0/clojure-contrib-1.2.0.pom from central
Downloading: org/clojure/clojure-contrib/1.2.0/clojure-contrib-1.2.0.pom from clojure
Transferring 4K from clojure
Downloading: org/clojure/clojure/1.2.0/clojure-1.2.0.jar from central
Downloading: org/clojure/clojure-contrib/1.2.0/clojure-contrib-1.2.0.jar from central
Downloading: org/clojure/clojure-contrib/1.2.0/clojure-contrib-1.2.0.jar from clojure
Transferring 466K from clojure
Copying 2 files to /home/arthur/foo/lib
"REPL started; server listening on localhost:20092."
user=> (+ 1 2 3)

这就是你真正需要的。玩得开心 :) (当然,clojure 生态系统还有很多东西,尽管没有必要急于进入它)

ps:将 swank-clojure 添加为开发依赖lein swank项,然后从 emacs 中运行然后粘液连接

ps:我按“q”退出回溯。

于 2010-11-20T18:56:43.440 回答
0

这是谷歌的更新:自从以前的答案以来,事情已经发生了变化,现在启动 swank/slime 的正确方法是通过clojure-jack-in最近版本的 clojure-mode 中的命令,该lein jack-in命令在最近版本的swank-clojure. 使用,除了自动为您安装clojure-jack-in所有 Emacs 依赖项。clojure-mode不要通过 ELPA 或 git 手动安装 slime.el 或 slime-repl.el。

于 2012-01-28T17:44:59.983 回答