prove.vim書いた
- 2010年04月20日
- category:vim, Perl
- Comment(2)
- Trackback(0)
探してみるとproveのvimプラグインもあるっちゃあるけどいまいちしっくりくるものがなかったので自分で書いてみた。
hokaccha’s vim-prove at master - GitHub
機能としては
- テストファイルから上位ディレクトリをたどって
tというディレクトリがあるディレクトリをrootディレクトリとして、そこにcdしてprove -lvr的なことをする - local::libのディレクトリを指定できる。デフォルトは上で設定したrootディレクトリのextlibディレクトリ
- それ以外のlibディレクトリも指定できる
- 無名ファイルをproveできる
- prove用のsyntax
な感じです。
:Prove {file}
でproveを実行できます。{file}は指定しなければカレントファイルを対象にします。ディレクトリを指定すると再帰的にproveしますが、あまり長いテストだとテストが終わるまでvimが固まるのでt以下を全部テストとかの用途にはあまりおすすめできません。vimprocとかで非同期にすれば解決する気もするのでそのうち対応したいです。
local::libのディレクトリはデフォルトで %prove_root%/extlib になっていますが、g:prove_local_lib_dirで設定できるので
let g:prove_local_lib_dir = $HOME . '/perl5'
という設定をvimrcに書けば、ここで指定したところをlocal::libのディレクトリとして扱います。local::libは入ってる前提なのでもしlocal::libが入ってるところにパスが通ってなければ$PERL5LIBとかでパスを通しておく必要があります。
local::lib以外のディレクトリを指定したい場合はg:prove_lib_dirsとb:prove_lib_dirsを使って設定できます。これは配列で指定するので
g:prove_lib_dirs = ['/path/to/lib', '/path/to/lib2']
と設定するとproveの-Iオプションで指定したディレクトリを読みに行きます。b:prove_lib_dirsも同じですが、こっちはバッファローカルな設定値で、プロジェクト毎に違う設定を読み込むような場合に使うことを想定しています。
プロジェクト毎に設定を読む方法は以下などを参照。
Vim-users.jp - Hack #112: 場所ごとに設定を用意する
syntaxはけっこう適当ですけどなんとなくわかる程度にはなってると思います。
- Prev Entry
- ウェブサイトを反転させるbookmarklet
- Next Entry
- PerlCasual#02でLTしてきた
コメントフォーム
スパムがひどいので一時的にコメントフォーム閉じます。ゴメンナサイ。

コメント一覧
tyru 2010年4月20日 22時11分
let g:prove_local_lib_dir = $HOME/perl5
これは
let g:prove_local_lib_dir = $HOME . '/perl5'
もしくは
let g:prove_local_lib_dir = '$HOME/perl5'
もしくは
let g:prove_local_lib_dir = expand('$HOME/perl5')
じゃないですか?
hokaccha 2010年4月21日 11時05分
ありがとうございます!直しました!