簡體   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