SLIME が優れた Lisp 対話モードであることは認識していますが、*scratch* バッファーが Emacs Lisp で動作するように、Common Lisp で動作する "Lisp Interaction" バッファーがあるかどうか疑問に思っています。IE がフォームの最後で Cj を押すと、そのフォームの結果が現在のバッファに挿入されます。
必要に応じて出力を編集する方が、repl を使用するよりも簡単だと思うので、質問します。
私はPareditを使用しているため、デフォルトで
M-xslime-scratch
RET何が行われるかはわかりません。C-j
ただし、 とC-uC-xC-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*
バッファにあります)
この関数をCjにバインドすると、私が探している動作が実行されます。
(defun slime-eval-print-last-sexp ()
(interactive)
(newline)
(insert (cadr (slime-eval `(swank:eval-and-grab-output ,(slime-last-expression)))))
(newline))