10

我在 Ubuntu 机器上运行。我已经emacs23安装了,但它看起来像是nREPL设计用于emacs24. 所以,我卸载emacs23了,安装了emacs24。我删除了现有的.emacs文件和.emacs.d目录。

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

我创建了一个 Clojure 项目,lein new foobar然后尝试打开默认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尤其是),但这完全不是初学者。:-(

4

2 回答 2

14

所以,事实证明问题是我的 Ubuntu 版本安装了 Leinengen 1.7.1 via,apt-get但如果我升级到版本 2,问题就消失了。

总而言之,问题是lein这里需要版本 2+,但是如果您有较低的版本,您真的不会得到任何明显的错误指示(除非您计算 抛出的异常*nrepl-server*,这通常不可见)。

于 2013-09-10T01:20:22.183 回答
2

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

于 2013-09-10T05:05:10.383 回答