Tengo este extraño problema con el uso vicomo editor de git commit -a.
El flujo normal es: escribo git commit -a, viaparece, ingreso mi mensaje de confirmación y luego :wqguardar y salir vi.
Esto funciona bien Sin embargo, a veces hago un error tipográfico y en lugar de :wqescribir :Wq(porque uso el cambio para :). Luego, cuando me corrijo y escribo de :wqnuevo, gitaparece 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

gityvi? No puedo reprobar esto con vim 7.3, git versión 1.7.11.1.7.3y git1.7.9.6 (Apple Git-31.1), los predeterminados en Mountain Lion afaikRespuestas:
viexiste 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.vimrcarchivo.vimrc.backy ver si puede replicarlo. Existen algunas fuentes que analizan este problema, incluida al menos una con una posible solución:.vimrcSin embargo, intentaría eliminar el primero. Parece causar más consternación.fuente
git config --global core.editor /usr/bin/vimarreglé.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 finishfuente
:Wy hacer que git rechace su mensaje de confirmación cuando lo guarda posteriormente.viminvocació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 offLa eliminación de todo el bloque de complementos de golang
.vimrcsolucionó 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