2017-11-14 1 views
5

Ich benutze PAredit auf Emacs mit SLIME repl. Das bedeutet, dass meine S-Ausdrücke zu jedem Zeitpunkt während meines Tippens auf dem Bildschirm ausgeglichen sind.SLIME auf Emacs mit PAredit in REPL - Wie verhindert man die Ausführung unvollständiger aber ausgewogener Ausdrücke?

Sie können jedoch nicht vollständig sein, und ich könnte in einer anderen Linie in ihnen eingeben, fortgesetzt werden soll, wie folgt:

CL-USER> (defun print-hello() 
      ) 

Wenn ich eine neue Zeile zu beginnen, indem Sie die Enter-Taste drücken, aber die SLIME repl führt meinen unvollständigen Ausdruck aus. Ich möchte, dass ich auf den folgenden Ausdruck stehe:

CL-USER> (defun print-hello() 
      (format t "Hello, world")) 

Wie mache ich das bitte?

+4

Verwenden Sie stattdessen 'C-j'. – jkiiski

+0

Das hat funktioniert. Vielen Dank! – ARV

+1

Denken Sie auch daran, den Slime-Scratch-Buffer für mehrzeilige Ausdrücke zu verwenden, viel praktischer als das Reale –

Antwort

0

Für diese Situationen, wenn ich lange s-Ausdrücke in REPL schreibe, denke ich, dass der beste Weg ist, die slime scratch buffer zu verwenden. Sie bearbeiten können, und dass, nachdem er mit

Cj

Kein Problem enter innerhalb der Puffer ausführen, ich bin mit schlauen, aber die Einnahme so sein könnte:

(defun print-hello() 
      (format t "Hello, world")) 
; => PRINT-HELLO 

Eine andere Alternative ist das Arbeiten ohne das letzte Elternteil :-(

oder wie in einem Kommentar von @jkiisky vorgeschlagen, geben Sie den Ausdruck ein und fügen Sie ihn in der Mitte des s ex ein pression C-j

CL-USER> (defun 
) 
0

mit Bezug zu Ihrer Frage stellt lispy Integration mit SLIME.

Ich gebe normalerweise nichts in den REPL-Puffer ein. Stattdessen bearbeite ich den gesamten Code in der Quelldatei und verwende e, um das aktuelle sexp zu überprüfen.

lispy ist auch ein Super-Set von paredit, wenn Kompatibilität Ihr Anliegen ist.

Verwandte Themen