为什么Windows Git bash shell上的Ctrl-Z失败?

时间:2012-09-10 16:16:08

标签: cygwin msysgit git-bash

我有时必须在Windows中工作,这通常意味着使用Bash shell。如果我(例如)在vim gvim)中打开了多个文件,我点击 Ctrl Z 在返回vim之前简要回到shell并做一些事情,而不是暂停我的vim进程Git Bash创建一个新的DOS shell。这是我想要的最后一件事。 Googling turns up nothing useful(此时此刻 - 我未来的YMMV)。 发生了什么事?

2 个答案:

答案 0 :(得分:1)

我猜这是因为Windows没有实现POSIX挂起进程API。我有同样的问题,并没有找到一般解决方案。但是对于特定的常见情况(例如gvim),解决方法是在PATH中的某个位置创建一个脚本(例如/ c / bin / gvim)

   #!/bin/env bash
   /c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe $@ &

答案 1 :(得分:1)

我有时必须在Windows中工作,这通常意味着使用Git Bash shell。

好。我也是。

如果我(例如)在vim(而不是gvim)打开了几个文件,我点击^ Z简要回到shell并在返回vim之前做了一些事情,而不是暂停我的vim进程Git Bash创建了一个新的DOS shell。

如果你在git bash中执行其他进程,CTRL-Z也不会暂停它们。 Vim可以解决这个问题,而是创建一个shell来实现类似的结果。 Vim是Windows中不需要bash的工具,而Windows命令提示符必然安装在windows机器中。我假设这是Windows二进制程序的安全选择。

这是我想要的最后一件事。谷歌搜索没有任何用处(在这个时间点 - 我未来的YMMV)。发生了什么事?

我的猜测是vim有CTRL-Z映射来创建DOS shell。如果要创建bash shell,可以键入:

:!sh

你将在bash shell中执行。