vim-watchdogsとは、vim-quickrunを使って非同期にシンタックスチェックを行う便利pluginです。 詳しくはhelpか、おしょーさんの記事を参照してください。
javaのコンパイルを行うためにはclasspathの設定やら何やら、色々と煩雑な手順を踏む必要があります。 mavenなんかを使えばこの辺楽になりますが、いちいちmaven compileなんてやってたら日が暮れてしまいます。 そこでwatchdogsですよ。
以下の設定を$MYVIMRCに記述して、javaの編集中に:WatchdogsRunすれば、いい感じにqfixwindowが開くと思います。
let g:quickrun_config['java/watchdogs_checker']= {'type': 'watchdogs_checker/javac'}
let g:quickrun_config['watchdogs_checker/javac']= {
\ 'command': '$JAVA_HOME/bin/javac',
\ 'cmdopt': join([
\ '-Xlint:all',
\ '-d $TEMP',
\ '-sourcepath "%{javaclasspath#source_path()}"',
\ '-classpath "%{javaclasspath#classpath()}"',
\ '-deprecation',
\ ]),
\ 'exec': '%c %o %S',
\ 'errorformat': '%A%f:%l: %m,%-Z%p^,%+C%.%#,%-G%.%#',
\}
errorformatについては、:help errorformat-javacから引っぱってきました。 ちょっと不満点あるんで、そのうちどうにかするかも。
ミソはvim-javaclasspathを使ってclasspathの設定やsourcepathの設定を簡略化してるところ。 vim-javaclasspathが対応している限り、特に自分で何かしなくてもwatchdogsで非同期チェックが可能になります。
参考までに、私のqfixwindow関係の設定は、thincaさんの記事を参考に入れています。