はじめに
clojureというかLeiningenのインストールについては先日書いた
こちらから。
ちなみに環境はMac OS X Lionです。
clojureのためだけにemacsを新たに学ぶモチベーションはなかったので(そもそもclojureのためでもないのだけど)vimで何とかならないものかと調べてみました。
色々ページは見つかるのですが、leiningen (clojure) + vimclojure (w/ nailgun)という組み合わせについての情報は少なく、しかもどれも新しいバージョンが次々と出るので陳腐化している(&compatibilityがなくなっている)情報も多いです。
とりあえず現時点(2012/02)でうまくいった環境について書いておきます。が、上にもあるようにこれもまたすぐに陳腐化してしまうはずです。
vimclojureのインストール
何がともあれ、まずはvimclojure pluginをインストール。
https://github.com/vim-scripts/VimClojure
にあるので、git cloneするもよし、個別にダウンロードするもよし。
ここでは2.3.1をダウンロードして、(他のvimプラグイン同様に).vimディレクトリ以下に配置します。(Pathogenがあると便利ですが、ここでは触れません.)
.vimrcファイルへの変更は後でまとめて行います。
Vimclojure-nailgun-client
cd ~/vimclojure-nailgun-client/
make
するとngというファイルができます。(ngがexecutableであることも確認しておきましょう)
このngファイルを$
HOME/bin など、パスが通っているディレクトリにコピーします。leinファイルがあるところと同じが良いでしょう。
ここでngコマンドが使えるようになればここはOKです。
$ ng
Usage: ng class [--nailgun-options] [args]
(to execute a class)
or: ng alias [--nailgun-options] [args]
(to execute an aliased class)
or: alias [--nailgun-options] [args]
(to execute an aliased class, where "alias"
is both the alias for the class and a symbolic
link to the ng client)
where options include:
--nailgun-D<name>=<value> set/override a client environment variable
--nailgun-version print product version and exit
--nailgun-showversion print product version and continue
--nailgun-server to specify the address of the nailgun server
(default is localhost)
--nailgun-port to specify the port of the nailgun server
(default is 2113)
--nailgun-help print this message and exit
こんな感じ。
.vimrcファイルの編集
vimrcファイルに以下を追記します。Pathogenを使っている場合はfiletype on以降に書きます。
let vimclojure#HighlightBuiltins = 1
let vimclojure#ParenRainbow = 1
let vimclojure#NailgunClient = "PATH_TO_YOUR_ng_file_HERE"
let vimclojure#WantNailgun = 1
:helptags ~/.vim/bundle/VimClojure/doc/
project.cljに依存関係を記述
clojureのみならず、nailgun-sever, leiningen-nailgun用のファイルなどはdependencyに記述することで取ってくることができます。
ここでは、
lein new test_proj
として、作られたtest_proj/project.cljファイルを以下のようにします。
(defproject test_proj "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.3.0"]
[vimclojure/server "2.3.1"]
[org.clojars.ibdknox/lein-nailgun "1.1.1"]])
おそらく下の2行を追記することになると思います。
これですべての準備は完了です。
なんか作ってみる
project.cljがあるディレクトリで
lein deps
として依存関係ファイルをすべて落としてきます。
次に
lein nailgun & (&はバックグラウンドで動かしたい場合)
でnailgun serverを起動します。
あとは vim sample.clj などでファイルを作成/開くと、色々出来るようになっているはずです。
例えば、
- ()がカラフルになっている
- \el 行単位の評価
- \eb visual block単位での評価
- \ef ファイルの評価
- \sr REPLが開く。
その他は
:help vimclojure
でドキュメントが開きます。
終わりかた?
lein nailgun
単体で実行していた場合は、ctrl-zなどで自動的にnailgun-serverも終了します。
lein nailgun &
で実行していた場合、デフォルトだと2113ポートが開きっぱなしなので気になる方は
lsof -i :2113
でPIDを確認して
kill (-KILL) PID番号
すると完全に終了します。
以上、(もしかしたら冗長な設定があるかもしれませんが)環境構築の手順でした。
最終更新:2012年02月10日 14:31