ARV*_*ARV 7 lisp emacs common-lisp slime paredit
我使用SLIME的repl在emacs上使用paredit.这意味着在我在repl上输入的任何时候,我的s表达式都是平衡的.
但是,它们可能不完整,我可能想继续在另一行中输入内容,如下所示:
CL-USER> (defun print-hello ()
)
Run Code Online (Sandbox Code Playgroud)
但是,当我按回车键开始新行时,SLIME repl会执行我的不完整表达式.我希望它等待我完成表达式,如下所示:
CL-USER> (defun print-hello ()
(format t "Hello, world"))
Run Code Online (Sandbox Code Playgroud)
我该如何做到这一点呢?
对于这种情况,当在 REPL 中编写长 s 表达式时,我认为最好的方法是使用slime scrap buffer。你可以编辑它,然后执行
Cj
在缓冲区内按 Enter 没问题,我正在使用 sly,但捕获可能是这样的:
(defun print-hello ()
(format t "Hello, world"))
; => PRINT-HELLO
Run Code Online (Sandbox Code Playgroud)
另一种选择是在没有最后一个父级的情况下工作:-(
或者按照 @jkiisky 的评论中的建议,输入表达式并添加到 s 表达式的中间C-j
CL-USER> (defun
)
Run Code Online (Sandbox Code Playgroud)