适用于 Windows 的 Git:在后台运行 vim,无需与号 (&)

fun*_*iki 5 windows terminal vim gvim msysgit

在我的 Windows 机器上,运行 gVim 似乎绑定了 windows shell 的 git,而如果我从命令提示符运行,则情况并非如此。

我如何才能运行 gVim(或任何其他程序,真的)而不用绑定 shell 并且不必在每个命令的末尾添加一个“&”?

对这个问题的任何帮助将不胜感激。

Git 重击:

$ gvim hello.txt
[Terminal is now blocked]
[Hit ctrl+c or close gvim, terminal takes input]
$ 
Run Code Online (Sandbox Code Playgroud)

Windows 命令提示符:

> gvim hello.txt
> [ Can still access cursor and execute commands]
Run Code Online (Sandbox Code Playgroud)

小智 3

我发现最像在我的 Linux 机器上工作的答案是在 .bashrc 中设置一个别名:

alias gvim='start gvim'
Run Code Online (Sandbox Code Playgroud)

这仍然不是最理想的解决方案,但对我来说,它比创建函数更干净一些。当您运行它或关闭外部窗口时,它也不会打印进程 ID 行(例如:“[1] 6840”)。

这仍然存在函数修复的问题,即它仅适用于您为其创建别名的事物。因此,除非您创建启动记事本别名,否则记事本仍然会阻止您的 bash 。根据MSDN 博客上的这篇文章, Windows 可执行文件似乎有一个标志,可以告诉控制台它是否是 GUI 应用程序,但从我所看到的来看,git bash 并不会根据该标志进行区分,就像cmd.exe 可以。如果您可以将某些内容附加到输入的每个命令中,以检查 .exe 中的 GUI 标志,并根据您的结果在前面添加启动,那么您就可以开始了。