Tengo este extraño problema con el uso vi
como editor de git commit -a
.
El flujo normal es: escribo git commit -a
, vi
aparece, ingreso mi mensaje de confirmación y luego :wq
guardar y salir vi
.
Esto funciona bien Sin embargo, a veces hago un error tipográfico y en lugar de :wq
escribir :Wq
(porque uso el cambio para :
). Luego, cuando me corrijo y escribo de :wq
nuevo, git
aparece el siguiente error:
error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.
¿Cómo puedo arreglar esto?
mountain-lion
terminal
git
vi
houbysoft
fuente
fuente
git
yvi
? No puedo reprobar esto con vim 7.3, git versión 1.7.11.1.7.3
y git1.7.9.6 (Apple Git-31.1)
, los predeterminados en Mountain Lion afaikRespuestas:
vi
existe con un estado distinto de cero, aunque sin detalles adicionales sobre su configuración, es difícil saber por qué. Si está utilizando muchos complementosvim
, puede intentar mover su.vimrc
archivo.vimrc.back
y ver si puede replicarlo. Existen algunas fuentes que analizan este problema, incluida al menos una con una posible solución:.vimrc
Sin embargo, intentaría eliminar el primero. Parece causar más consternación.fuente
git config --global core.editor /usr/bin/vim
arreglé.Como se respondió aquí: /programming/22699614/git-commit-messages-lost-by-vi
La verdadera solución es
De acuerdo con la documentación de vim -
-f option should be used when Vim is executed by a program that will wait for the edit session to finish
fuente
:W
y hacer que git rechace su mensaje de confirmación cuando lo guarda posteriormente.vim
invocación normal y el truco que están utilizando.¿Utilizas los complementos de golang vim? Esta línea me está causando el problema del valor de salida vi:
filetype plugin indent off
La eliminación de todo el bloque de complementos de golang
.vimrc
solucionó el problema. Instalar el complemento golang usando fugitivo puede ser tan fácil como:ln -s $GOROOT/misc/vim ~/.vim/bundle/vim-golang
(Acabo de documentar el problema en este número en el vim-golang github )
fuente
Algo está mal con la configuración de Git, supongo.
Entonces, la solución es restablecer la configuración de Git y funcionó para mí:
$(which vim)
es más flexible que/usr/bin/vim
(el ejecutable vim puede no estar disponible para algunas personas)fuente