:!start
Windowsのcmd.exeにはstartコマンドがあり、それを使うことでプログラムを起動できる
code:vim
*:!start*
Q. 非同期的に外部コマンドやプログラムを実行したり、ドキュメントや URL を既定の
プログラムで開くにはどうしたらよいか?
A. :!を使って外部コマンドを実行している場合、"start" と共に実行できる。例えば
notepad を起動するには: >
:!start notepad
< 既定のイメージビューワーで "image.jpg" を開くには: >
:!start image.jpg
< 現在のファイルのフォルダーを Windows エクスプローラーで開くには: >
:!start %:h
< 既定のブラウザーで Vim のホームページを開くには: >
:!start http://www.vim.org/
<
"start" を使うと、Vimは他のスクリーンに切り替えたり、新しいコンソールを開い
たり、プログラムが終了するまで待ったりしなくなる; つまり、走らせるプログラ
ムは編集中のファイルに何の影響も与えない。:!startで始まったプログラムは、
Vimの開いたファイルハンドルを受け渡されないため、Vimより早く終了する必要は
ない。
このような特別な動作を避けるには ":! start" を使う。
利用可能な引数が二つある (次の Q 参照):
/min ウィンドウが最小化される。
/b コンソールウィンドウが表示されない。
指定できるのはどちらか一方だけである。二番目の引数が start コマンドで実行さ
れる。
外部コマンドを実行する場合、:!start コマンドとすると、非同期的に外部コマンドを実行できる
Vim側は起動したコマンドに影響されなくなる
:!startで起動したプログラムにVimで開いているファイルへのハンドルは渡されないため、Vimよりも早く終了する必要はない
非同期で実行し、ウィンドウを非表示にする場合
/minか/bを使う
:!start /min ctags -R
少々か状態で実行する
:!start /b ctags -R
普通に実行する
参考文献
os_win32 - Vim日本語ドキュメント