12

私は時々Windowsで作業する必要があります。これは、多くの場合、Bashシェルを使用することを意味します。たとえば、いくつかのファイルを開いた状態でvimではなく )にいて、プロセスを一時停止する代わりに、シェルに戻って何かを実行してから、に戻る場合、 GitBashは新しいDOSシェルを作成します。これは私が今まで望んでいた最後のものです。 グーグルは何も役に立ちません(現時点では-私の将来はYMMVです)。何が起こっている?gvimCtrlZvimvim

4

2 に答える 2

1

この理由は、WindowsがPOSIXサスペンドプロセスAPIを実装していないためだと思います。私は同じ問題を抱えていましたが、一般的な解決策は見つかりませんでした。ただし、特定の一般的なケース(gvimなど)の場合、回避策は、PATHのどこかにスクリプトを作成することです(例:/ c / bin / gvim)。

   #!/bin/env bash
   /c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe $@ &
于 2012-10-09T12:01:51.310 に答える
1

たとえば、いくつかのファイルを開いた状態で(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シェルで実行します。

于 2014-05-30T07:12:43.963 に答える