vimのプラグインであるerrormaker.vimを使うと,保存のタイミングで指定したチェックコマンドを走らせて,その結果をQuickFixで管理することができる.
errormaker.vimについては以下のサイトが導入に際しての参考になる.
- http://subtech.g.hatena.ne.jp/secondlife/20080729/1217315593
- http://www.hexacosa.net/blog/detail/54/
QuickFixに関しては,vimの:help Quickfix
を見た方がはやい.(きっちり説明する自信なし..)
このままだと面倒なこと
ただこのままだと,エラーの箇所は分かるもののエラー詳細が分からずに,QuickFixウインドウを開く(:copen
コマンド)という事態が(注:私のなかではしょっちゅう)生じる.
さらに一度開いたQuickFixウインドウは明示的に閉じなくてはならない(:cclose
コマンド).
画面が大きい場合は開きっぱなしにして放っておいても良いかも知れないが,screen/tmux,もしくはvimの画面分割を活用している場合は,えてして一つの領域が狭くなりがちである.
QuickFixウインドウが表示されて欲しい=『エラーが一件以上ある』場合であり,それ以外の場合は表示されないことが望ましい.
ということで
以下の設定をファイルタイププラグインに追加して,QuickFixウインドウを自動で開閉するようにした.
ファイル保存時にエラーがあれば,自動的にQuickFixウインドウが開く→修正後は自動で閉じるという挙動が実現できるため,快適なエラーチェックが可能に.
setlocal makeprg=/Users/tatsuro/python/pythonbrew/bin/flake8\ %
setlocal errorformat=%f:%l:%m
""" getqflist()でQuickFixのエラー件数が取得できる.
function! s:open_quickfix_window()
silent make | redraw!
if (len(getqflist()) == 0)
cclose
else
copen
endif
endfunction
if !exists("g:python_flyquickfixmake")
let g:python_flyquickfixmake = 1
au BufWritePost *.py call s:open_quickfix_window()
endif