Tengo este extraño problema con vi
el uso 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
guardo y salgo de vi
.
Esto funciona bien. Sin embargo, a veces cometo un error tipográfico y en lugar de :wq
escribir :Wq
(porque uso el cambio para :
). Luego, cuando me corrijo y :wq
vuelvo a escribir, git
da 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?
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 complementos para vim
, puede intentar mover su .vimrc
archivo .vimrc.back
y ver si puede replicarlo. Hay algunas fuentes que analizan este problema, incluida al menos una con una posible solución:
git config --global core.editor /usr/bin/vim
Sin embargo, intentaría eliminar el .vimrc
primero. Parece causar más consternación.
git config --global core.editor /usr/bin/vim
lo arreglé.Como se respondió aquí: https://stackoverflow.com/questions/22699614/git-commit-messages-lost-by-vi
La verdadera solución es
git config --global core.editor vim -f
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
:W
y hacer que git rechace su mensaje de confirmación cuando lo guarde posteriormente.vim
invocación normal y el truco que están usando.git config --global core.editor 'vim -f'
de lo contrario -f
, no se incluirán.¿Utiliza los complementos golang vim? Esta línea me está causando el problema del valor de salida de vi:filetype plugin indent off
Eliminar todo el bloque del complemento golang .vimrc
solucionó el problema. Instalar el complemento golang usando fugitive 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 vim-golang github )
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í:
git config --global core.editor $(which vim)
$(which vim)
es más flexible que /usr/bin/vim
(vim ejecutable puede no estar allí para algunas personas)
Cristóbal
git
yvi
? No puedo reproducir esto con vim 7.3, git versión 1.7.11.1.houbysoft
7.3
y git1.7.9.6 (Apple Git-31.1)
, los predeterminados en Mountain Lion afaik