clojure+vimclojureのインストール

結構時間かかった。今日(正確には昨日)の夕方からずっといじってた。まとめるとそんな時間かかるようなものでもないんだけどね。clojureよりvimclojureで色々手間取った。ちなみにプログラミング Clojureのサンプルを動かすだけなら、サンプルコードの中にClojureの実行環境(REPL)が含まれてるので以下の設定をやる必要はなし。

clojureのインストール

ソースはgithubから落としてくる。masterでもいいんだけど、clojure-contribの方がmasterだとうまくbuildできなかったので1.1.0を使うことにした。

$ git clone git://github.com/richhickey/clojure.git
$ cd clojure
$ git co -b 1.1.0 1.1.0
$ ant

clojure-contribのインストール

プログラミング Clojureではcontribのライブラリを結構使うみたいなのでこちらもインストール。

$ git clone git://github.com/rechhickey/clojure-contrib.git
$ cd clojure-contrib
$ git co -b 1.1.0 1.1.0
$ ant -Dclojure.jar=/github/clojure/clojure.jar

REPLの起動

$ java -cp /github/clojure/clojure.jar:/github/clojure/clojure-contrib.jar clojure.main

これで無事REPLが起動すればOK。contribが使えるか気になる人は試しにuseなどしてみるといい。エラーがでずにnilが返ってくればOK。

user=> (use 'clojure.contrib.str-utils)
nil

起動コマンド

いつもjava -cpとかやるのは面倒なので起動コマンドを使う。

$ mkdir ~/.clojure
$ ln -s /github/clojure/clojure.jar ~/.clojure
$ ln -s /github/clojure-contrib/clojure-contrib.jar ~/.clojure
$ export CLOJURE_EXT=~/.clojure
$ alias clj=/github/clojure-contrib/launchers/bash/clj-env-dir

clojure-contribに起動用のスクリプトがあるのでそれを使う。CLOJURE_EXTにjarのあるディレクトリを指定する必要があるため、適当なディレクトリを作り、そこにjarを入れておく。あとは適当にaliasはるか、実行パスのあるところにファイルを置けばよい。

vimclojureのインストール

vimclojureもリポジトリから落としてくる。tip(masterとかtrunkと同義)だとBuildツールがantじゃなくてgradleになってるけど、うまくbuild出来なかったので2.1.2を使う。

$ hg clone http://bitbucket.org/kotarak/vimclojure/
$ cd vimclojure
$ hg co -r v2.1.2

/path/to/vimclojureにlocal.propertiesというファイルを作る。

clojure.jar = /home/user/.clojure/clojure.jar
clojure-contrib = /home/user/.clojure/clojure-contrib.jar
nailgun-client = ng
vimdir = /home/user/.vim

そしてbuild。

$ cd /path/to/vimclojure
$ ant
$ ant install

antでbuild、ant installでvimdirにpluginとかがインストールされる。vimrcを設定すれば、この時点でsyntax-highlightとかOmni補完とかは使えるようになっているはず。

VimでREPL

vimでREPLなどの機能を使うためにはng-serverを立ち上げる必要がある。CLASSPATHにjarが設定されていないといけないみたいなので設定する。

$ export CLASSPATH=$CLOJURE_EXT/clojure.jar:$CLOJURE_EXT/clojure-contrib.jar:/path/to/vimclojure.jar
$ sh bin/ng-server
NGServer started on 127.0.0.1, port 2113.

そして、vimrcの修正。syntax highlightの設定なども含む。

" vimclojure
let clj_highlight_builtins = 1
let clj_highlight_contrib = 1
let clj_paren_rainbow = 1
let clj_want_gorilla = 1
let vimclojure#NailgunClient = "/path/to/vimclojure/ng"

適当なclojureのファイルを開く。使い方は:help clojure.vimを見ればよい。とりあえず、REPLの起動は<LocalLeader>srvimclojure

これで一通り設定完了。結構時間がかかったけど、大体詰まるところはCLASSPATHまわりだったのでもしうまく動かなかったらまずそこを確認した方がいいかも。

良いclojure + vimライフを。

参考: Kotka : Projects : Clojure : VimClojure Clojure Programming/Getting Started - Wikibooks, collection of open-content textbooks