Clojure を emacs で
2010/5/6追記:ここの情報は古いので Ubuntu 10.04 での Clojure + Emacs + Leiningen の環境構築 を参照した方が良いと思います。
環境 Mac Snow leopard Carbon emacs 22.3.1
まずここをそのままやれば emacsから使う事ができた。
http://riddell.us/tutorial/clojure/clojure.html
http://riddell.us/tutorial/slime_swank/slime_swank.html
C-x C-e で評価もできる。
プログラミングClojureのサンプルを試す場合は以下のように ~/.emacs.el にCLASSPATHを追加する。
2010/2/16追記:これもやると便利 jarファイルをまとめてクラスパスに追加する。appendを忘れずに。
2010/3/26追記:Leiningenを使ったプロジェクトならクラスパスとか全部面倒見てくれる Leiningen + Clojure + Emacs
;; clojure-mode (add-to-list 'load-path "~/opt/clojure-mode") (require 'clojure-mode) ;; swank-clojure (add-to-list 'load-path "~/opt/swank-clojure/src/emacs") (setq swank-clojure-jar-path "~/code/shcloj-code/lib/clojure.jar" swank-clojure-extra-classpaths (list "~/opt/swank-clojure/src/main/clojure" "~/code/shcloj-code" "~/code/shcloj-code/lib/commons-io-1.4.jar" "~/code/shcloj-code/lib/commons-fileupload-1.2.1.jar" "~/code/shcloj-code/lib/commons-codec-1.3.jar" "~/code/shcloj-code/lib/jline-0.9.94.jar" "~/code/shcloj-code/lib/clojure.jar" "~/code/shcloj-code/lib/clojure-contrib.jar" "~/code/shcloj-code/lib/ant.jar" "~/code/shcloj-code/lib/ant-launcher.jar" "~/code/shcloj-code/lib/compojure.jar" "~/code/shcloj-code/lib/hsqldb.jar" "~/code/shcloj-code/lib/jetty-6.1.14.jar" "~/code/shcloj-code/lib/jetty-util-7.1.14.jar" "~/code/shcloj-code/lib/servlet-api-2.5-6.1.14.jar" "~/code/shcloj-code/classes")) (add-to-list 'load-path "~/opt/swank-clojure") ;(setq swank-clojure-binary "/Users/fatrow/code/shcloj-code/bin/repl.sh.bak") (require 'swank-clojure-autoload) ;; slime (eval-after-load "slime" '(progn (slime-setup '(slime-repl)))) (add-to-list 'load-path "~/opt/slime") (require 'slime) (slime-setup)
または プログラミングClojure のサンプルにある repl.sh を編集して
swank-clojure を追加し、かつ絶対パスの記述にしておく。
% cp -p repl.sh repl.emacs.sh
repl.emacs.sh
java -cp .:\ /Users/fatrow/opt/swank-clojure/src/main/clojure:\ /Users/fatrow/code/shcloj-code:\ /Users/fatrow/code/shcloj-code/lib/commons-io-1.4.jar:\ /Users/fatrow/code/shcloj-code/lib/commons-fileupload-1.2.1.jar:\ /Users/fatrow/code/shcloj-code/lib/commons-codec-1.3.jar:\ /Users/fatrow/code/shcloj-code/lib/jline-0.9.94.jar:\ /Users/fatrow/code/shcloj-code/lib/clojure.jar:\ /Users/fatrow/code/shcloj-code/lib/clojure-contrib.jar:\ /Users/fatrow/code/shcloj-code/lib/ant.jar:\ /Users/fatrow/code/shcloj-code/lib/ant-launcher.jar:\ /Users/fatrow/code/shcloj-code/lib/compojure.jar:\ /Users/fatrow/code/shcloj-code/lib/hsqldb.jar:\ /Users/fatrow/code/shcloj-code/lib/jetty-6.1.14.jar:\ /Users/fatrow/code/shcloj-code/lib/jetty-util-7.1.14.jar:\ /Users/fatrow/code/shcloj-code/lib/servlet-api-2.5-6.1.14.jar:\ /Users/fatrow/code/shcloj-code/classes \ jline.ConsoleRunner clojure.lang.Repl
そして ~/.emacs.el を次のように変更する
;; clojure-mode (add-to-list 'load-path "~/opt/clojure-mode") (require 'clojure-mode) ;; swank-clojure (add-to-list 'load-path "~/opt/swank-clojure/src/emacs") (add-to-list 'load-path "~/opt/swank-clojure") (setq swank-clojure-binary "/Users/fatrow/code/shcloj-code/bin/repl.emacs.sh") (require 'swank-clojure-autoload) ;; slime (eval-after-load "slime" '(progn (slime-setup '(slime-repl)))) (add-to-list 'load-path "~/opt/slime") (require 'slime) (slime-setup)
どちらの方法でもできた。
ただ、C-x C-e の評価結果が ミニバッファに出てすぐ消えてしまうので
REPL 側に出て欲しいんだけど、そのやり方は分からない。
参考
http://www.lispcast.com/drupal/Clojure-Setup.html ;セットアップの動画がある
http://stackoverflow.com/questions/257333/clojure-editor-ide-recommendations-on-os-x