2017-11-14 15 views
5

Używam paredit na emacs z repliką SLIME. Oznacza to, że w dowolnym momencie podczas wpisywania repu, moje wyrazy s są zrównoważone.SLIME na Emacs z paredem w repl - jak zapobiec wykonaniu niekompletnych, ale wyważonych wyrażeń?

Jednak nie mogą one być kompletne, a może chcę kontynuować wpisywanie w nich w innym wierszu, co następuje:

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

Kiedy rozpocząć nowy wiersz, naciskając klawisz Enter, jednak Replikacja SLIME wykonuje moje niekompletne wyrażenie. Chcę, aby oczekiwałem na zakończenie wyrażenia:

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

Jak mogę to zrobić?

+4

Zamiast tego użyj "C-j". – jkiiski

+0

To działało. Dzięki! – ARV

+1

Należy także rozważyć użycie bufora rysowania śluzu dla wyrażeń wielowierszowych, znacznie wygodniejszego niż rzeczywisty –

Odpowiedz

0

W takich sytuacjach, podczas pisania długich wyrażeń s w REPL, uważam, że najlepszym sposobem jest użycie slime scratch buffer. można edytować go, a potem wykonać z

Cj

Nie ma problemu naciskając wprowadzić wewnątrz bufora, używam chytry ale przechwytywania może być tak:

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

Inna alternatywa działa bez ostatniego rodzica :-(

lub zgodnie z sugestią w komentarzu @jkiisky, wpisz wyrażenie i dodaj w środku s pression C-j

CL-USER> (defun 
) 
0

Podobne do Twojego pytania, lispy zapewnia integrację ze szlamem.

Zwykle nigdy nie wpisuję niczego w buforze REPL. Zamiast tego edytuję cały kod na miejscu w pliku źródłowym i używam e do sprawdzania aktualnego seksu.

lispy to także super zestaw paredit, jeśli problem dotyczy zgodności.

Powiązane problemy