最後の設定で :QuickRun を行う hook
元ネタ:https://twitter.com/kanno_kanno/status/225611572389756928
C++ でコーディングしている場合、よくヘッダーを変更して :QuickRun する為に .cpp に戻るような動作を行なっているのですが、上記の quickrun-hook を使えばヘッダーからでも簡単に :QuickRun を行うことが出来ます。
と、言う感じで、わたしも前々から欲しいなー思っていたのでガーッと書いてみた。
[ソース]
" quickrun-run_prevconfig {{{ let s:prev_config={} let s:hook = { \ "name" : "run_prevconfig", \ "kind" : "hook", \ "config" : { \ "enable" : 0, \ } \} function! s:hook.init(session) if self.config.enable if has_key(s:prev_config, "input") && empty(s:prev_config.input) call remove(s:prev_config, "input") endif call extend(a:session.config, s:prev_config, "force") endif endfunction call quickrun#module#register(s:hook, 1) unlet s:hook let s:hook = { \ "name" : "save_prevconfig", \ "kind" : "hook", \ "config" : { \ "enable" : 1, \ } \} function! s:hook.on_normalized(session, context) let s:prev_config = deepcopy(a:session.config) endfunction call quickrun#module#register(s:hook, 1) unlet s:hook " }}}
割りとざっくり書いたのであまりテストしてませんので何か問題があるかも。
とりあえず、何となく動いている感じ。
config を直接変更・追加している quickrun-hook を使用している場合は問題が起こりそうなので注意。
あと config.input が empty だとエラーになったのでゴニョゴニョしています。
これでバッファの行き来が減るので結構重宝しそうですね。