Hintergrund Ich oft finde ich selbst einige lang laufenden Prozess von der REPL starten und dann wünschte, ich könnte weiterhin die REPL für andere Aufgaben, während es ausgeführt wurde. Kann ich Schleim zum Hintergrund des aktuellen Threads verwenden oder einen neuen REPL-Kontroll-Thread starten? Starten eines zusätzlichen REPL-Puffer wäre auch in Ordnung.Kann ich einen laufenden Thread in den Slime (Swank Emacs)
Antwort
Edit:
Hm, ich schaffte es irgendwie, die Clojure-Tag auf Ihre Frage zu verpassen. Ich wäre sehr überrascht, wenn die untenstehende Lösung für Clojure funktioniert hätte, da, wie Sie wahrscheinlich wissen, die Clojure-Community leider (zumindest für diejenigen unter uns, die Clojure verwenden) eine eigene Version von Slime unterhält. Ich werde die Antwort nicht löschen, da sie für CL-Programmierer, die nach dieser Funktionalität suchen, hilfreich sein kann.
Es sei denn, es eine ähnliche Lösung für Clojure ist, die über eine einzige Buchse Multiplex mehrere REPLs erlaubt, könnten Sie vielleicht starten Sie einfach einen zweiten Swank Server von Hand (aus dem *inferior-lisp*
Puffer) und es über slime-connect
als Behelfslösung verbinden. (Kann diese ATM nicht testen, da ich vor einer Weile mit Schleim mit Clojure gestoppt.)
Haben Sie versucht, die slime-mrepl
contrib? M-x slime
, geben Sie (sleep 10)
in der REPL, Wechselpuffer, M-x slime-new-mrepl
: Ich habe es nicht wirklich selbst, aber ein schneller Test funktionierte für mich unter CCL/Win/Emacs 24.
Getestet habe ich es wie folgt verwendet.
Bitte verzeihen Sie mir für eine etwas triste und nicht Schleim spezifische Antwort; Auf der Oberseite wird es mit jedem Clojure REPL funktionieren.
Wenn ich im Voraus weiß, beginne ich eine lange laufende Aufgabe von der REPL dann starte ich die Berechnung mit future
und überprüfe mit future-done?
, bevor ich es definiere.
Dies könnte Ihre Frage nicht beantworten, aber es könnte hilfreich sein, zu erkennen, dass, solange (slime-communication-style)
:spawn
ist, getan Auswertungen mit C-x C-e
immer ihren eigenen Thread erzeugen und parallel laufen kann, was auch immer in dem REPL Thread geschieht. Die Ausgabe (von println
usw.) erscheint im REPL-Puffer.
- 1. Wie kann ich einen Puffer und/oder eine Anweisung in Emacs mit Swank und SLIME evaluieren?
- 2. swank-clojure und slime arbeiten nicht mehr zusammen in emacs
- 3. Einstellen der SLIME in Emacs
- 4. Kann ich zwei Emacs/Slimes mit derselben Swank-Instanz verbinden?
- 5. ^M Zeichen zeigt in clojure slime-repl
- 6. Clojure Emacs Schleim + Swank-Verzeichnis Frage
- 7. Wie kann ich einen interaktiven elisp-Interpreter in Emacs aufrufen?
- 8. einen laufenden Thread in Java töten?
- 9. kann ich zwei verschiedene Lisp + Slime/Swanks aus den gleichen Emacs verwenden?
- 10. Common Lisp: Wie (in-Package ...) vom Emacs Slime
- 11. Rahmen schleim enable-evaluate-in-Emacs
- 12. Wie SLIME und Emacs elegant beenden?
- 13. SLIME/SWANK stürzt ab, wenn meine Common Lisp Code-Syntax etwas falsch ist
- 14. Wie verbinde ich eine Clojure-Quelldatei mit einer laufenden Clojure-Replik auf Emacs?
- 15. Kann keine lustigen Zeichen an SLIME senden
- 16. Springe zur Funktionsdefinition in Emacs + Schleim/Leiningen-Swank + Clojure
- 17. Wie sende ich Daten an einen laufenden Python-Thread?
- 18. Wie kann ich eine Auswertung in Clojure Box (Emacs) abbrechen?
- 19. Lerne Emacs/Slime auf dem harten Weg (von 10 Jahren Vim)
- 20. Einrichten von SLIME auf MacOSX
- 21. Einrichten Uber Entwicklungsmodus in Emacs für Clojure
- 22. Emacs und Schleim hielt für mich zusammenarbeiten
- 23. Neubelegung der SLIME-Tasten
- 24. Embedding Swank-Clojure in Java-Programm
- 25. schlüsselbindung in schleim emacs
- 26. Wie kann ich einen laufenden Maven Build in NetBeans beenden?
- 27. Wie richte ich den Clojure-Klassenpfad in Emacs nach der Installation mit ELPA ein?
- 28. Bitte empfehlen Sie eine gute Slime Tutorial oder Screencast
- 29. android - So stoppen Sie den laufenden Thread sicher
- 30. Wie kann ich den Thread selbst aufrufen?
immer noch nützlich, auch wenn es nicht direkt die Antwort auf diese Frage ist, danke –