繁体   English   中英

哪个repl在emacs里面用于clojure

[英]which repl to use inside emacs for clojure

我想在emacs中设置一个编辑clojure的环境。 我对emacs(仅1年)相对较新,而且对于clojure(2周)来说是全新的。 我在网上找到了很多关于如何设置lein,swank-clojure,slime和nrepl的教程。 似乎swank-clojure和slime需要一起工作但是swank-clojure已经弃用了,所以剩下的就是nrepl和一些内置的lisp repl模式。

我首先尝试了劣质的lisp模式,因为它是clojure-mode的默认模式,它对我来说很好看。 但我似乎无法找到一种方法在其中轻松切换命名空间。

然后我尝试了emacs-live,这就像是nrepl附带的emacs新手的工具包。 然后我可以做“nrepl-jack-in”来获得一个repl,即使它非常慢..它可以用“CC Mn”轻松切换名称空间。 然而,在切换之后的某个时候,会弹出一个名为nrepl错误的缓冲区,并且不会让我关闭。 我必须强制关闭emacs。 此外,nrepl没有太多的语法高亮。

总结一下:在swank-clojure被弃用之后,我应该使用哪个repl? 煤泥REPL? nrepl? 或其他人?

我现在对clojure知之甚少,所以我不确定bre功能对于repl很重要但是至少有语法高亮并且可以在nrepl中像“CC Mn”之类的命名空间之间轻松切换,这可能是一件好事。调试器。

我衷心推荐nREPL.el有各种原因:

  1. swank-clojure正式死了,但已经死了很久了。 虽然它已经完成了一些工作,但在它最初成立之后没有任何改变或改进。 swank-clojure的开发需要Common Lisp的重要专业知识,Clojure开发人员通常缺乏并且不愿意实现。

  2. clojure-mode 2.0.0根本不支持swank-clojure + SLIME。 这一举动对clojure模式(删除了大量遗留代码)和nrepl.el(发布速度在宣布后增加)都非常有利。

  3. nrepl.el正在快速提升功能。 我是它的贡献者之一所以我应该知道:-)最近增加了许多很酷的东西,如宏扩展,编译错误突出显示和多个连接支持,仅举几例。 更多功能和改进正在筹备中。 nrepl.el的架构比SLIME简单得多,而且常规的Clojure黑客更容易扩展nrepl.el。

  4. SLIME语法突出显示? REPL在SLIME和nrepl.el中具有相同的字体锁定,并且源缓冲区使用clojure-mode的字体锁定。 换句话说 - 语法高亮在两者中都是一样的。

  5. Emacs Live依赖于供应商的git子模块,而且它所提供的扩展版本通常都落后于上游。 您可能希望尝试另外的Emacs Prelude ,它也附带Clojure支持,但始终使用MELPA中提供的最新软件包。

没有slime-repl (在SLIME之外)。 在这一点上,它只是swank-clojure + SLIME或nrepl.el。 鉴于nrepl.el现在甚至实现了SLIME的大部分功能 - 你最好习惯使用nrepl.el。

更新

在版本0.2.0之后,nREPL.el被重命名为CIDER。

nREPL可能是你最好的选择。 这是正式建议的替代swank-clojure,它很容易设置。 (至于SLIME,swank-clojure 对Clojure的SLIME支持.SWANK SLIME的后端通信渠道。如果你想使用SLIME,你会想要swank-clojure - 但当然已经放弃了有利于nREPL。)

我目前的经验是,nrepl.el比SWANK更不可用; 然而,就功能和稳定性而言,它都在快速增长。

现在安装Swank有点困难,因为Clojure-mode已经放弃了它,所以你需要一个旧版本。 所以,我的建议是,如果你已经有一个工作的swank设置,那么几个月内不要改变任何东西; 另一方面,如果你没有工作设置,那就去找nrepl,因为它会发生这样或者更晚,而Swank将涉及旧版本。

如果你最终得到nrepl,就像我说的那样,它还不是完美的,但要保持知识,用一个短语来说,事情只能变得更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM