Syntastic という文法チェック用のツールが凄そうというお話。
GitHub - vim-syntastic/syntastic: Syntax checking hacks for vim
自分の Vim は PHP の場合 errormarker.vim の PHP シンタックスチェックをし、Python の場合は PyFlakes*1 を使いチェックをしている。
Syntastic はそのようなチェックを統合的に扱えるプラグインのよう。
At the time of this writing, syntax checking plugins exist for applescript, c, coffee, cpp, css, cucumber, cuda, docbk, erlang, eruby, fortran, gentoo_metadata, go, haml, haskell, html, javascript, json, less, lua, matlab, perl, php, puppet, python, rst, ruby, sass/scss, sh, tcl, tex, vala, xhtml, xml, xslt, yaml, zpt
GitHub - vim-syntastic/syntastic: Syntax checking hacks for vim
現時点ではこれだけのファイルタイプに対応しているっぽい。
Pathogen を使用しているので、bundle の下で git clone をして以下のようなコードを書いてみた。
#!/usr/bin/env perl use strict; use warnings; foo = bar
上記のようなコードを保存した瞬間にエラーが出ている所に >> と印がついた。
また :Errors というコマンドを実行すると、QuickFix に表示される
GVim のような GUI だとおそらくバルーン表示とかも出来るっぽい。
設定も色々細かくできるようで、たとえばファイルを開いた瞬間にチェックをするとか、チェックとともに QuickFix を表示するといった機能もある。
また全て自動でチェックするのではなく、特定の言語は手動でチェックしたいという場合もオプションで設定できる。
たとえば自分は Python の場合は PyFlakes でチェックして欲しくて、Syntastic ではチェックして欲しくない。
let g:syntastic_mode_map = { 'mode': 'active', \ 'active_filetypes': ['perl'], \ 'passive_filetypes': ['php'] }
こんな感じで、 active_filetypes に自動でチェックして欲しいファイルタイプを記述し、passive_filetypes には明示的に :SyntasticCheck を呼ぶとチェックするような形になる。
上記の場合、ファイルタイプが Perl の場合は保存でチェック、PHP の場合は保存しても自動でチェックしない。
自分で errormarker.vim 使ってをチェックツールをごりごり書いている場合はあまりメリットはないかもしれないけど、新しい言語を始めたり、滅多に使わない言語を Vim で書く場合は凄く重宝しそう。