Frage

Ich verwende Emacs mit Clojure-Protzen und Schleim und versuche, meine Entwicklungsumgebung zu setzen. Und ich lief in ein Problem. Wenn ich einen repl starten bin ich in einem unbekannten Verzeichnis stecken mich verhindern mein Namensraum zu laden. Da die clojure repl kann nicht die richtige Datei finden.

Wer weiß, wie das aktuelle Verzeichnis ändern?

PS: Ich habe gerade angefangen Emacs und Schleim mit, damit ich ein noob bin.

War es hilfreich?

Lösung

Wenn Sie ändern Begriff Schleim wollen des aktuellen Verzeichnisses, drücken ,cd<CR> (<CR> = Enter) und geben Sie den Pfad.

Dies ist jedoch nicht wirklich die richtige Lösung für das Problem. Die richtige Lösung beinhaltet das Einstellen der Classpath, so dass Sie (use ‚your.namespace). Zu diesem Zweck ich frage mich, ob diese sehr lange Antwort ich könnte sein, den classpath zum Einrichten richtig auf eine Frage zur Verfügung gestellt hilfreich ...: -)

Übrigens habe ich etwas Objekt zu Lösungen mit add-classpath, so dass zur Zeit als veraltet markiert und wurde nie auf in erster Linie verlassen werden soll ... Obwohl auf der anderen Seite, es sicherlich können Arbeit sehr gut, und es lohnt sich etwa für den Fall, es zu wissen, wie schnell und unsaubere classpath Injektion Gimmick.

Nun, wenn Sie eine nette SLIME-basierte Entwicklungsumgebung wollen, würde ich Ihnen gerne zeigen auf eine sehr schöne clojure-project elisp Funktion von Phil Hagelberg, die Sätze auf alle relevanten Variablen und startet SLIME im Hauptverzeichnis eines Projekts ( werden interaktiv mitgeliefert). Es wurde auf die Clojure Gruppe geschrieben, in der Tat hier ein Link an der Kopie des Mail-Archiv dieser Nachricht. Hinweis gibt es eine Sache, die korrigiert werden muss da drin - swank-clojure-jar-path sollte auf den vollständigen Pfad zu clojure.jar eingestellt werden. Ansonsten ist es ein fantastisches Werkzeug.

Eigentlich habe ich erwähnt, dass die Funktion in diese Antwort eine Frage über den classpath der Verwaltung, wenn Clojure und Emacs. Die anderen Antworten könnten auch interessant sein.

Und wenn Sie gerade erst SLIME zu verwenden beginnen, sie sehen das SLIME Video, verbunden von SLIME die Homepage , die unter einem Link jetzt verfügbar ist veröffentlicht von Michiel in den Kommentaren. Es ist eine sehr gute Einführung. : -)

Andere Tipps

Leiningen ist ein neues Clojure Build-Tool, dass Sorgen über die für Sie classpathing. Sie stellen eine einfache Projektdatei im Projektstammverzeichnis auf die Hauptklasse Ihres Projekts zu spezifizieren, und es entdeckt automatisch alle die JAR-Dateien in Ihrem lib und lädt sie für Sie.

Ich tippe jetzt einfach „lein Swank“ in einer Befehlszeile und dann M-x Schleim-connect in Emacs, und alles funktioniert einfach. (Diese leicht mit einem wenig Elisp automatisiert werden können.)

Weitere Informationen unter dieser Blog-Post .

Kurze Antwort:
(load-file "full-path-to-definition")

Lange Antwort: Hier ist, was meine Bootstrap-Prozess aussieht:

~ / .clojure / user.clj (diese Datei wird automatisch ausgeführt, wenn Sie Boot-Schleim / clojure):
(add-classpath "file://path/to/foo.jar") ; Include these jars in the classpath
(add-classpath "file://path/to/foo2.jar")
(load-file "file://workspace/bootstrap.clj")

In bootstrap.clj:
(compile 'my.package)

Paketdatei (en) ist bei /workspace/my/package.clj

In package.clj:
(ns my.package)
(defn foo [] (+ 2 2))

Der beste Ansatz, den ich gefunden habe, bei der Verwendung von Emacs, SLIME und Protz-clojure ist das (Emacs Lisp) Funktion Swank-clojure-Projekt zu verwenden. Von seiner Dokumentation:

(Swank-clojure-Projekt PATH)

Setup Classpath für ein clojure Projekt und startet eine neue SLIME Sitzung.   Beseitigt bestehende SLIME Sitzung, falls vorhanden.

Wenn Sie ein „M-x Swank-clojure-Projekt“, wird es interaktiv prompt Sie für Ihr Projekt-Verzeichnis; wenn Sie es ausgewählt haben, werden alle Gläser in einem Unterverzeichnis lib sowie die src und Klassen Ordner auf Ihrem Classpath hinzugefügt werden. Es wird auch eine Maven / lein Verzeichnisstruktur, in anderen Worten ehrt: es wird in der Regel nur Arbeit.

Wenn Sie etwas ändern, zum Beispiel fügen Sie eine neue JAR-Datei, Swank-clojure-Projekt einfach wieder tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top