DJG*_*DJG 6 emacs clojure leiningen nrepl
我创建了一个新项目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,我得到迷你缓冲区中缓冲区中最后一个函数的命名空间名称.如果我将光标放在函数定义的末尾并点击C-x C-e,我得到:
CompilerException java.lang.RuntimeException:无法在此上下文中解析符号:x,编译:(NO_SOURCE_PATH:1:1)
我尝试使用没有依赖项的新lein目录,lein new project-name并尝试上述相同的步骤并得到相同的结果.
我还能检查什么和/或我做错了什么?
编辑:附加信息
当我在空*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位服务器VM
我刚刚在自己的设置中解决了这个问题。将 .emacs.d 移至备份位置,并制作 .emacs 的备份副本。创建一个新的 .emacs 文件,仅包含以下几行:
(require 'package)
(add-to-list 'package-archives
'("marmalade" .
"http://marmalade-repo.org/packages/"))
(package-initialize)
(require 'clojure-mode)
(require 'nrepl)
Run Code Online (Sandbox Code Playgroud)
通过运行M-x package-list-packages和安装各自的条目来安装 nrepl 和 clojure-mode 后,您将能够使用 nrepl。
一次将您的自定义 .emacs 添加回一个逻辑单元,您应该能够找出冲突所在并消除它。对任何与史莱姆/炫耀有关的事物保持怀疑。