vimproc
vimprocとは、vimで非同期処理を実現するためのvimのプラグインです。
読み方
- vimproc
- ぶいあいえむ ぷろく
概要
vimprocとは、vimで非同期処理を実現するためのvimのプラグインです。時間のかかる処理を実行したときに、vimが一見応答不能な状態に見えたり、処理中で何もできなくなってしまうことがあります。vimprocによって、重たい処理を非同期実行にすることにより、ユーザが作業をブロックされることを防ぐことができます。
NeoBundleと組み合わせて、非同期アップデートを実現したり、QuickRunと組み合わせる、といった使い方ができます。
vimスクリプトを作成する場合にも利用できます。詳しくは、vimprocを使用してコマンド実行する方法をご参照ください。
vimproc をビルドする
vimprocは、Unixなら.so、WindowsならDLLをビルドする必要があります。
Unix(Linux, FreeBSD)
$ cd ~/.vim/bundle/vimproc $ make -f make_unix.mak
Windows
mingwを利用してビルドします。 vimprocのDLLのビルドは、以下の通りです。バージョンによって、パスが異なるのでご注意ください。
C:\Users\kaoru>cd .vim\bundle\vimproc C:\Users\kaoru\.vim\bundle\vimproc>"c:\Program Files\mingw-builds\x64-4.8.1-posix-seh-rev5\mingw64\bin\mingw32-make.exe" -f make_mingw32.mak CC=x86_64-w64-mingw32-gcc.exe
win32用にはgnupack_develを使いました。
C:\Users\kaoru\.vim\bundle\vimproc>"c:\Program Files\mingw-builds\x64-4.8.1-posix-seh-rev5\mingw64\bin\mingw32-make.exe" -f make_mingw32.mak CC=C:\Users\kaoru\Downloads\gnupack_devel-11.00\app\mingw\tdm\bin\mingw32-gcc
非同期アップデート
NeoBundleは、vimprocを自動認識します。vimprocがインストールされている場合、非同期でインストールとアップデートができます。
NeoBundle 'Shougo/vimproc', { \ 'build' : { \ 'windows' : 'make -f make_mingw32.mak', \ 'cygwin' : 'make -f make_cygwin.mak', \ 'mac' : 'make -f make_mac.mak', \ 'unix' : 'make -f make_unix.mak', \ }, \ }
QuickRun の非同期実行
QuickRun は、コーディング中のプログラムを vim から起動して動作確認ができるので、非常に便利です。しかし、これが同期実行で時間のかかるプログラムを実行してしまうと、プログラムが終了するまで、何もできなくなってしまいます。
QuickRun を vimproc と組み合わせることで、時間のかかる処理をさせたまま、ユーザは、コーディングをしつづけたり、ほかのことをやっている余裕ができます。
NeoBundle 'Shougo/vimproc', { \ 'build' : { \ 'windows' : 'make -f make_mingw32.mak', \ 'cygwin' : 'make -f make_cygwin.mak', \ 'mac' : 'make -f make_mac.mak', \ 'unix' : 'gmake -f make_unix.mak', \ }, \ } NeoBundle 'thinca/vim-quickrun' let g:quickrun_config={'*': {'split': ''}} let g:quickrun_config._={ 'runner':'vimproc', \ "runner/vimproc/updatetime" : 10, \ "outputter/buffer/close_on_empty" : 1, \ }
関連項目
ツイート