Na moim komputerze z systemem Windows uruchamianie gVim wydaje się wiązać git z powłoką systemu Windows, natomiast jeśli uruchamiam z wiersza poleceń, tak nie jest.
Jak mogę uruchomić gVim (lub jakikolwiek inny program, naprawdę) bez wiązania powłoki i konieczności dodawania '& amp;' do końca każdego polecenia?
Każda pomoc w tym zakresie byłaby bardzo mile widziana.
Git Bash:
$ gvim hello.txt
[Terminal is now blocked]
[Hit ctrl+c or close gvim, terminal takes input]
$
Wiersz polecenia systemu Windows:
> gvim hello.txt
> [ Can still access cursor and execute commands]
Odpowiedź, którą odkryłem, że działa jak na moim Linuksie, to ustawienie aliasu w .bashrc:
Nadal nie jest to najbardziej idealna poprawka, ale wydaje mi się trochę czystsza niż tworzenie funkcji. Nie drukuje również linii identyfikatora procesu (przykład: „[1] 6840”) podczas jego uruchamiania lub zamykania okna zewnętrznego.
Wciąż jest problem z poprawką funkcji, która działa tylko dla rzeczy, dla których tworzony jest alias. Więc notatnik na przykład nadal blokuje bash, chyba że utworzysz uruchom notatnik Alias. Oparte na ten post na blogu MSDN wygląda na to, że pliki wykonywalne Windows mają flagę, która informuje konsolę, czy jest to aplikacja GUI, ale z tego co widzę, git bash nie rozróżnia na podstawie tej flagi w taki sam sposób, jak robi to cmd.exe. Gdybyś mógł dołączyć coś do każdego wpisanego polecenia, które sprawdziłoby .exe dla flagi GUI i przedrostek początek w oparciu o Twój wynik, dobrze by było iść.
źródło
cmd
okno oprócz instancja gvim. Jakiś pomysł dlaczego?Możesz uruchomić dowolny program w tle z basha, używając
&
:Gvim różni się od większości programów i zwykle umieszcza się w tle bez potrzeby używania
&
. Aby uruchomić go na pierwszym planie, zwykle musisz go uruchomić za pomocą-f
opcja. Nie wiem, dlaczego gvim nie zachowuje się tak z basha w systemie Windows.źródło