vimでrubyのコードを保存した際に、シンタックスチェックをしてくれるような設定を導入してみた。
これで、実行してみてシンタックスエラーじゃん、というのが減らせるようになった。
以下の設定を.vim/after/ftplugin/ruby.vimに記述。
(rubyのftpluginが発動した後に実行される)
function! s:ExecuteMake() if &filetype == 'ruby' && expand('%:t') !~? '^pry\d\{8}.\+\.rb' silent make! -c "%" | redraw! endif endfunction compiler ruby augroup rbsytaxcheck autocmd! BufWritePost <buffer> call s:ExecuteMake() augroup END
compiler rubyの指定で、makeコマンドでrubyのシンタックスをチェックしてくれる。
こけたらquickfixに入るので、redrawを実行して、
エラーがある時だけquickfixが出るように設定している。
本来であれば、filetypeの検証は必要無いはずなのだが、
hamlを開いた時に何故か誤爆していたので、
ftpluginの後に実行しているのに、余計にfiletypeをチェックしている。
また、pryからeditで開いた一時ファイルをmakeでチェックすると、
やたらと重いので、pryの一時ファイルを外すために、ファイル名を軽くチェックしている。
この設定をしてから、errormarker.vimを導入すると、
vim-rubyがcompilerやerrorformatの設定を持っているおかげで、
保存時にシンタックスエラーがあれば、勝手にerrormarker.vimがハイライト表示してくれる。
参考にしたサイトはこちら。
Vimにソースコードの構文エラーを検出させたい(ただしRubyに限る) - idesaku blog