繁体   English   中英

无法让nrepl在Emacs工作

[英]Can't get nrepl working in Emacs

我在Ubuntu机器上运行。 我安装了emacs23 ,但看起来nREPL设计用于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服务器实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM