12

我有时必须在 Windows 中工作,这通常意味着使用 Bash shell。如果我(例如)在vim( not gvim ) 中打开了几个文件,并且我点击CtrlZ短暂返回 shell 并在返回之前做一些事情vim,而不是暂停我的vim进程 Git Bash 创建一个新的 DOS shell。这是我想要的最后一件事。 谷歌搜索没有任何用处(在这个时间点 - 我未来的 YMMV)。到底是怎么回事?

4

2 回答 2

1

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

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

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

我的猜测是 vim 有 CTRL-Z 映射来创建 DOS shell。如果你想创建一个 bash shell,你可以输入:

:!sh

您将在 bash shell 中执行。

于 2014-05-30T07:12:43.963 回答
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 回答