2017-11-14 41 views
5

Tôi sử dụng paredit trên emacs với repl của SLIME. Điều này có nghĩa là tại bất kỳ thời điểm nào trong quá trình gõ của tôi trên repl, các biểu thức của tôi được cân bằng.SLIME trên Emacs với paredit trong repl - làm thế nào để ngăn chặn thực hiện các biểu thức không đầy đủ nhưng cân bằng?

Tuy nhiên, họ có thể không đầy đủ, và tôi có thể muốn tiếp tục gõ bên trong chúng phù hợp khác, như sau:

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

Khi tôi bắt đầu một dòng mới bằng cách nhấn phím enter, tuy nhiên, SLIME repl thực hiện biểu thức không đầy đủ của tôi. Tôi muốn nó chờ tôi hoàn thành biểu thức, như sau:

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

Làm cách nào để điều này xảy ra?

+4

Sử dụng 'C-j' để thay thế. – jkiiski

+0

Điều đó đã hiệu quả. Cảm ơn! – ARV

+1

Đồng thời xem xét sử dụng bộ đệm đầu chất nhờn cho các biểu thức nhiều dòng, thuận tiện hơn nhiều so với thực tế –

Trả lời

0

Đối với các trường hợp đó, khi viết biểu thức s dài trong REPL, tôi nghĩ cách tốt nhất là sử dụng slime scratch buffer. bạn có thể chỉnh sửa nó và sau đó thực hiện với

Cj

Không thành vấn đề bức xúc nhập bên trong bộ đệm, Tôi đang sử dụng ranh mãnh nhưng chụp có thể là như thế này:

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

Ngoài ra, một lựa chọn khác đang hoạt động mà không có phụ huynh cuối cùng :-(

hoặc như được đề xuất trong nhận xét của @jkiisky, hãy nhập biểu thức và thêm vào giữa của ví dụ cũ pression C-j

CL-USER> (defun 
) 
0

Liên quan đến câu hỏi của bạn, lispy cung cấp tích hợp với chất nhờn.

Tôi thường không bao giờ nhập bất cứ thứ gì vào bộ đệm REPL. Thay vào đó, tôi chỉnh sửa tất cả mã tại chỗ trong tệp nguồn và sử dụng e để đánh giá sexp hiện tại.

lispy cũng là một bộ siêu số paredit, nếu tính tương thích là mối quan tâm của bạn.

Các vấn đề liên quan