无法在Emacs中获得nrepl的工作
我在Ubuntu机器上运行。 我安装了emacs23
,但它看起来像nREPL
旨在与emacs24
一起emacs24
。 所以,我卸载了emacs23
,安装了emacs24
。 我删除了我现有的.emacs
文件和.emacs.d
目录。
然后我运行Mx package-list-packages
并安装clojure-mode
和nrepl
。
我用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服务器实例。
上一篇: Can't get nrepl working in Emacs
下一篇: How do I choose/switch Leiningen profiles with Emacs nREPL?