Почему Ctrl-Z в оболочке Windows Git bash терпит неудачу?
мне иногда приходится работать в Windows, что часто означает использование оболочки Bash. Если я (например) в vim
(не gvim
) с несколькими открытыми файлами, и я ударил CtrlZ чтобы ненадолго вернуться к оболочке и сделать что-то, прежде чем вернуться в vim
, вместо того чтобы прекратить мои vim
процесс Git Bash создает новую оболочку DOS. Это последнее, чего бы я хотел. Googling не находит ничего полезного (на данный момент времени - YMMV в моем будущем).
Что происходит?
2 ответов
иногда мне приходится работать в Windows, что часто означает использование оболочки Git Bash.
хорошо. Я тоже.
Если я (например) в vim (не gvim) с несколькими открытыми файлами, и я ударил ^Z, чтобы ненадолго вернуться в оболочку и сделать что-то перед возвращением в vim, вместо приостановки моего процесса vim Git Bash создает новую оболочку DOS.
Если вы выполняете другие процессы в Git bash, CTRL-Z также не приостанавливает их. Напор работает вокруг этого и вместо этого создает оболочку для достижения аналогичного результата. Vim-это инструмент в windows, который не требует bash, а командная строка windows обязательно будет установлена на машине windows. Я предполагаю, что это безопасный выбор программы Windows binary.
Это последнее, что я хочу. Googling не находит ничего полезного (на данный момент времени - YMMV в моем будущем). Что происходит?
Я предполагаю, что vim имеет CTRL-Z карта для создания оболочки DOS. Если вы хотите создать оболочку bash вместо этого, вы можете ввести:
:!sh
и вы будете выполняться в оболочке bash.
Я предполагаю, что причина этого в том, что Windows не реализует API процесса приостановки POSIX. У меня была такая же проблема, и я не нашел общего решения. Но для конкретных распространенных случаев (таких как gvim) работа заключается в создании скрипта где-то на вашем пути (например, /c/bin/gvim) по строкам
#!/bin/env bash
/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe $@ &