quickrun.vim で Vim script を非同期で実行
やったーこれで出来たよー。
[ソース]
let g:quickrun_config = { \ "vim/async" : { \ 'command': 'vim', \ 'exec': '%C -N -u NONE -i NONE -V1 -e -s --cmd "source %s" --cmd qall!', \ "runner" : "vimproc", \ "hook/output_encode/encoding" : "sjis", \ }, \} " 非同期で実行したい Vim script で " :QuickRun vim/async " を実行
何をやっているかっていうと現在起動している Vim ではなくて、Vim 上から別の Vim を起動させてその上で Vim script を処理しています。
なので外部コマンドとして Vim script を処理し vimproc で非同期実行を行うことが出来ます。
実際に使用する場合は --cmd オプションで細かい設定とかしてみるといいかと。
あと上記の設定だと Vim の起動時に vimrc を読み込まないのでプラグインに依存するようなコードだと実行できないので注意。
逆にいえばプラグインに依存しないようなコードなんかを実行させる場合に有効かと思います。
特に副作用があるコードだと現在起動している Vim に影響を与えないので Good ですね。
owl.vim のテストコードとかはこの方式で実行してみたいところ。