我意识到SLIME是高级Lisp交互模式,但我想知道是否有一个“Lisp Interaction”缓冲区可以使用Common Lisp,就像* scratch *缓冲区可以与Emacs Lisp一起使用。 I.E.点击表格末尾的C-j会将该表格的结果插入当前缓冲区。
我问,因为我发现根据需要编辑输出比使用repl更容易。
答案 0 :(得分:4)
有 M-x slime-scratch
RET 虽然我没有
因为我使用,默认知道 C-j 是什么
Paredit
然而 C-u C-x C-e 做你想要的
*scratch*
和*slime-scratch*
。
It is bound to C-x C-e.
(eval-last-sexp EVAL-LAST-SEXP-ARG-INTERNAL)
Evaluate sexp before point; print value in minibuffer.
Interactively, with prefix argument, print output into current buffer.
Truncates long output according to the value of the variables
`eval-expression-print-length' and `eval-expression-print-level'.
(slime-eval-last-expression
缓冲区中的*slime-scratch*
答案 1 :(得分:1)
将此函数绑定到C-j会执行我正在寻找的行为:
(defun slime-eval-print-last-sexp ()
(interactive)
(newline)
(insert (cadr (slime-eval `(swank:eval-and-grab-output ,(slime-last-expression)))))
(newline))