私は時々Windowsで作業する必要があります。これは、多くの場合、Bashシェルを使用することを意味します。たとえば、いくつかのファイルを開いた状態でvim
(ではなく )にいて、プロセスを一時停止する代わりに、シェルに戻って何かを実行してから、に戻る場合、 GitBashは新しいDOSシェルを作成します。これは私が今まで望んでいた最後のものです。 グーグルは何も役に立ちません(現時点では-私の将来はYMMVです)。何が起こっている?gvim
CtrlZvim
vim
2 に答える
この理由は、WindowsがPOSIXサスペンドプロセスAPIを実装していないためだと思います。私は同じ問題を抱えていましたが、一般的な解決策は見つかりませんでした。ただし、特定の一般的なケース(gvimなど)の場合、回避策は、PATHのどこかにスクリプトを作成することです(例:/ c / bin / gvim)。
#!/bin/env bash
/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe $@ &
たとえば、いくつかのファイルを開いた状態で(gvimではなく)vimを使用していて、^ Zを押してシェルに戻り、vimプロセスを中断する代わりに、vimに戻る前に何かを実行した場合、GitBashは新しいDOSを作成しますシェル。
git bashで他のプロセスを実行する場合、CTRL-Zもそれらを一時停止しません。Vimはそれを回避し、代わりにシェルを作成して同様の結果を実現します。Vimはbashを必要としないWindowsのツールであり、Windowsコマンドプロンプトは必ずWindowsマシンにインストールされます。これはWindowsバイナリプログラムの安全な選択だと思います。
これは私が今まで望んでいた最後のものです。グーグルは何も役に立ちません(現時点では-私の将来はYMMVです)。何が起こっている?
ここでの私の推測では、vimにはDOSシェルを作成するためのCTRL-Zマップがあります。代わりにbashシェルを作成する場合は、次のように入力できます。
:!sh
そして、bashシェルで実行します。