/ / welche Antwort innerhalb Emacs für Clojure verwenden - Emacs, Clojure, Schleim

was zu verwenden in Emacs für Clojure - Emacs, Clojure, Schleim

Ich versuche, eine Umgebung zum Bearbeiten einzurichtenClojure in Emacs. Ich bin relativ neu bei Emacs (nur 1 Jahr) und völlig neu in clojure (2 Wochen). Ich habe viele Anleitungen online gefunden, wie man die meisten davon einrichtet, von denen man über Lein, Swank-Clojure, Slime und Nrepl spricht. Es scheint, dass Swank-Clojure und Slime zusammenarbeiten müssen, aber Swank-Clojure ist veraltet. Was übrig bleibt, ist nrepl.

Ich habe zuerst den minderwertigen Lisp-Modus ausprobiert, da dies der Standard für den Clojure-Modus ist und für mich gut aussieht. Aber ich kann nicht scheinen, einen Weg zu finden, um Namensraum leicht innerhalb dieses zu wechseln.

Ich habe dann Emacs-Live ausprobiert, was wie ein Kit für istEmacs Neuling, der mit Nrepl kommt. Ich kann dann "nrepl-jack-in" tun, um eine Antwort zu erhalten, obwohl es sehr langsam ist. Mit "C-C M-n" kann der Namespace problemlos gewechselt werden. Howevre, irgendwann nach dem Umschalten, wurde ein Puffer aufgerufen nrepl Fehler würde auftauchen und mich nicht schließen lassen. Ich muss stattdessen enacs erzwingen. Außerdem hat nrepl nicht viel Syntax-Highlight.

Um zusammenzufassen: nach dem swank-clojure wurde veraltet, welchen repl sollte ich verwenden? Schleim-Antwort? nrepl? oder andere?

Ich weiß jetzt nicht viel über Clojure, also bin ich nichtSicher, dass bwhat für eine Replik wichtig ist, aber es wäre schön, zumindest die Syntax hervorzuheben und leicht zwischen Namespaces wie "C-C M-n" in nrepl und möglicherweise einem Debugger zu wechseln.

Antworten:

15 für die Antwort № 1

Ich empfehle nREPL.el aus verschiedenen Gründen von Herzen:

  1. swank-clojure ist offiziell tot, war aber schonfür eine lange Zeit tot. Während es einige Arbeit erledigt hatte, hat sich daran nichts geändert oder verbessert. Die Entwicklung von Swank-Clojure erforderte beträchtliche Fachkenntnisse in Common Lisp, die den Clojure-Entwicklern im Allgemeinen fehlen und dazu nicht bereit sind.

  2. Clojure-Modus 2.0.0 unterstützt Swank-Clojure + SLIME überhaupt nicht. Dieser Schritt war sowohl für den Clojure-Modus (der viel alten Code verloren hat) als auch für Nrepl.el (der das Entwicklungsgeschwindigkeitstempo nach der Ankündigung erhöhte) sehr vorteilhaft.

  3. nrepl.el nimmt Funktionen wirklich SCHNELL auf. Ich bin einer der Mitwirkenden, also sollte ich es wissen :-) Vor kurzem wurden viele coole Dinge wie Macroexpansion, Hervorhebung von Kompilierungsfehlern und Unterstützung für mehrere Verbindungen hinzugefügt, um nur einige zu nennen. Viele weitere Funktionen und Verbesserungen sind in Vorbereitung Die Architektur von .el ist viel einfacher als die von SLIME und es ist für normale Clojure-Hacker viel einfacher, nrepl.el zu erweitern.

  4. SLIME-Syntax-Hervorhebung? Das REPL hat sowohl in SLIME als auch in nrepl.el die gleiche Schriftartensperre, und die Quellpuffer verwenden die Schriftartensperre des Clojure-Modus. Andere Wörter - Syntaxhervorhebung - sind in beiden gleich.

  5. Emacs Live verlässt sich auf hergebrachte Git-Submodule. Generell hinken die Versionen der von ihr ausgelieferten Erweiterungen dem Upstream etwas hinterher. Möglicherweise möchten Sie es als Alternative versuchen Emacs Vorspiel, die ebenfalls mit Clojure-Unterstützung geliefert wird, verwendet jedoch immer die neuesten in MELPA verfügbaren Pakete.

Es gibt kein slime-repl (außerhalb von SLIME). An diesem Punkt ist es einfach nur ein Swank-Clojure + SLIME oder nrepl.el. Da nrepl.el jetzt sogar das meiste von dem implementiert, was SLIME hat, sollte man sich besser an nrepl.el gewöhnen.

Aktualisieren

nREPL.el wurde nach Version 0.2.0 in CIDER umbenannt.


3 für die Antwort № 2

nREPL ist wahrscheinlich die beste Wahl. Es ist der offiziell vorgeschlagene Ersatz für Swank-Clojure und es ist wirklich einfach einzurichten. (Wie bei SLIME, Swank-Clojure ist SLIME-Unterstützung für Clojure. SWANK ist der Backend-Kommunikationskanal für SLIME. Wenn Sie SLIME verwenden möchten, werden Sie ein "swank-clojure" wollen - aber das ist natürlich zugunsten von nREPL aufgegeben worden.


1 für die Antwort № 3

Im Moment habe ich die Erfahrung gemacht, dass nrepl.el etwas weniger brauchbar ist als SWANK. es nimmt jedoch schnell zu, sowohl in Bezug auf die Funktionen als auch in Bezug auf die Stabilität.

Swank zu installieren ist jetzt etwas schwieriger, weilDer Clojure-Modus hat ihn fallen gelassen, also brauchen Sie eine ältere Version. Wenn Sie also bereits ein funktionierendes Setup haben, sollten Sie ein paar Monate nichts ändern. Auf der anderen Seite, wenn Sie nicht über ein funktionierendes Setup verfügen, entscheiden Sie sich für Nrepl, da dies so oder später geschehen wird und Swank alte Versionen einbezieht.

Wenn Sie mit nrepl enden, wie ich sage, ist es noch nicht perfekt, aber behalten Sie das Wissen, dass, um einen Satz zu prägen, die Dinge nur besser werden können.