Vim не работает при вызове git commit в cygwin
Я использую git в Cygwin 64 под окнами. В стандартном редакторе vi и git используется редактор по умолчанию. Когда я назову 'git commit', будут отправлены следующие сообщения перед запуском vim:
git commit
Vim warning: output is not to a terminal
Vim warning: input is not from a terminal
После этого vi будет запущен, но не может управляться, "ESC", ":" не может использоваться, и мне нужно убить окно cygwin.
![введите описание изображения здесь]()
Как я могу использовать vim для 'git commit'?
Ответы
Ответ 1
У вас может быть Git для Windows (msysgit) или Vim для Windows. Из коробки они не совместимы с Cygwin64 - вам нужно будет настроить ваш путь для Cygwin, чтобы игнорировать эти установки.
Более простым вариантом было бы удалить оба этих элемента и просто использовать версию Cygwin.
Если вам нужно сохранить их по какой-либо причине, установите для параметра $PATH
значение .bash_profile
в качестве переопределения. Используйте существующие $PATH, минус пути msysgit и windows vim. Если вы используете скрипт bash, вы можете попробовать следующее, чтобы удалить пути при использовании bash, измененных в вашей конкретной ситуации:
msysgit='/cygdrive/c/Program Files/git:'
PATH="${msysgit//$PATH/}"
msysvim='/cygdrive/c/Program Files (x86)/vim/vim74:'
PATH="${mysysvim//$PATH/}"
Удачи!
Ответ 2
У вас установлена версия Windows GIT, а не версия CYGWIN GIT. GIT по умолчанию поставляется с полным набором инструментов UNIX, включая собственную версию VI. К сожалению, эта версия VI не очень хорошо сочетается с CYGWIN. Лучший способ - установить GIT в CYGWIN, чтобы он использовал версию VI или VIM CYGWIN.
Ответ 3
Я столкнулся с этой же проблемой. @CYB.tachyon и @David Beckman оба объяснили, ПОЧЕМУ vim id break; но вместо того, чтобы удалять что-либо, я запустил команду git из командной строки в стиле DOS, и все прошло гладко. Я полагаю, что в конце концов, очистка различных вкусов vim станет МОИМ конечным решением, но если вы просто хотите продолжить свою работу, это было самым быстрым решением непосредственной проблемы.
Ответ 4
Это может быть причиной mintty, см. эту проблему.
Есть два способа исправить:
-
Используйте bash.exe вместо mintty:
Щелкните правой кнопкой мыши на ярлыке cygwin, измените его с C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
на C:\cygwin64\bin\bash.exe --login -i
-
Добавьте правильный путь vim к git config:
git config --global core.editor "C:/cygwin64/bin/vim.exe"
Обратите внимание: не используйте cygdrive
в пути, поскольку .gitconfig
не может его распознать. И если вы используете 32-битный vim, то путь должен быть C:/cygwin/bin/