无法在Emacs中获得nrepl的工作

我在Ubuntu机器上运行。 我安装了emacs23 ,但它看起来像nREPL旨在与emacs24一起emacs24 。 所以,我卸载了emacs23 ,安装了emacs24 。 我删除了我现有的.emacs文件和.emacs.d目录。

然后我运行Mx package-list-packages并安装clojure-modenrepl

我用lein new foobar创建了一个Clojure项目,然后尝试打开默认的core.clj文件。 它使我自动进入Clojure模式,但如果我键入Mx 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 ),但这是一个完全不起步的东西。 :-(


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

总之,问题是lein版本2+在这里是必需的,但如果你有一个较低的版本,你实际上并没有得到任何可见的错误指示(除非你计算*nrepl-server*引发的异常,通常不可见)。


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

链接地址: http://www.djcxy.com/p/38609.html

上一篇: Can't get nrepl working in Emacs

下一篇: How do I choose/switch Leiningen profiles with Emacs nREPL?