「vimproc」の版間の差分
(同じ利用者による、間の1版が非表示) | |||
行1: | 行1: | ||
− | [[vimproc]]とは、[[vim]]で非同期処理を実現するための[[vimのプラグイン]] | + | [[vimproc]]とは、[[vim]]で非同期処理を実現するための[[vimのプラグイン]]です。WindowsやUnix(Linux/FreeBSD)などの環境で利用できます。 |
'''読み方''' | '''読み方''' | ||
行29: | 行29: | ||
<syntaxhighlight lang="dos"> | <syntaxhighlight lang="dos"> | ||
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 | 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 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | make.exe を使わなくてもビルドできるので、適当に作るとき用のメモです。MinGW 64ビットの '''Run terminal''' を利用したコマンドプロンプトで下記コマンドを実行しました。 | ||
+ | <syntaxhighlight lang="dos"> | ||
+ | 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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 非同期アップデート == | == 非同期アップデート == | ||
行53: | 行59: | ||
\ 'cygwin' : 'make -f make_cygwin.mak', | \ 'cygwin' : 'make -f make_cygwin.mak', | ||
\ 'mac' : 'make -f make_mac.mak', | \ 'mac' : 'make -f make_mac.mak', | ||
− | \ 'unix' : ' | + | \ 'unix' : 'gmake -f make_unix.mak', |
\ }, | \ }, | ||
\ } | \ } | ||
行68: | 行74: | ||
<iframe width="420" height="315" src="//www.youtube.com/embed/YIL5t5dL_VA" frameborder="0" allowfullscreen></iframe> | <iframe width="420" height="315" src="//www.youtube.com/embed/YIL5t5dL_VA" frameborder="0" allowfullscreen></iframe> | ||
</html> | </html> | ||
+ | |||
== 関連項目 == | == 関連項目 == | ||
* [[vimのPHP開発環境]] | * [[vimのPHP開発環境]] |
2015年12月30日 (水) 18:22時点における最新版
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, \ }