2012-09-10 57 views
9

我有時必須在Windows中工作,這通常意味着使用Bash shell。如果我是(例如)在vimgvim)與幾個打開的文件,和我打按Ctrlž短暫地回到外殼並返回到vim,而不是暫停我vim過程之前做一些事情Git Bash創建一個新的DOS shell。這是我想要的最後一件事。 Googling turns up nothing useful(在這個時間點 - 我未來的YMMV)。 發生了什麼事?爲什麼Windows Git bash shell上的Ctrl-Z失敗?

回答

1

行某處創建一個腳本,我有時要工作, Windows,這通常意味着使用Git Bash shell。

好。我也是。

如果我是(例如)在vim中(而不是gvim)打開了幾個文件,並且我打了^ Z以簡單地返回到shell並在返回到vim之前做一些事情,而不是暫停我的vim進程Git Bash創建一個新的DOS shell。

如果你在git bash中執行其他進程,CTRL-Z也不會掛起它們。 Vim可以解決這個問題,而是創建一個shell來實現類似的結果。 Vim是一個不需要bash的工具,而windows命令提示符必須安裝在Windows機器上。我認爲這是windows二進制程序的安全選擇。

這是我想要的最後一件事。谷歌搜索沒有任何用處(在這個時間點 - 我未來的YMMV)。到底是怎麼回事?

我的猜測是vim有CTRL-Z映射來創建DOS shell。如果你想創建一個bash shell的,而不是,您可以鍵入:

:!sh

而且你會在bash shell來執行。

1

我猜測這是因爲Windows沒有實現POSIX掛起進程API。我有同樣的問題,並沒有找到一個通用的解決方案。但對於具體的共同情況下(如gvim的),一個解決辦法是在你的路徑(例如/ C /斌/ GVIM)沿

#!/bin/env bash 
    /c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe [email protected] & 
+0

如果我理解你,你使用它作爲gvim的包裝,並且你暗示^ Z ***將***用於包裝腳本,即使它不適用於實際可執行文件?好吧,這是有道理的,因爲真正的可執行文件是* exe *文件。 – iconoclast

+0

對不起,^ Z仍然不行。當我在bash中鍵入「gvim」時,所有腳本都會將gvim放入後臺,這樣我就不必^ Z鍵入下一個命令。基本上,它不需要記住在命令後鍵入&。 – setrofim

+0

我不知道這是如何幫助我。我使用vim,而不是gvim,所以它在終端中打開。我想要一種方式暫停它返回到命令行。 – iconoclast

相關問題