2007년 1월 11일 목요일

EMACS + SLIME + CLISP on Win32

얼마 전에 EmacsW32에 관한 글을 올렸는데, 그 때 잠시 언급했던 SLIME mode를 사용하는 방법에 대해 조금 더 자세히 살펴보려고 합니다.

1. 준비물:
  • EmacsW32+Emacs:
    보통 latest EmacsW32+Emacs patched Emacs patched icon을 받으시면 됩니다.
  • SLIME mode:
    stable release를 받으시면 됩니다. (이 글을 작성하는 시점에서 2.0이 최신 버전이네요.) 취향에 따라서 CVS 저장소로부터 직접 받으셔도 됩니다.
  • CLISP (또는 SLIME이 지원하는 다른 Lisp 구현체):
    보통 clisp-x.xx-win32-mingw-without-readline.zip 파일을 받으시면 됩니다. CLISP 대신 다른 상용 Lisp 구현체나 SBCL도 많이 사용하신다고 알고 있는데, 이 글에서는 제가 애용하는 CLISP만을 예로 들겠습니다. - 사실 SLIME 설정 시에 큰 차이는 없습니다. -

2. CLISP 설치
매우 간단합니다. download한 파일을 적절한 폴더에 압축 풀어주면 끝입니다. 바탕화면에 단축아이콘을 생성해주는 install.bat가 별도로 제공이 되지만, 경로명에 한글이 들어가는 경우에는 parse error를 내더군요. 그냥 'clisp.exe' 파일에 대해서 직접 단축아이콘 하나 만드시면 됩니다. 그리고, 어차피 Emacs 내에서 SLIME mode를 통해 실행할 것이기 때문에 단축아이콘을 쓸 일이 거의 없을 겁니다. 이 글에서는 'C:\CLISP' 폴더에 압축을 풀었다고 가정합니다.

3. EmacsW32+Emacs 설치
이것 역시 설치가 매우 간단합니다. 설치 패키지 형태로 되어 있기 때문에 실행한 다음 next 버튼만 누르다보면 설치가 완료됩니다. 설치 중간에 설치 폴더를 변경하지 않았다면 'C:\Program Files\Emacs' 폴더에 설치가 되었을 겁니다.

4. SLIME mode 설치 및 설정
Emacs 설치 폴더 아래에 만들어진 'site-lisp' 폴더에 'slime-2.0.zip' 파일의 압축을 풉니다. 그러면 'slime-2.0' 폴더가 만들어집니다. 이것으로 설치는 끝입니다. 이제 SLIME mode가 Emacs에서 load 될 수 있도록 '.emacs' 설정 파일에 SLIME 관련 내용을 추가해주기만 하면 됩니다. '.emacs' 파일은 'C:\Documents and Settings\사용자 계정\Application Data' 폴더에 있습니다. 없다면 새로 하나 만들어 주세요.

다음은 제가 사용하고 있는 SLIME 설정 내용입니다.
전체 파일은 여기서 받으세요.
;; SLIME 설치된 폴더
(add-to-list 'load-path
"C:/Program Files/Emacs/site-lisp/slime-2.0/")
(require 'slime)
;; UTF-8 인코딩을 기본으로 사용 --> 한글 symbol 사용을 위해
(setq slime-net-coding-system 'utf-8-unix)
;; Lisp 실행 파일
(setq inferior-lisp-program "C:/CLISP/clisp.exe")
(setq common-lisp-hyperspec-root
"http://www.lispworks.com/documentation/HyperSpec/")
;; FireFox를 사용한다면 아래 주석 해제
;(setq browse-url-generic-program
; "C:/Program Files/Mozilla Firefox/firefox.exe")
;(setq browse-url-browser-function (quote browse-url-generic))
(add-hook 'inferior-lisp-mode-hook
(lambda () (inferior-slime-mode t)))
(add-hook 'lisp-mode-hook
(lambda ()
(set (make-local-variable
'lisp-indent-function)
'common-lisp-indent-function)))
(slime-setup :autodoc t)

5. 실행해보기
자, 이제 실행을 해봅시다. Emacs를 실행한 다음 아래과 같이 입력합니다.

M-x slime

'M-x'는 'Alt'키를 누르면서 'x' 키를 누르라는 의미입니다. 그러면 창 가장 아래쪽 미니 버퍼에 커서가 깜빡이는데, 여기서 'slime'이라고 입력한 다음 enter 키를 누르면 됩니다. 이제 편집창에 새로운 버퍼들이 만들어지면서 뭔가 글이 막 올라가다가 마지막에 CLISP prompt가 뜨게 됩니다.

이 다음부터는 여러분의 몫입니다. ;-)

6. 재미있는 팁 한 가지를 알려드리면...
위 SLIME 설정 내용 중에 UTF-8 사용이 가능하도록 추가해준 부분이 있는데, 이렇게 UTF-8 인코딩을 사용하게 되면 한글 symbol을 사용할 수 있게 됩니다. 물론 사용하는 Lisp 구현체가 UTF-8을 지원해주어야 가능합니다. CLISP은 UTF-8을 지원하고 있습니다.

댓글 3개:

  1. 리습에서 한글 심볼이 되는지 몰랐는데요. ELisp Interactive 모드에서 테스트 해 보니 되는군요.

    답글삭제
  2. 아.. 저도 ELisp에서 테스트 해볼 생각은 못했습니다. ^^;
    테스트 해보니까 정말 한글 심볼이 잘 되는군요. 감사합니다. ^^

    답글삭제
  3. slime에서 한글 사용에 좋은 참고가 되었습니다.
    감사합니다.

    답글삭제