新手Clojure程序员在这里。 Emacs中的NREPL不适合我。
我的项目只是莱恩生成的Hello World。
在shell中运行“lein repl”,但是nrepl.el不起作用。 而不是在repl中清理项目的命名空间, 我只是在“user”命名空间中得到默认的toplevel。
应该看到类似的内容:
my$ lein repl
nREPL server started on port 57347
REPL-y 0.2.0
Clojure 1.5.1
Hello Project
my.core=>
但请看:
; nREPL 0.1.8-preview
user> (in-ns my.core)
CompilerException java.lang.ClassNotFoundException: my.core, compiling:(NO_SOURCE_PATH:1:1)
user>
在一个干净的nrepl.el场景中,我看到两个java进程正在进行,看起来似乎有道理。一个人在-classpath上有我的项目,正在实现实际的repl(服务器),而另一个是客户端java(-D MyProjectPath -m leiningen.core.main repl:headless)。
无论是m-x nrepl-jack-in
到达那里,还是从shell开始,然后m-x nrepl
,我都会遇到同样的损失。我得到一个不了解我的项目的repl。
我想知道这些东西是否适用于任何人,或者我是否安装了某些东西或设置错误?很多“0.xxx”版本的东西都在这里......
答案 0 :(得分:2)
看起来您在命名空间之前缺少引号,请尝试以下操作:
(in-ns 'my.core)
请注意'在我之前。
答案 1 :(得分:1)
NRepl始终在顶级用户命名空间中启动。在Clojure缓冲区中使用M-x nrepl-set-ns
或C-c M-n
将NRepl的名称空间设置为缓冲区之一。
在您的具体情况下,
src/my/core.clj
,按C-c M-j
启动NRepl,src/my/core.clj
缓冲区C-u C-c C-z
将NRepl名称空间设置为my.core
并切换回NRepl缓冲区。 C-u C-c C-z
是C-c M-n
的快捷方式,后跟C-c C-z
切换到NRepl缓冲区。