无法让nrepl在Emacs工作

时间:2013-09-10 01:11:24

标签: ubuntu emacs clojure nrepl

我在Ubuntu机器上运行。我安装了emacs23,但nREPL似乎可以与emacs24一起使用。因此,我卸载了emacs23,安装了emacs24。我删除了现有的.emacs文件和.emacs.d目录。

然后我运行M-x package-list-packages并安装了clojure-modenrepl

我使用lein new foobar创建了一个Clojure项目,然后尝试打开默认的core.clj文件。它会自动进入Clojure模式,但是如果我输入M-x nrepl-jack-in(在core.clj缓冲区中),它会显示Starting nREPL server...,但我从未看到任何名为*nrepl*的缓冲区(根据阅读文档,这是预期的结果)。我只是无限期地看到迷你缓冲区中的Starting nREPL server...

现在,创建了一个名为*nrepl-server* 的缓冲区,它说:

REPL started; server listening on localhost port 5871
Exception Unsupported option(s) supplied: :headless  clojure.core/load-libs (core.clj:5266)
clojure.core=>

但它似乎并不是非常有用(我似乎无法让它在那个缓冲区中评估任何内容?!)。

我尝试使用谷歌搜索,但我找不到任何似乎有这个问题的人。我想玩Clojure(特别是core.logic),但这是一个完全没有首发。 : - (

2 个答案:

答案 0 :(得分:14)

所以,事实证明问题是我的Ubuntu版本通过apt-get安装了Leinengen 1.7.1但如果I upgrade to version 2,问题就消失了。

总之,问题在于此处需要lein版本2+,但如果您的版本较低,则您实际上没有得到任何错误的明显指示(除非您计算{{1}中引发的异常{1}},通常不可见。

答案 1 :(得分:2)

下次您还可以尝试在单独的shell中通过lein repl启动nrepl-server。通过这种方式,您可以查看nrepl正在运行的端口和端口。在Emacs中,您可以执行M-x nrepl并连接到正确的nrepl服务器实例。