Rubyコードを静的にチェックしてくれるRubocopをVimから実行するプラグインには専用のvim-rubocopもあるんですが、このためだけのためにインストールするのが嫌だったので、syntasticから実行するようにしました。
インストール
何はともあれNeoBundleでsyntasticをインストール(NeoBundle自体の使い方については Vim - NeoBundleの導入 - Qiitaなどを参照してください)
NeoBundle 'scrooloose/syntastic'
それとRubocopもインストールします。
gem i rubocop
Rubocopを使うように設定する
NeoBundle 'scrooloose/syntastic'letg:syntastic_mode_map = { 'mode': 'passive',
\ 'active_filetypes': ['ruby'] }
letg:syntastic_ruby_checkers = ['rubocop']
letg:syntastic_quiet_warnings =0
syntastic_mode_map
は 'active'
もしくは 'passive'
を指定します。 'active'
だとバッファを保存するたびにsyntasticが走り、 'passive'
の場合は :SyntasticCheck
実行時に走ります。
'active_filetypes'
は保存の度にsyntasticを走らせるファイルタイプを指定します。
2つをあわせると、基本的にsyntasticは走らせないけど、rubyのときだけは自動的に走らせる、という設定になります。
syntastic_ruby_checkers
はrubyでsyntasticが走らせるツールを指定するものです。
syntastic_quiet_warnings
はデフォルト 1
なのですが、何故ここで 0
を設定しているかは このコメントを参照してください。
使ってみる
あとはrubyファイルを開いて保存するだけです。
syntasticはVimをブロックするので大きなファイルだとストレスたまるかも知れません。その場合は 'active_filetypes'
ではなく'passive_filetypes'
に指定して、必要なタイミングで :SyntasticCheck
を実行するようにするといいでしょう。
もしくは :SyntasticToggleMode
を実行すると active と passive を切り換えることもできます。