vimで手軽に文法チェック(syntax check)

お昼食べた後にコーディングとかしてくると、よく眠くなるよねw?眠くなると、簡単な文法ミスをおかしがちだよね。文法ミスをした事に気づかずに、ブラウザでアプリ動かすと、画面やエラーログに「syntax error」とか出てきてイラッとなるよね。イラッとなると「もう今日は仕事とかいいから早く家に帰ってニートしたいなー」とかニート志望の動機が膨らむよね。そうすると、特に取り柄のない僕なんか、人生破綻コースまっしぐらだよね。そしたら最終的にはリストカッターで、本当にありがとうございました。みたいな残念に結果になっちゃうんだよ。

そうならないためにも、ブラウザとか実行してから気づく前に、コーディングしてる最中に、syntaxのチェックをしちゃおう。

PHPで文法チェックするときは、こうだよね。

php -l hoge.php

けど、vimで一旦保存して閉じて、上のコマンドをわざわざ打つのは、正直メンドクサイが理由で、上の残念なコースになっちゃうよ。だから、vimを閉じる事なく、下記のようvimのコマンドとして打つといいよね。

:!php -l hoge.php

けど、そもそもタイプする数が多すぎて結局、残念なコースだよね。しょうがないから、もっと簡単にして自分の人生を救っちゃおう。
vimにはmakeコマンドとかいうのがあってこれを利用すると何気にグーなんだよ。

.vimrcに下記のように書く

set makeprg=php\ -l\ %
set errorformat=%m\ in\ %f\ on\ line\ %l

んでコーディング中に

:make

て打つんだよ。そうすると、今編集中のファイルを「php -l」でチェックしてくれるんだ。やったね。これで保存する前に、makeを打てば、事前にエラーがチェックできるね!
えぇっ!?複数言語を使っていて、makeで全部php -lを通されるのは嫌だって?w編集してるファイルによって、makeで実行するコマンドを変えたいだってw???

この欲しがりやさんが!!!!ww

そんな時は、.vimrcをこんな風に変えてあげるといいと思うよ。

autocmd filetype php :set makeprg=php\ -l\ %
autocmd filetype php :set errorformat=%m\ in\ %f\ on\ line\ %l

autocmdなんちゃらがくっついたよね。これで、拡張子が「.php」の時だけ、「php -l」を実行してくれるんだよ。あとはfiletypeにそれぞれの拡張子を書いて、makeprgに文法チェックの構文を、書いてあげれば残念なコースにはならないと。。。。思う!!