【问题标题】:Can't get nrepl working in Emacs无法让 nrepl 在 Emacs 中工作
【发布时间】:2013-09-10 01:11:24
【问题描述】:

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

然后我运行M-x package-list-packages 并安装了clojure-modenrepl

我用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 emacs clojure nrepl


    【解决方案1】:

    所以,问题是我的 Ubuntu 版本通过 apt-get 安装了 Leinengen 1.7.1,但如果 I upgrade to version 2,问题就消失了。

    总而言之,问题是这里需要lein 2+ 版本,但如果您有较低版本,您真的看不到任何明显的错误指示(除非您计算*nrepl-server* 中引发的异常,通常不可见)。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 2013-02-26
        • 1970-01-01
        • 2013-02-21
        • 1970-01-01
        相关资源
        最近更新 更多