2010-03-03 8 views

Antwort

11

Nun, können Sie Ihre erste SLIME normal starten, dann (require 'swank.swank) (oder vielleicht ist es standardmäßig erforderlich ... nicht sicher), nicht (swank.swank/start-repl port) mit port durch eine Portnummer ersetzt und Sie können eine zweite Instanz von SLIME verbinden, dass neu erstellte REPL.

Ich habe es getan gerade jetzt, mit einem Emacs zu einem REPL Anschluss begann mit lein swank, (swank.swank/start-repl 4006) im ersten Emacs, Mx schleim Verbindung in der zweiten Emacs (4006 als Portnummer bereitstellt), dann könnte ich tun dies:

; first Emacs 
(def x 5) 

; second Emacs 
x ; evaluates to 5 
(def y 1234) 

; first Emacs 
y ; evaluates to 1234 

Cool, nein? :-)

Update: Oh, BTW - (swank.swank/start-repl) startet die neue REPL im Hintergrund und nicht blockieren die REPL, die Sie verwenden, um es auszuführen. Der Rückgabewert ist nil, also bin ich nicht sicher, wie die neue REPL ...

(Update 2.: Entfernte etwas, was ich bin nicht mehr sicher) zu töten

Update 3: Während der oben Methode ist vollkommen allgemein, dass es macht es möglich, einen zusätzlichen Client unabhängig davon, wie die ursprüngliche Swank Instanz gestartet wurde zu verbinden, könnte es bequemer sein Swank zu beginnen mit dem Befehl

lein swank 4005 "localhost" :dont-close true 

die Port und Hostnamen Argumente Muss explizit erwähnt werden, wenn :dont-close true zu übergeben ist. 4005 und "localhost" sind die Standardwerte.

Dies ermöglicht es, die Verbindung zu Swank zu trennen und später erneut zu verbinden, aber auch mehrere Clients gleichzeitig zu verbinden.

(Ich habe gerade bemerkt, dass dies möglich ist, während this new question auf der Beantwortung wie reconnections zu Leiningen gestartet Swank ermöglichen; es mir plötzlich aufgetreten zu überprüfen, ob :dont-close auch gleichzeitige Verbindungen zu akzeptieren verursachen würde - und es funktioniert.)

+0

Das ist genial. Genau das, was ich gesucht habe! –

+2

'Super' ist genau das richtige Wort. :-) Übrigens, du kannst 'swank.swank/start-repl' verwenden, um Swank in jede Clojure App einzubetten - ich habe gelesen, dass Leute es sehr gut benutzen. Der Hauptkritikpunkt ist, dass Swank sich nicht um Sicherheit kümmert, daher müssen Sie darauf achten, den Zugriff auf den REPL-Port selbst einzuschränken. –

+0

Offenbar erfordert die oben in Update 3 beschriebene Funktionalität einen ziemlich neuen Lein-Swank; Siehe die andere Frage, auf die ich verlinkte (und insbesondere die Kommentare zu meiner Antwort dort), für Details. –

Verwandte Themen