문제

지금은 표현을 씁니다 *scratch* 완충하고 평가하여 테스트하십시오 CX CE. Slime 또는 IRB와 같은 대화 형 통역사가 EMACS LISP 표현식을 테스트 할 수있는 것에 감사드립니다.

도움이 되었습니까?

해결책

열등한 EMACS-LISP 모드에서 LISP 표현식을 쉽게 평가할 수 있습니다.

M-x ielm

이 기능에 대한 자세한 내용은 "LISP 상호 작용"에 대한 EMACS 매뉴얼 섹션

다른 팁

ESHELL 대화식 ELISP 통역사의 또 다른 옵션입니다.

M-x eshell

Bash (또는 Windows에서 CMD.exe)와 같은 명령 쉘 일뿐 만 아니라 ELISP 코드를 대화식으로 쓰고 실행할 수도 있습니다.

~ $ ls
foo.txt
bar.txt
~ $ (+ 1 1)
2

가장 좋은 방법은 *scratch* 완충기. 먼저 디버거를 켜면 대체처럼 만들 수 있습니다.

M-x set-variable debug-on-error t

그런 다음 사용하십시오 C-j 대신에 C-x C-e, 이는 표현식 후 라인의 버퍼에 식을 평가 한 결과를 삽입합니다. 지휘 기록과 같은 것 대신 * * * 그리고 당신은 그냥 주위를 움직입니다 *scratch* 버퍼 및 편집.

당신이 같은 것을 원한다면 * * * 평소 대체와 마찬가지로 일하려면 시도하십시오. ielm.

M-x ielm

에서 *scratch* 버퍼, 포인트 전 표현을 평가하려면 CJ를 입력하십시오.

글쎄, 당신이 EMAC에 대한 문자 그대로의 대답에 관심이 있다면, EMAC의 배치 모드를 사용하여 하나를 작성할 수 있습니다.

(require 'cl)

(defun read-expression ()
  (condition-case
      err
      (read-string "> ")
    (error
     (message "Error reading '%s'" form)
     (message (format "%s" err)))))

(defun read-expression-from-string (str)
  (condition-case
      err
      (read-from-string str)
    (error
     (message "Error parsing '%s'" str)
     (message (format "%s" err))
     nil)))

(defun repl ()
  (loop for expr = (read-string "> ") then (read-expression)
        do
        (let ((form (car (read-expression-from-string expr))))
          (condition-case
              err
              (message " => %s" (eval form))
            (error
             (message "Error evaluating '%s'" form)
             (message (format "%s" err)))))))

(repl)

당신은 명령 줄에서 이것을 호출 할 수 있습니다. 또는 원하는대로 쉘을 실행하는 EMACS 버퍼 내에서

kburton@hypothesis:~/projects/elisp$ emacs -batch -l test.el
Loading 00debian-vars...
> (defvar x '(lambda (y) (* y 100)))
 => x
> (funcall x 0.25)
 => 25.0
> 
kburton@hypothesis:~/projects/elisp$

하나의 ELISP 표현식 만 실행하려면 m- : 바로 가기를 사용하고 미니 버퍼로 표현식을 입력 할 수 있습니다. 다른 경우에는 사용할 수 있습니다 할퀴다 완충기

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top