在emacs中为clojure使用哪个repl
我试图在emacs中设置一个用于编辑clojure的环境。我对emacs比较陌生 (仅1年)和全新的clojure(2周)。我在网上找到了很多关于如何设置的教程,其中大部分都是关于lein、swank clojure、slime和nrepl的。 似乎swank clojure和slime需要协同工作,但swank clojure已被弃用,所以剩下的是nrepl和一些内置的lisp repl模式 我首先尝试了低级lisp模式,因为它是clojure模式的默认模式,而且在我看来很好。但我似乎找不到在其中轻松切换名称空间的方法 然后我尝试了emacs live,它就像是nrepl附带的emacs新手工具包。 然后我可以执行“nrepl jack in”以获得回复,即使它非常慢。。 它可以使用“C-CM-n”轻松切换名称空间。然而,在切换之后的某个时候,一个名为nrepl error的缓冲区会弹出,不让我关闭。我必须强制关闭emacs。此外,nrepl没有太多语法突出显示 总而言之: 在swank clojure被弃用之后,我应该使用哪个repl?粘液回复?nrepl?还是其他在emacs中为clojure使用哪个repl,emacs,clojure,slime,Emacs,Clojure,Slime,我试图在emacs中设置一个用于编辑clojure的环境。我对emacs比较陌生 (仅1年)和全新的clojure(2周)。我在网上找到了很多关于如何设置的教程,其中大部分都是关于lein、swank clojure、slime和nrepl的。 似乎swank clojure和slime需要协同工作,但swank clojure已被弃用,所以剩下的是nrepl和一些内置的lisp repl模式 我首先尝试了低级lisp模式,因为它是clojure模式的默认模式,而且在我看来很好。但我似乎找不到在
我现在对clojure不太了解,所以我不确定哪项功能对repl很重要,但最好至少突出显示语法,并且可以在nrepl中的“C-C m-n”这样的名称空间和调试器之间轻松切换。nrepl可能是您最好的选择。这是官方建议的swank clojure的替代品,安装起来非常简单。(至于SLIME,swank clojure是clojure的SLIME支持。swank是SLIME的后端通信渠道。如果您想使用SLIME,您将需要swank clojure-但当然,这已经被放弃,取而代之的是nREPL。)我由衷地推荐nREPL.el,原因有很多:
slime repl
(即在slime之外)。在这一点上,它只是swank clojure+SLIME或nrepl.el。鉴于nrepl.el现在实现了SLIME的大部分功能,您最好习惯使用nrepl.el
更新
nREPL.el在0.2.0版之后改名为CIDER。我目前的经验是,nREPL.el比SWANK更不易使用;然而,无论是在功能方面还是在稳定性方面,它都在快速发展 安装Swank现在有点困难,因为Clojure模式已经放弃了它,所以您需要一个旧版本。所以,我的建议是,如果你已经有一个工作的时髦设置,那么在几个月内不要改变任何东西;另一方面,如果您没有工作设置,请选择nrepl,因为它将在不久或以后发生,而Swank将涉及旧版本
如果你最终得到了nrepl,正如我所说,它还不是完美的,但是要记住,用一句话来说,事情只会变得更好 我曾经使用过emacs prelude,并且非常喜欢它。事实上,我昨天切换到emacs live,尝试它提供的一些很酷的功能,如撤销树和自动完成。它还声称拥有现成的clojure支持。我想复制它的一些功能,我的前奏曲配置一旦我学会了如何。因此,nrepl是一种选择。但我发现里面很少有语法亮点,我是不是遗漏了什么?还有,我是否可以从源缓冲区向nrepl发送代码(eval)?例如,如果我执行“C-x C-e”,我将在nrepl缓冲区中得到结果。
M-x包列表包
在Prelude中,您将能够安装撤销树和自动完成:-)我可能很快会为它们添加一些额外的配置。对于nrepl.el,通常的工作流程如下-C-C-k
在源缓冲区中编译并加载到REPL中,您可以在那里轻松试用代码C-M-x
可用于评估单个顶级表单,或C-x C-e
评估最后一个表单。您可以使用C-C-z
在源代码缓冲区和REPL缓冲区之间跳转。nrepl.el的README.md相当广泛。我会去试试。非常感谢!:)