我在 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
),但这完全不可能。 :-(
最佳答案
所以,事实证明问题是我的 Ubuntu 版本通过 apt-get
安装了 Leinengen 1.7.1 但如果 I upgrade to version 2 ,问题消失了。
总而言之,问题是这里需要 lein
版本 2+,但如果你有一个较低的版本,你真的看不到任何明显的错误指示(除非你算上异常扔在 *nrepl-server*
中,这通常是不可见的)。
关于ubuntu - 无法让 nrepl 在 Emacs 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18709330/