2

编辑由于我尚未完全理解的原因,我的 Cx Ce 被绑定到eval-last-sexp而不是 (?) slime-eval-last-expression。现在我可以从.clj缓冲区中Cx Ce并且我至少可以直接看到我的函数何时(不)正确,但是,这显然不会使我只是slime-eval-last-expression 的函数“可用” REPL。

我已经设置了我的 Emacs 来进行一些 Clojure 编程,但我不知道我的设置是否正确。

我有两个缓冲区:一个用于.clj文件,一个用于 REPL。我正在使用clojure-jack-in来启动 REPL。

显然我需要总是编译.clj(这总是迫使我用提示保存文件)然后我需要切换到 REPL 并在 REPL 中发出一个(使用'myname.space)才能尝试,比如说我写的一个新函数。

对于看似非常简单的事情,要按下很多键。

现在,当然,我可以编写一个 Emacs 宏来完成整个保存/确认/切换到 REPL/问题(使用 'myname.space) shebang 但我想知道我的设置是否正确?

我想我的问题是:我连接的 REPL 是否应该始终与包含我正在处理的.clj的缓冲区“同步”?

4

1 回答 1

3

如果你用 Emacs 编辑 clojure,你应该使用 Slime。见https://github.com/technomancy/swank-clojure

然后,当您使用 Mx clojure-jack-in 在 emacs 中启动和连接 REPL 时,您只需执行 Cx Ce 来编译和加载当前的 sexp,或者执行 Cx Ck 来编译和加载当前的缓冲区。

换句话说,您的 repl 不会“自动”与您刚刚在某些 clojure 代码缓冲区中键入的任何内容同步,但是有更快、更简单的方法可以将代码从缓冲区发送到正在运行的 clojure 程序。

于 2012-04-25T15:06:03.723 回答