목록SLIME (7)
Dharma
저번 포스트 에서 Emacs 버젼을 24 로 업그레이드 한 후에 가장 큰 문제가 생겼습니다. Clojure 와 Common Lisp 개발환경이 동시에 안되는 문제가 발생했습니다. 몇번의 노력끝에 결국 Emacs 에서도 편하게 설치하는 쪽을 받아들이게 됐습니다. 기존에는 "이맥스 유저는 이래야 해!!" 라는 말도 안되는 자존심으로 수동으로 이거 저거 설치하는 쪽이였으나 이제 대세를 받아들이기로 했습니다. 클로져 (Clojure) 개발 환경 설정 예전 포스트 에서 쉽게 설치하는 방법을 소개한 적이 있었습니다. 그러나 swank-js 를 만들었던 당사자가 더 훌륭한 솔루션이 나왔다고 GG 를 쳐버렸습니다. -0- (당신을 믿고 포스팅을 했었다고!!! ㅜ.ㅜ ) nRepl 을 설치해줍니다. nrepl.el is..
Slime 이 무엇인지 Emacs 를 사용하시는 분들은 대충 아시리라 봅니다. REPL (Read Eval Print Loop)형태를 지원하는 언어에 대한 최적의 개발 환경이라고 보시면 됩니다. (물론 부정하는 분들도 많습니다) 저는 Common Lisp , Clojure 등을 Slime 을 이용해서 개발환경을 구축해 두었습니다. 이번에 프로젝트를 Node.js 로 진행하게 되어서 (Node.js 또한 REPL 을 지원합니다) Emacs + Slime 으로 환경을 구축할려고 알아보았습니다. 역시나 괜찮은 솔루션이 하나 등장하더군요. https://github.com/swank-js/swank-js Slime 은 Swank 라는 방식으로 각기 언어별로 소켓 접속이 가능한 방식으로 서버를 띄우면 Emacs ..
저번 포스트 에서 Clojure 와 Slime 을 연결해봤습니다. 그런데 REPL 에서 색이 안 이쁘더군요. 간단하게 색을 집어넣는 방법을 설명하겠습니다. .emacs 파일을 열어서 맨 아래쪽에 다음 과 같은 내용을 추가해 줍니다. (add-hook 'slime-repl-mode-hook (defun clojure-mode-slime-font-lock () (let (font-lock-mode) (clojure-mode-font-lock-setup)))) 끝!!
드디어 올것이 오고 말았군요. clojure 를 emacs 에서 slime 과 연결시키는 방법에 관한 것입니다. 물론 제가 쓰고 있는 osx snow leopard 에서 말이죠. 기존에 제가 쓰고 있던 환경은 emacs 에 slime 을 clbuild 버젼으로 연결시켜서 쓰고 있었습니다. 나름 편해서 애용하고 있었는데 이번에 clojure 를 연결 시켜야 해서 살짝 골치가 아프군요. 참고로 clbuild 를 쓰게 되면 slime 관련 설정 부분입니다. (.emacs 에 있음) (setq load-path (cons "/Users/crazia/work/clbuild/source/slime" load-path)) (setq load-path (cons "/Users/crazia/work/clbuild/sou..
드디어 저를 괴롭히던 가장 큰 문제가 해결 됐습니다. -0- Weblocks 를 쓰면서 대체 이걸 어떻게 하는 걸까? 하고 고민 했던 것이 /pub/images 말고 딴곳에 있는 image 파일 access 하는 방법이였습니다. 예를 들면 /pub/images/photos/bassist.jpg 를 화면에 출력하고 싶을 때, 대체 어떻게 하는지 모르는 것이였습니다. 워낙 쉬운거라 Example 이나 Tutorial 에 없는 것이겠지요? 개발되어지고 있는 소스 자체를 뒤져서 알아냈습니다. 핵심은 make-webapp-public-file-uri 라는 이름의 함수였습니다. (defun make-photo-page () (make-widget (lambda () (with-html (:p :id "index" ..
역시나 친절하게 상단 헬프에서 알려주는 것을 한참 찾았네요. -ㅅ- 이런건 구글신이 잘 안 알려주는것 같습니다. 'C-q' 입력하시고 ( 입력하시면 ( )
clbuild 로 lisp 과 slime 을 연동해서 사용하고 있습니다. 어차피 프로젝트 로딩할때 slime 을 거치지 않는 적이 없으니 개발시 편하게 하기 위해서 slime 로더 부분에 프로젝트 설정 부분을 추가 하려고 합니다. (defun project-setup () (mapcar #'(lambda (path) (push path asdf:*central-registry*)) '( #p"/home/bc/proj/weblocks-dev-aggieben/" #p"/home/bc/proj/simple-blog/" ))) (project-setup) 위와 같은 내용을 clbuild 가 설치되어 있는 디렉토리에 있는 .swank-loader.lisp 에 추가해 줍니다. 다음부터 slime 로딩시 자동으로 프..