vim no funciona cuando se llama a git commit dentro de cygwin

Estoy usando git dentro de Cygwin 64 en Windows. El editor pnetworkingeterminado vi y git usa el editor pnetworkingeterminado. Cuando llamo 'git commit', se le solicitarán los siguientes posts antes de que se inicie vim:

git commit Vim warning: output is not to a terminal Vim warning: input is not from a terminal 

Después de eso, vi se iniciará pero no se puede controlar, 'ESC', ':' no se puede usar y tengo que matar a la window de cygwin.

enter image description here

¿Cómo puedo usar vim para el 'git commit'?

Puede tener instalado Git para Windows (msysgit) o ​​Vim para Windows. Fuera de la caja no son compatibles con Cygwin64. Tendría que configurar su ruta para que Cygwin ignore esas instalaciones.

La opción más fácil sería desinstalar ambos elementos y simplemente usar la versión de Cygwin.

Si necesita conservarlos por cualquier razón, configure su variable $PATH en su .bash_profile como anulación. Use su $ PATH existente, less las routes msysgit y windows vim. Si te gustan los scripts bash, puedes intentar lo siguiente para eliminar las routes al usar bash, modificado a tu situación particular:

 msysgit='/cygdrive/c/Program Files/git:' PATH="${msysgit//$PATH/}" msysvim='/cygdrive/c/Program Files (x86)/vim/vim74:' PATH="${mysysvim//$PATH/}" 

¡Buena suerte!

Tiene la versión de Windows de GIT instalada en lugar de la versión de CYGWIN de GIT instalada. GIT viene de manera pnetworkingeterminada con un set completo de herramientas de UNIX, incluida su propia versión de VI. Desafortunadamente, esa versión de VI no funciona bien con CYGWIN. La mejor manera de evitar esto es instalar GIT en CYGWIN para que use la versión CYGWIN de VI o VIM.

Me enfrenté a este mismo problema. @ CYB.tachyon y @David Beckman explicaron POR QUÉ vim id breaking; pero, en lugar de desinstalar cualquier cosa, ejecuté mi command git desde un símbolo del sistema tipo DOS y todo fue sin problemas. Supongo que, eventualmente, limpiar los diversos sabores de vim será mi última solución, pero si solo quieres continuar con tu trabajo, esta fue la solución más rápida para el problema inmediato.

Esto podría ser causado por Mintty, vea este problema .

Hay dos maneras de arreglar:

  1. Use bash.exe en lugar de mintty:

    Haga clic derecho en el atajo de cygwin, cámbielo de C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico - a C:\cygwin64\bin\bash.exe --login -i

  2. Agregue la ruta correcta de vim a la configuration de git:

    git config --global core.editor "C:/cygwin64/bin/vim.exe"

    Tenga en count que no use cygdrive en la ruta ya que .gitconfig no puede reconocerlo. Y si está utilizando vim de 32 bits, entonces la ruta debe ser C:/cygwin/bin/