quickrun.vim で無名バッファでも quickfix に出力されるようにしてみた
quickrun.vim でファイルが存在しない時に :QuickRun を行うと一度テンポラリファイルに出力してから実行を行なっています。
この時にエラー出力がある場合、テンポラリファイルのパスを参照してしまい、quickfix で該当するバッファを参照することができません。
と、いうことでテンポラリファイルから実行された場合に quickfix のバッファ番号を :QuickRun したバッファ番号に置き換えるような quickrun-hook をつくってみました。
これで無名バッファで :WatchdogsRun した場合でもハイライト等を行うことが出来ます。
使用する場合は shabadou.vim を更新して下さい。
[使い方]
:QuickRun \ -hook/quickfix_replate_tempname_to_bufnr/enable_exit 1 \ -hook/quickfix_replate_tempname_to_bufnr/priority_exit -10
priority を設定しているのは、他の hook で quickfix を参照しているので、優先順位を高くしています。
毎回、:QuickRun に渡すのが手間であれば g:quickrun_config._ に定義しておいて下さい。
let g:quickrun_config = { \ "_" : { \ "hook/quickfix_replate_tempname_to_bufnr/enable_exit" : 1, \ "hook/quickfix_replate_tempname_to_bufnr/priority_exit" : -10, \ } \}