9

私はemacsでclojureを編集するための環境をセットアップしようとしています。私はemacsに比較的慣れておらず(わずか1年)、clojureにまったく慣れていません(2週間)。セットアップ方法についてのチュートリアルをオンラインでたくさん見つけました。そのほとんどは、lein、swank-clojure、slime、nreplについて説明しています。swank-clojureとslimeは連携する必要があるようですが、swank-clojureは非推奨であるため、残っているのはnreplであり、一部はlispreplモードで組み込まれています。

clojure-modeのデフォルトであり、私には問題ないように見えるので、最初に劣ったlispモードを試しました。しかし、その中で名前空間を簡単に切り替える方法を見つけることができないようです。

次に、nreplに付属するemacs初心者向けのキットのようなemacs-liveを試しました。その後、「nrepl-jack-in」を実行して、非常に遅い場合でもreplを取得できます。「CCMn」を使用すると、名前空間を簡単に切り替えることができます。ただし、切り替え後、 nreplエラーと呼ばれるバッファがポップアップし、閉じられません。代わりに、emacsを強制的に閉じる必要があります。また、nreplには構文のハイライトがあまりありません。

要約すると、swank-clojureが非推奨になった後、どのreplを使用する必要がありますか?スライム-repl?nrepl?または他の人?

私は今clojureについてあまり知らないので、どの機能がreplにとって重要かはわかりませんが、少なくとも構文を強調表示して、nreplの「CCMn」のような名前空間を簡単に切り替えることができれば便利です。デバッガ。

4

3 に答える 3

15

さまざまな理由から、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は、機能を非常に高速に取得しています。私はその貢献者の1人なので、知っておく必要があります:-)最近、マクロ拡張、コンパイルエラーの強調表示、複数の接続のサポートなど、多くのすばらしい機能が追加されました。さらに多くの機能と改良がパイプラインにあります。nrepl.elのアーキテクチャはSLIMEのアーキテクチャよりもはるかに単純であり、通常のClojureハッカーがnrepl.elを拡張するのははるかに簡単です。

  4. SLIME構文の強調表示?REPLはSLIMEとnrepl.elの両方で同じフォントロックを使用しており、ソースバッファーはclojureモードのフォントロックを使用しています。言い換えれば、構文の強調表示は両方で同じです。

  5. Emacs Liveはベンダー化されたgitサブモジュールに依存しており、一般的に、出荷される拡張機能のバージョンはアップストリームよりも少し遅れています。代わりにEmacsPreludeを試してみることをお勧めしますこれも、Clojureをサポートしていますが、常にMELPAで利用可能な最新のパッケージを使用しています。

ありませんslime-repl(SLIMEの外にあります)。この時点では、swank-clojure+SLIMEまたはnrepl.elです。nrepl.elが今でもSLIMEのほとんどを実装していることを考えると、nrepl.elの使用に慣れたほうがよいでしょう。

アップデート

nREPL.elは、バージョン0.2.0以降にCIDERに名前が変更されました。

于 2013-02-06T21:36:31.447 に答える
3

nREPLはおそらくあなたの最善の策です。これは、swank-clojureの正式に提案された代替品であり、セットアップは非常に簡単です。(SLIMEに関しては、swank-clojureClojureのSLIMEサポートです。SWANKはSLIMEのバックエンド通信チャネルです。SLIMEを使用する場合は、swank-clojureが必要ですが、もちろん、nREPLのために放棄されています。)

于 2013-02-06T20:40:57.237 に答える
1

現時点での私の経験では、nrepl.elはSWANKよりも使い勝手がやや劣っています。ただし、機能と安定性の両方の点で、急速に回復しています。

Clojureモードで削除されたため、Swankのインストールは少し難しくなりました。そのため、古いバージョンが必要になります。ですから、私のアドバイスは、すでにスワンクのセットアップが機能している場合は、2、3か月は何も変更しないことです。一方、動作するセットアップがない場合は、nreplを選択してください。これは、それ以降に発生するためであり、Swankは古いバージョンを使用することになります。

私が言うように、あなたがnreplで終わった場合、それはまだ完璧ではありませんが、フレーズを作るために、物事は良くなるだけであるという知識を保ちます。

于 2013-02-07T16:24:08.793 に答える