Emacs,Clojure,lein和nrepl:* nrepl * buffer显示空白

时间:2013-08-13 12:21:11

标签: emacs clojure leiningen nrepl

我使用lein创建了一个新项目。我在emacs中打开core.clj。我确保运行M-x clojure-modeM-x nrepl-enable-on-existing-clojure-buffers

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

  

启动nREPL服务器......

后跟一条消息,如:

  

连接。如果你优化一切,你一定会感到不快。   -Donald Knuth

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

如果我输入任何内容(意思是什么),我会得到:

  

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

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

  

CompilerException java.lang.RuntimeException:无法解析   符号:x在此上下文中,编译:(NO_SOURCE_PATH:1:1)

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

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

编辑:其他信息

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

  

没有Lisp子进程;看变量`inferior-lisp-buffer'

另外,我正在运行:

GNU Emacs 24.3.1

Leiningen 2.1.2 on Java 1.6.0_27 OpenJDK 64-Bit Server VM

1 个答案:

答案 0 :(得分: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)

通过运行M-x package-list-packages安装nrepl和clojure-mode并安装各自的条目后,您就可以使用nrepl了。

将您的自定义.emacs一次添加回一个逻辑单元,您应该能够找出冲突的位置并将其消除。怀疑与史莱姆/斯旺克有关的任何事情。