vimproc

提供: neovim/vim入門
移動: 案内検索
スポンサーリンク

vimprocとは、vimで非同期処理を実現するためのvimのプラグインです。WindowsやUnix(Linux/FreeBSD)などの環境で利用できます。

読み方

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

make.exe を使わなくてもビルドできるので、適当に作るとき用のメモです。MinGW 64ビットの Run terminal を利用したコマンドプロンプトで下記コマンドを実行しました。

C:\Users\kaworu\.vim\bundle\vimproc.vim>gcc -Wall -shared -m64 autoload\vimstack
.c autoload\proc_w32.c -o autoload/vimproc_win64.dll -lwsock32 -Wunused-function

非同期アップデート

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,
\ }

関連項目




スポンサーリンク