먼저 colinux 쪽에서 swank 서버를 돌리자. 아직 수작업으로만 해봤다. .sbclrc 에 넣기는 좀 글코... 흠... 적절한 방법을 찾아보자.
./clbuild lisp
(require 'swank)
(swank:create-server)
(require 'swank)
(swank:create-server)
요기까지 진행을 했다면 colinux 의 4005 포트에 슬라임 연결이 가능한 상태. 실사용시엔 :dont-close 등을 써야 할텐데 아직 써보진 않았다. 그런데 slime 은 로컬에서의 접근만 받도록 바인딩되어있으니 터널링이 필요하다. win32 쪽에서 콘솔을 열어서 plink 를 이용해서 이 colinux 의 4005 포트를 win32 쪽의 4005 로 터널링을 해주자.
plink -L 4005:localhost:4005 yoonkn@localhost
이제 win32 쪽의 4005 포트로 접근을 하면 colinux 쪽의 4005 포트로 접속되게 된다. 따라서 emacs 를 띄워서 slime-connect 로 localhost 로 붙으면 결국 colinux 쪽 lisp image 에 붙게 된다. 우왕ㅋ굳ㅋ. 그러나 문제점이 남아있는데 win32 쪽 emacs 의 파일경로와 colinux 쪽 lisp 의 파일경로가 같지 않다는점. 서로 다른 머신이니 당연하다. tramp-mode 를 써서 colinux 쪽으로 접근을 하자. 양쪽이 보는 path 가 아직도 서로 다르니 약간의 추가작업이 필요하다. 이문서를 참고하자. 현재 내 세팅은 아래와 같다. 지금 내 colinux 이미지의 호스트네임이 ubuntu 더라. 참고하자.
(pushnew (slime-create-filename-translator :machine-instance "ubuntu"
:remote-host "localhost"
:username "yoonkn")
slime-filename-translations)
:remote-host "localhost"
:username "yoonkn")
slime-filename-translations)
이제 모든 준비가 완료됐다. slime-connect 로 lisp image 에 연결하자. 로컬호스트로 터널링을 해놓았으니 localhost 의 4005 포트로 접근을 하면 colinux 쪽의 lisp image 쪽으로 연결된다.
M-x slime-connect
소스편집을 위해 win32 쪽에서 eshell 을 띄워서 tramp-mode 를 통해 colinux 장비의 파일/디렉토리에 접근하자. 굳이 eshell 을 띄울 필요는 없지만 eshell 을 통해 tramp 모드를 쓰는것은 내 스타일.
M-x eshell
cd /yoonkn@localhost:
cd /yoonkn@localhost:
이제 자연스럽게 쓰면된다. dired-mode 도 문제없고 C-c C-k 등으로 컴파일도 정상. M-. 로 소스브라우징도 오키. 그외 테스트를 해볼만한게 또 있을까??
----
좃스팟에 글을 쓰고 그대로 copy-paste 해봤다. 흠... 포매팅이 약간 깨지는 문제가 있긴 한데 뭐 이정도면 쓸만 한걸?
댓글 없음:
댓글 쓰기