VimでClojureする時のあれこれ
この記事は Vim Advent Calendar 2012 224日目の記事になります. 223日目はleafcageさんの"uptodate.vimでもっとお手軽にオレオレライブラリ"でした。
今回はLisp リローデット(要出展)と呼ばれているあの言語をVimでも書いちゃおうと言う記事です。
何となく、Lispと言えば名前を言えないあのエディタの事ばかり頭に浮かびますが、Vimでも快適に書けるよ!いやむしろVimなんだよ!なんて事が分かって貰えればと思います.
vim-fireplace
Clojureのvimプラグインと言えばVimClojureが良く取り上げられるのですが,より便利なプラグインがあります.
そう,vim-fireplaceです!
vim-fireplaceを使う事で,どのようにVimでClojureを楽に書いていくかについて書いて行きましょう.
使用準備
vim-fireplaceは,ClojureのnREPLに接続して使用します.
Leiningenが必要なのでご注意.
他のプラグインと同じ様に,NeoBundle等でインストールすればOKです.
NeoBundleが導入済みであれば以下の行を.vimrcに追加して下さい.
NeoBundle 'tpope/vim-fireplace'
おっと,インストールも忘れない様に気をつけて下さい.
以下のコマンドを実行します.
:NeoBundleInstall
これでvim-fireplaceを使う準備が出来ました!
使い方
前項に書きましたが,このプラグインはClojureのnREPLに接続して使用するものなので,leiningenと併用するのが基本的な使い方になります.
そのためテストしたいプロジェクト内でnREPLを立ち上げる必要があります.
まず,以下の通りにプロジェクトを作ってみます.
lein new test
プロジェクト内に移動し,leinコマンドのreplからnREPLを立ち上げます.
cd test
lein repl
nREPLを立ち上げるには,xterm等のターミナルエミュレータからでも勿論OKですが,VimShellでも問題ないです.
ここまで来れば,vim-fireplaceはVimShell等で立ち上げられたnREPLを見つけ,既にいつでも接続出来る様になっています. vimが拡張子.cljのファイルを開いている限り,vim-fireplaceを使う事が出来るでしょう.
早速,一番オーソドックスなvim-fireplaceのコマンドを試してみます.
:%Eval
:%Evalはバッファのコード全体をnREPLに渡し,評価してくれます.
直ぐに結果がバッファ下に現れてくれるので,とっても頼りになるコマンドです.
以下の様に%を抜きにする事でカーソルがある段落のみ評価されます.
:Eval
これまで実行して来たコードを履歴から再度実行する事もできます.
cqq
vimのバッファを利用して,コードを直接入力して評価させる事もできます.
cqc
以上のコマンド以外にも,vim-fireplaceには様々な使い道がありますが,私が良く使うものはざっとこれぐらいなので,紹介はここまでに致します.
実際に使うと分かるかと思いますが,非常に動作が実際実用的なプラグインなので,VimでClojureしたい方に強くお勧めしておきます.