24 votos

error: Hubo un problema con el editor 'vi' al usarlo con git

Tengo este extraño problema con el uso de vi como editor de git commit -a .

El flujo normal es: Tipo I git commit -a , vi aparece, introduzco mi mensaje de confirmación, y luego :wq para guardar y salir de vi .

Esto funciona bien. Sin embargo, a veces cometo un error tipográfico y en lugar de :wq Tipo I :Wq (porque uso el turno para : ). Entonces, cuando me corrijo y escribo :wq de nuevo, 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 solucionarlo?

0 votos

¿Qué versión de git y vi ? No puedo reproducir esto con vim 7.3, versión git 1.7.11.1.

0 votos

@Christopher : vi 7.3 y git 1.7.9.6 (Apple Git-31.1) los que vienen por defecto en Mountain Lion, según parece

28voto

applOOb Puntos 171

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

Según 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

3 votos

Finalmente... esta es la solución correcta. También soluciona el problema de golpear :W y que git rechace su mensaje de confirmación cuando lo guarde posteriormente.

0 votos

Una solución que es realmente una solución y no un truco poco convincente. Realmente espero que la gente que lea la respuesta aceptada entienda la diferencia entre su vim invocación y el hack que están utilizando.

19voto

Christopher Puntos 326

vi existe con un estado distinto de cero, aunque sin detalles adicionales sobre su configuración, es difícil decir por qué. Si estás usando muchos plugins para vim podría intentar mover su .vimrc archivo a .vimrc.back y ver si se puede replicar. Hay un algunas fuentes que discutir este problema, incluyendo al menos uno con una solución potencial:

git config --global core.editor /usr/bin/vim

Yo trataría de eliminar su .vimrc Sin embargo, primero. Parece que causa más consternación.

5 votos

Gracias, git config --global core.editor /usr/bin/vim lo arreglé.

3 votos

La solución de @applOOb es mejor, ya que no es un hack como este.

1voto

Tim Jarvis Puntos 12024

¿Utilizas los plugins de golang vim? Esta línea está causando el problema del valor de salida de vi para mí: filetype plugin indent off

Eliminando todo el bloque de plugins de golang en .vimrc Se ha solucionado el problema. Instalar el plugin 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 )

0voto

ericn Puntos 128

Supongo que algo está mal en la configuración de Git.

Así que la solución es restablecer la configuración de Git y me ha funcionado:

git config --global core.editor $(which vim)

$(which vim) es más flexible que /usr/bin/vim (el ejecutable de vim puede no estar ahí para algunas personas)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X