Slime + MIT Scheme + paredit + AC설정(+.emacs 백업)
1. Ubuntu Software Center에서 MIT/GNU Scheme을 설치(최신버전이 올라와 있다.)
2. Slime을 다운로드 한다.(/usr/share/에 설치함. 이 과정에서 cvs패키지를 설치하였다.)
3. slime directory(내 경우엔 /usr/share/slime)의 contrib 폴더에 들어가서 swank-mit-scheme.scm을 파일을 열어 내용을 살펴본다. Installation이라고 주석처리되어있는 부분을 따라한다.
4. slime을 설정할 때 (slime-setup '(slime-repl))를 하면 coding system이 이상하다고 안되는데, 이 때는 swank-mit-scheme.scm파일에
(define :coding-system "utf-8-unix")을 추가하고
(swank:connection-info _)를 찾아 :lisp-implementation 위에
:encoding (:coding-systems ("utf-8-unix"))를 추가하면 잘 작동한다.
5. Active Process타령을 없애고 싶으면 아래의 내용을 추가한다.
(defadvice save-buffers-kill-emacs (around no-query-kill-emacs activate)
"Prevent annoying \"Active processes exist\" query when you quit Emacs."
(flet ((process-list ())) ad-do-it))
6. slime version check를 없애고 싶으면 slime.el파일을 연 뒤, (defun slime-check-version (version conn)을 찾고 아래의 or프로시져의 첫 predicate로 t를 넣어주면 된다. 그러니까 아래처럼 수정하면 된다.
7. repl에서 lisp-indent-function이 scheme이 아니므로 아래를 .emacs에 추가
(add-hook 'slime-repl-mode-hook
(defun slime-repl-indent-hook ()
(set (make-local-variable 'lisp-indent-function)
'scheme-indent-function)))
8. REPL버퍼의 Prompt내용을 바꾸고 싶으면 [slime_directory]/contrib/slime-repl.el 을 연뒤 (prompt (format "%s> " 를 찾아서 그 뒤의 괄호내용 (slime-lisp-package-prompt-string)를 원하는 문자열로 치환하면된다( e.x. "SCHEME" ) 그럼 mit-scheme swank를 쓸때 SCHEME>의 꼴로 나오게된다.
9. "http://cx4a.org/software/auto-complete/manual.html#Installation_Script"를 참고하여 AutoComplete를 설치하고
(add-to-list 'load-path "~/.emacs.d/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
(ac-config-default)
(define-key slime-mode-map (kbd "TAB") 'slime-indent-and-complete-symbol)
를 .emacs에 추가.
그렇게 완성된 내 .emacs 내용