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

Cygwin 为什么Windows Git bash shell上的Ctrl-Z会失败?,cygwin,msysgit,git-bash,Cygwin,Msysgit,Git Bash,我有时不得不在Windows中工作,这通常意味着使用Bash shell。如果我(例如)在vim(而不是gvim)中打开了几个文件,我点击CtrlZ短暂返回shell并在返回vim之前做一些事情,而不是挂起我的vim进程,Git Bash将创建一个新的DOS shell。这是我最不想要的。(此时此刻——我未来的YMMV)。 发生了什么事?我猜原因是Windows没有实现POSIX挂起进程API。我也有同样的问题,还没有找到一个通用的解决方案。但对于特定的常见情况(如gvim),解决方法是在路径中

我有时不得不在Windows中工作,这通常意味着使用Bash shell。如果我(例如)在
vim
(而不是
gvim
)中打开了几个文件,我点击CtrlZ短暂返回shell并在返回
vim
之前做一些事情,而不是挂起我的
vim
进程,Git Bash将创建一个新的DOS shell。这是我最不想要的。(此时此刻——我未来的YMMV)。
发生了什么事?

我猜原因是Windows没有实现POSIX挂起进程API。我也有同样的问题,还没有找到一个通用的解决方案。但对于特定的常见情况(如gvim),解决方法是在路径中的某个位置(例如/c/bin/gvim)按照

   #!/bin/env bash
   /c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe $@ &
我有时不得不在Windows中工作,这通常意味着使用Git Bash shell

好。我也是

例如,如果我在vim(而不是gvim)中打开了几个文件,我点击^Z短暂返回shell并在返回vim之前执行一些操作,Git Bash将创建一个新的DOS shell,而不是挂起我的vim进程

如果在GitBash中执行其他进程,CTRL-Z也不会挂起它们。Vim解决了这个问题,并创建了一个shell来实现类似的结果。Vim是windows中不需要bash的工具,而windows命令提示符必须安装在windows机器中。我认为这是windows二进制程序的安全选择

这是我最不想要的。谷歌搜索没有发现任何有用的东西(在这个时候——我未来的YMMV)。发生了什么事

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

:!sh


您将在bash shell中执行

如果我理解您的意思,您将它用作gvim的包装器,并且您暗示^Z将适用于包装器脚本,即使它不适用于实际的可执行文件?好的,这是有道理的,因为真正的可执行文件是一个exe文件。对不起,^Z仍然不能工作。当我在bash中键入“gvim”时,脚本所做的就是将gvim放在后台,这样我就不必^Z来键入下一个命令。基本上,它只是省去了在命令之后要记住键入的麻烦。我不知道这对我有什么帮助。我用的是vim,不是gvim,所以终端是开放的。我想要一种方法来暂停它,然后返回到命令行。嗯,我明白了。在这种情况下,我相信你可能运气不好。我唯一能建议的是将“vim”映射到“start vim”,这将在一个单独的cmd窗口中运行vim,释放bash以接收输入。但是,这并不是你真正想要的。对不起,我帮不上什么忙。就我而言,它最近开始失败了,我不知道为什么。。。