Tengo este extraño problema con el uso de vi
como editor para git commit -a
.
El flujo normal es: git commit -a
, vi
aparece, ingreso mi post de confirmación, y luego :wq
para save y salir de vi
.
Esto funciona bien Sin embargo, a veces hago un error tipográfico y en vez de :wq
:Wq
(porque uso el desplazamiento para :wq
. Luego, cuando me corrijo y :wq
nuevamente, 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 configuration, es difícil decir por qué. Si está utilizando una gran cantidad de complementos para vim
, puede intentar mover su file .vimrc.back
a .vimrc.back
y ver si puede replicar. Hay algunas fonts que discuten este problema, incluyendo al less uno con una posible solución:
git config --global core.editor /usr/bin/vim
Sin embargo, trataría de eliminar tu .vimrc
primero. Parece causar más consternación.
Como se responde 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 documentation de vim, la -f option should be used when Vim is executed by a program that will wait for the edit session to finish
¿Utiliza los complementos de golang vim? Esta línea está causando el problema de valor de salida vi para mí: filetype plugin indent off
La eliminación de todo el bloque del complemento .vimrc
en .vimrc
solucionó el problema. Instalar el complemento de 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 tema en el vim-golang github )
Algo está mal con la configuration de Git, supongo.
Entonces la solución es restablecer la configuration de Git y funcionó para mí:
git config --global core.editor $(which vim)
$(which vim)
es más flexible que /usr/bin/vim
(el ejecutable vim puede no estar disponible para algunas personas)