이맥스가 실행 중이며 CVS에서 SLIME을 체크 아웃하고 설치했다고 가정 해 봅시다. 이것은 모든 Linux 배포판에서 쉽게 이루어져야합니다. apt-get install emacs slime
나를 위해 그것을한다. (당신은 또한 SBCL을 설치해야합니다. 가장 일반적인 Common Lisp 구현입니다.)
슬리 임은 더 이상 사용하지 않으므로 구성이 필요합니다. 이맥스 구성은 ~/.emacs
파일에서 수행됩니다. 해당 파일 (C-x C-f ~/.emacs)
.나는 케이크의 다양한로드 같은 것을, 있습니다
당신이 점액이 "사이트 디렉토리"에 설치되어 있지 않은 경우
(eval-after-load "slime"
'(progn
(setq slime-lisp-implementations
'((sbcl ("/usr/bin/sbcl"))
(ecl ("/usr/bin/ecl"))
(clisp ("/usr/bin/clisp"))))
(slime-setup '(
slime-asdf
slime-autodoc
slime-editing-commands
slime-fancy-inspector
slime-fontifying-fu
slime-fuzzy
slime-indentation
slime-mdot-fu
slime-package-fu
slime-references
slime-repl
slime-sbcl-exts
slime-scratch
slime-xref-browser
))
(slime-autodoc-mode)
(setq slime-complete-symbol*-fancy t)
(setq slime-complete-symbol-function
'slime-fuzzy-complete-symbol)))
(require 'slime)
, 당신은 도 그 라인 전에를 추가 할 수 있습니다 :
를
(add-to-list 'load-path "~/elisp/slime/")
(add-to-list 'load-path "~/elisp/slime/contrib")
는 (물론 올바른 위치에 이러한 경로를 변경할 수 있습니다.)
중요한 부분이는 REPL 포함 옵션 모듈의 다양한로드, 점액-설정입니다. (나는 또한 멋진 들여 쓰기, 및 autodoc 필수적인 고려합니다.)
어쨌든, 당신은 M-x eval-buffer
으로 실행 이맥스 에이로드, 각 sexp 내부의 점을 넣고 C-M-x
를 눌러 수 있습니다. (당신은 또한 sexp의 끝을 가리키고 C-x C-e
를 누를 수 있습니다.이 이맥스, 에서 이맥스 리스프를 평가하기위한 다양한 방법이 있지만 그 CL 학습에 정말 관련이 없습니다.)
을이 시점에서, 당신이해야 M-x slime
을 입력하고 REPL로 가져올 수 있습니다. 그런 일이 일어나기 전에, 당신의 리스프가로드되고, 슬릭은 이 슬랭크 (SLIME의 CL면)를 컴파일하도록 말하면, 이 발생합니다. 이것은 한 번만 발생하지만, 다음 번 SLIME은 을 더 빠르게 시작할 것입니다.
REPL에서 Common Lisp 명령을 입력하고 결과를 볼 수 있습니다. TAB을 누르면 무언가를 완료하면 완료 가능성 창이 생깁니다. 이것은 똑똑한 완료이므로 "d-b"와 같은 을 입력하면 "destructuring-bind"가 포함 된 목록이 나타납니다. 매우 도움이됩니다. M- /는 이미 Emacs 내부에 입력 한 심볼 을 완성합니다. 또 다른 좋은 시간은 세이버. (이것은 이맥스 어디서나 사용할 수 있으며, "동적 인 약어 확장"이라고 부릅니다.)
이전에 REPL이 지루했기 때문에 실제 파일을 열어 보겠습니다. C-x C-f test.lisp
을 누릅니다. 당연히 이것은 버퍼 편집 test.lisp을 엽니 다. 처음에는 파일 (C-x C-s
)을 저장할 때 만들어집니다. 이 Lisp 파일은 SLIME을 인식하고 있으므로 입력하는 은 실행중인 Lisp에서 쉽게 확인할 수 있습니다. 탭 완성, 클래스 검사, 대화식 테스트 등이 모두 가능합니다.
예를 들어 (+ 1 2)
과 같은 것을 입력하고 C-x C-e
을 누릅니다. 은 실행중인 Lisp이 평가 한 결과를 윈도우의 하단 에 표시합니다. 이렇게하면 파일에 을 입력 할 때 개별 표현식을 테스트 할 수 있습니다.
다음 단계는 아마도 전체 함수를 작성하는 것입니다 : 당신은 다양한 방법으로 실행 리스프에이 기능을로드 할 수 있습니다
(defun my-1+ (x)
(+ x 1))
을; 나는 보통 C-M-x
을 사용합니다.이제 REPL 버퍼 (C-x b *slime-repl sbcl*
또는 유사)로 다시 변경하고 (my-1+ 42)
을 입력하고 결과 43
을 인쇄하십시오.
실행중인 Lisp에 함수를 가져 오는 또 다른 방법은 을 컴파일하고 C-c C-k
으로 전체 파일을로드하는 것입니다.
어쨌든, 그것은 SLIME과 Emacs를 사용하는 기초입니다. 분명히 더 많은 기능을 사용할 수있는 것은 이지만, 은 SLIME을 사용한 Lisp 프로그래밍의 맛을 제공합니다. 내가 언급 할 마지막 한가지는 이다. 이맥스는 주로 스스로 문서화하고 있기 때문에 더 배우고 싶다면 이멕스 가 도움이된다. Lisp 버퍼에있는 동안 을 입력하면 에 Lisp 편집 중에 사용할 수있는 전체 명령 목록을 얻을 수 있습니다. 각 기능에 대한 추가 정보를 얻으려면 링크 을 클릭하십시오.
재미있게 보내세요!
여기에 반복되지 않습니다 이맥스 명령에 대한 추가 좋은 팁을 가지고 있지만, 그들은 FreeBSD를 설치하지 않았고, 내가했다 내 플랫폼에서 실행하는 데 어려움이 있습니다. 나는 더 많은 경험을 얻을 때 "부드러운 소개"를 마친 후에 다시 시도 할 수 있기를 바랍니다. –