지금은 *scratch*
버퍼에 표현식을 작성하고 C-xC-e으로 평가하여 테스트합니다. SLIM이나 irb와 같은 인터프리터 인터프리터가 있으면 정말 고맙게 생각합니다. Emacs Lisp 표현식을 테스트 할 수 있습니다.Emacs에서 대화식 elisp 인터프리터를 호출하는 방법은 무엇입니까?
답변
그것은 열등의 리스프 식을 평가하기 위해 쉽게 이맥스 - 리스프 모드 :
이M-x ielm
당신은 당신이 사용할 수있는 하나의 elisp 식을 실행하려면 Emacs manual section on "Lisp Interaction"
*scratch*
버퍼에서 C-j를 입력하여 점 이전의 표현식을 평가하면됩니다. 당신이 이맥스 리터럴 REPL에 정말 관심이 있다면
글쎄, 이맥스의 -batch 모드를 사용하여 하나를 작성할 수 있습니다 :
(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)
당신은 명령 줄에서이 전화하거나 할 수 있습니다, 당신이 쉘을 실행 이맥스 버퍼 내에서 원하는 것 같이
[email protected]:~/projects/elisp$ emacs -batch -l test.el
Loading 00debian-vars...
> (defvar x '(lambda (y) (* y 100)))
=> x
> (funcall x 0.25)
=> 25.0
>
[email protected]:~/projects/elisp$
이것은 일괄 처리 모드에서 또 다른 이맥스를 실행하는 셸을 실행하는 것보다 복잡해 보입니다. 일괄 처리 모드에서는 REPL을 실행하며, 모두 주요 이맥스 런타임 내부에 있습니다. 어쨌든, 그것은 내 문제를 해결하므로 도움을 주셔서 감사합니다! –
이 REPL 구현은 다중 행 입력을 처리하지 않습니다. 당신이 한 줄로 표현을 종료하지 않는 경우가 있습니다 : 그 문제를 해결하는 쉬운 방법이 있나요 (파일의 마지막 repl.el) 구문 분석 오류 '무엇을 ('내가 정확히 무엇 –
가장 좋은 방법은 *scratch*
버퍼입니다. 당신은 더 먼저 디버거 투입하여 REPL처럼 만들 수 있습니다
M-x set-variable debug-on-error t
그런 식 후 라인의 버퍼에 식의 계산 결과를 삽입 할, C-x C-e
대신 C-j
를 사용합니다. 명령 내역, * * *
등 대신에 *scratch*
버퍼를 이동하고 편집하면됩니다.
* * *
과 같은 기능을 원한다면 보통 REPL과 비슷하게 사용하십시오. ielm
을 사용해보십시오.
M-x ielm
에서이 기능에 대한 자세한 내용을보실 수 있습니다 M- : 단축키로 미니 버퍼에 표현식을 입력하십시오. 다른 경우에는 스크래치 버퍼
Eshell을 대화 형 Elisp 인터프리터의 또 다른 옵션으로 사용할 수 있습니다.
M-x eshell
뿐만 아니라이 (만약 윈도우 또는 cmd.exe를) 배쉬 같은 명령 쉘 그것입니다하지만 당신은 또한 대화 형으로 작성하고 Elisp 코드를 실행할 수 있습니다.
~ $ ls
foo.txt
bar.txt
~ $ (+ 1 1)
2
오케이, 그건 그냥 ... 매혹적인 ... 혼합 능력 ... 나는 확실히 이것으로 더 놀아야 할 것입니다. 질문에 대한 간접적 인 대답이지만, 저는 이것을 기쁘게 생각합니다. 대답은 여기에있다! '$ echo (버퍼 이름) | sed -e 's/\ */X/g'''는'XeshellX' 등을줍니다. – lindes
- 1. 간단한 빌드 도구 프로젝트에서 스칼라 인터프리터를 호출하는 방법은 무엇입니까?
- 2. 아파치가 적절한 핸들러/인터프리터를 호출/호출하는 방법은 무엇입니까?
- 3. (elisp)
- 4. Elisp
- 5. elisp/emacs의 rpc 서버
- 6. 파이썬 인터프리터를 '안전한'상태로 재설정하는 방법은 무엇입니까?
- 7. Qt 앱에 파이썬 인터프리터를 삽입하는 방법은 무엇입니까?
- 8. elisp 기능
- 9. 보기에서보기를 호출하는 방법은 무엇입니까?
- 10. OnUtteranceCompleted를 호출하는 방법은 무엇입니까?
- 11. emacs에서 텍스트 영역을 삭제하는 방법은 무엇입니까?
- 12. emacs에서 이름으로 erlang 함수를 탐색하는 방법은 무엇입니까?
- 13. emacs에서 vc-git를 비활성화하는 방법은 무엇입니까?
- 14. Emacs에서 버퍼 코딩 시스템을 변경하는 방법은 무엇입니까?
- 15. emacs에서 사용자 정의 글꼴을 설정하는 방법은 무엇입니까?
- 16. eshell을 통해 Emacs에서 파일을 여는 방법은 무엇입니까?
- 17. gnuplot : "대화식 모드"의 x11 터미널에서 쉘에서 gnuplot을 호출하는 중
- 18. 다른 emacs 명령을 호출하는 emacs 명령을 정의하십시오 (대화식 항목 유지)
- 19. Emacs Lisp : REPL을 사용하는 대화식 버퍼 방법?
- 20. 대화식 테이블
- 21. PyScripter 파이썬 인터프리터를 디버그 모드로 사용하는 방법은 무엇입니까?
- 22. Emacs에서 Clojure 파일 새로 고침
- 23. 어셈블리를 gdb에서 호출하는 방법은 무엇입니까?
- 24. Thread를 반복적으로 호출하는 방법은 무엇입니까?
- 25. inode가있는 파일을 호출하는 방법은 무엇입니까?
- 26. ApplicationController에서 메소드를 호출하는 방법은 무엇입니까?
- 27. jquery에서 함수를 호출하는 방법은 무엇입니까?
- 28. render : index를 호출하는 방법은 무엇입니까?
- 29. NSThread를 반복적으로 호출하는 방법은 무엇입니까?
- 30. 함수를 호출하는 다른 방법은 무엇입니까?
을? 찾고, 큰 감사합니다! –