我使用lein
创建了一个新项目。我在emacs中打开core.clj
。我确保运行M-x clojure-mode
和M-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
答案 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一次添加回一个逻辑单元,您应该能够找出冲突的位置并将其消除。怀疑与史莱姆/斯旺克有关的任何事情。