「vimproc」の版間の差分

提供: neovim/vim入門
移動: 案内検索
(ページの作成:「vimprocとは、vimで非同期処理を実現するためのvimのプラグインです。 '''読み方''' ;vimproc:ぶいあいえむ ぷろく __TOC__...」)
 
 
(同じ利用者による、間の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' : 'make -f make_unix.mak',
+
       \    '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,
\ }

関連項目