我在Ubuntu机器上运行。我安装了emacs23
,但nREPL
似乎可以与emacs24
一起使用。因此,我卸载了emacs23
,安装了emacs24
。我删除了现有的.emacs
文件和.emacs.d
目录。
然后我运行M-x package-list-packages
并安装了clojure-mode
和nrepl
。
我使用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
),但这是一个完全没有首发。 : - (
答案 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服务器实例。