*使用SLIME的scratch *缓冲区

时间:2012-07-05 01:58:45

标签: emacs lisp slime

我意识到SLIME是高级Lisp交互模式,但我想知道是否有一个“Lisp Interaction”缓冲区可以使用Common Lisp,就像* scratch *缓冲区可以与Emacs Lisp一起使用。 I.E.点击表格末尾的C-j会将该表格的结果插入当前缓冲区。

我问,因为我发现根据需要编辑输出比使用repl更容易。

2 个答案:

答案 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))