7

我用lein. 我core.clj用emacs打开。我确保运行M-x clojure-mode, 和M-x nrepl-enable-on-existing-clojure-buffers.

然后我运行M-x nrepl-jack-in并在迷你缓冲区中得到

正在启动 nREPL 服务器...

后跟一条消息,例如:

连接的。如果你优化一切,你一定会不高兴。——唐纳德·克努斯

我看到缓冲区名称是*nrepl*,但缓冲区不包含 Clojure Repl 而是完全空白。

如果我输入任何东西(意味着任何东西),我会得到:

错误的类型参数:integer-or-marker-p, nil

如果我切换回我的core.clj缓冲区并点击C-c C-l,我会在 minibuffer 中的缓冲区中获得最后一个函数的命名空间名称。如果我将光标放在函数定义的末尾并点击C-x C-e,我会得到:

CompilerException java.lang.RuntimeException: Unable to resolve symbol: x in this context, compile:(NO_SOURCE_PATH:1:1)

我尝试创建一个没有依赖关系的新 lein 目录,lein new project-name并尝试了与上述相同的步骤并得到了相同的结果。

我还能检查什么和/或我做错了什么?

编辑:附加信息

当我在空*nrepl*缓冲区中输入内容并尝试按下C-x C-e我输入的内容时,在迷你缓冲区中我收到消息:

没有 Lisp 子进程;见变量‘inferior-lisp-buffer’

另外,我正在运行:

GNU Emacs 24.3.1

Java 1.6.0_27 OpenJDK 64 位服务器 VM 上的 Leiningen 2.1.2

4

1 回答 1

3

我刚刚在自己的设置中解决了这个确切的问题。将您的 .emacs.d 移动到备份位置,并制作 .emacs 的备份副本。使用以下几行创建一个新的 .emacs :

(require 'package)

(add-to-list 'package-archives 
    '("marmalade" .
      "http://marmalade-repo.org/packages/"))

(package-initialize)

(require 'clojure-mode)

(require 'nrepl)

通过运行和安装各自的条目安装 nrepl 和 clojure-modeM-x package-list-packages后,您将能够使用 nrepl。

一次将您的自定义 .emacs 添加回一个逻辑单元,您应该能够找出冲突的位置并消除它。怀疑任何与粘液 / swank 相关的东西。

于 2013-08-13T20:44:05.417 回答