Vimで最強の文法チェックを実現するための簡単な方法

  • 46
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

syntastic.vim はvimで文法をチェックしてくれる最高のプラグインの一つです。
しかし保存したときにしかチェックをしてくれないので、
保存するときはvimを抜けるとき!な自分にとっては微妙に使いにくい仕様になってます。
なので編集しながら文法チェックしてくれる用に設定しましょう!

前提条件

Vimのバージョンが7.4以上
Syntasticがインストールされている

設定

vimrc
let g:syntastic_enable_signs=1
let g:syntastic_auto_loc_list=2
let g:syntastic_mode_map = {'mode': 'passive'} 
augroup AutoSyntastic
    autocmd!
    autocmd InsertLeave,TextChanged * call s:syntastic() 
augroup END
function! s:syntastic()
    w
    SyntasticCheck
endfunction

これだけ!
これだけでバッファを編集したら即座に文法チェックできるし、作業内容も保存できます。

解説

最初の2行はお決まりの設定
3行目で明示的に文法チェックを走らせるように設定します。
augroupでinsertモード抜けたとき、ノーマルモードでバッファが変更されたとき、保存→SyntasticCheckを走らせる!

  • vimのバージョンを7.4に指定したのはそれ以下だとTextChangedがなぜか効かないからです。原因不明なのでどなたか知ってる方がいたら教えてください