Vim で快適にPerl を書く【Carton】
vim でスクリプト言語書く時はsyntastic が便利ですよね。
Perl でもそれを使っていたんですが、carton でライブラリ入れてuse で呼び出そうとしたらエラー吐きまくりました。
vimrc の設定は下記になっていました。
let g:syntastic_enable_perl_checker = 1 let g:syntastic_perl_checkers = ['perl']
もちろん、スクリプトを carton exec ~.pl という風に実行すればエラーは出ないので、carton のpath が認識できていない模様。
調べてみたら大変素晴らしい記事を見つけました。
http://kesin.hatenablog.com/entry/2014/06/24/200000
vim-quickrun はとりあえずなしで、syntastic の設定だけしたら、ライブラリ認識されました。感激です。
ちなみに以下をvimrc に入れ込みました。
let g:syntastic_enable_perl_checker = 1 let carton_path = system('carton exec perl -e "print join(q/,/,@INC)"') let lib_path = fnamemodify(finddir("lib", ";"), ":p") let g:syntastic_perl_lib_path = join([carton_path, lib_path], ',') let g:syntastic_perl_checkers = ['perl']
でも、vim を開く際に1行だけ赤文字で
syntastic: warning: variable g:syntastic_perl_lib_path should be a list
と表示されてしまっている...
どうやら syntastic_perl_lib_path の部分の右辺は list でないといけないみたいでした。
let g:syntastic_perl_lib_path = split(carton_path, ',\s*') + split(lib_path, ',\s*')
と修正してやりました。