2012-07-05 2 views
2

나는 SLIME이 우수한 Lisp 상호 작용 모드라는 것을 알고 있지만 Common Lisp와 함께 작동하는 "Lisp 상호 작용"버퍼가 있는지 궁금합니다. * scratch * 버퍼는 Emacs Lisp과 함께 작동합니다. I.E. 폼의 끝에서 C-j을 치면 해당 폼의 결과가 현재 버퍼에 삽입됩니다.* 스크래치 * 버퍼를 사용하여 SLIME

필자는 repl을 사용하는 것보다 필요한만큼 출력을 편집하는 것이 더 쉽다는 것을 알고 있기 때문에 물어 봅니다. CJ에이 기능을 바인딩

답변

1

내가 찾고 동작을 수행합니다

는 MX 있습니다
(defun slime-eval-print-last-sexp() 
    (interactive) 
    (newline) 
    (insert (cadr (slime-eval `(swank:eval-and-grab-output ,(slime-last-expression))))) 
    (newline)) 
+0

'점액 - 평가 - 마지막 expression' 이미 SLIME''에 존재 해, 그 동작은'평가 - 마지막 sexp'과 동일합니다. – Daimrod

+0

slime-eval-last-expression은 출력을 반환하지 않고 미니 버퍼로만 출력합니다. 나는 실제 평가 된 결과물을 얻는 방법을 찾아야했고 위의 것을 내놓았다. –

+0

이것은 slime-eval-print-last-expression과 함께 이미있는 것처럼 보이지만 그것을 찾지 못했고 최종 줄 바꿈을 인쇄하지 못했지만 꽤 가깝습니다. –

4

slime-scratchRET을 나는 은 기본적으로 CJ을 무엇을 알고하지 않습니다하지만 때문에 나는 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-scratch* 버퍼 slime-eval-last-expression있어)

+0

나는 slime-scratch와 같은 것을 찾으려고 노력하는 slime docs를 통해 찾아 보았지만 할 수 없었다. 꽤 분명하고 감사합니다. –