준비물
1. 로컬머신
Emacs + Slime
2. 원격머신
SSH , 리습구현
작업
1. 일단 Slime은 로컬 원격 버전을 맞추어서 모두 다운 받는다.
2. 원격 머신에서 다운 받은 Slime의 swank.asd를 적당한 위치(여기에서는 ~/systems/ )에 복사하거나 링크를 만들어 놓는다.
3. 원격머신에서 .sbclrc( SBCL을 쓴다고 가정)을 생성하고 내용을 다음과 같이 만든다.
8. 추가로 로컬에서 lisp사용시 항상 해당 서버쪽에 맞게끔 이름을 넣고 싶다면 다음과 같은 내용을 .emacs에 넣는다.

1. 로컬머신
Emacs + Slime
2. 원격머신
SSH , 리습구현
작업
1. 일단 Slime은 로컬 원격 버전을 맞추어서 모두 다운 받는다.
2. 원격 머신에서 다운 받은 Slime의 swank.asd를 적당한 위치(여기에서는 ~/systems/ )에 복사하거나 링크를 만들어 놓는다.
3. 원격머신에서 .sbclrc( SBCL을 쓴다고 가정)을 생성하고 내용을 다음과 같이 만든다.
(require :asdf)4. 이제 SBCL에서 다음과 같이 실행시킨다.
(push "/path/to/~systems/" asdf:*central-registry*)
(require :swank)5. ssh를 이용 리모트 머신과 로컬 머신의 포트를 서로 맞춘다.
(swank:create-server :port 4005)
ssh -L4005:127.0.0.1:4005 username@host6. 클라이언트 머신에서 emacs의 .emacs파일에서 slime을 로딩한다.
(require 'slime)7. 이제 M-x slime-connect를 해서 서버는 127.0.0.1 로하고 포트를 4005로 맞추면 이제부터 리모트 머신의 swank를 통해 lisp evaluation을 할 수 있다.
8. 추가로 로컬에서 lisp사용시 항상 해당 서버쪽에 맞게끔 이름을 넣고 싶다면 다음과 같은 내용을 .emacs에 넣는다.
;; remote <-> local translate
(setf slime-translate-to-lisp-filename-function
(lambda (file-name)
(subseq file-name (length "/ssh:siabard@192.168.10.42:")))
slime-translate-from-lisp-filename-function
(lambda (file-name)
(concat "/ssh:siabard@192.168.10.42:" file-name)))
