No se pudo ejecutar el editor


153

A menudo no tengo que modificar varios mensajes de confirmación, pero ha sucedido una o dos veces y nunca recuerdo haber visto esto. Espero que alguien más lo haya hecho. Cuando yo git rebase -i HEAD~7, la lista esperada se abre en vi exactamente como se esperaba. Cambio los pickvalores a editdonde sea apropiado y luego :wq.

No se pudo ejecutar el editor

La core.editorconfiguración en mi global .gitconfiges vi(también lo he cambiado a vimun movimiento desesperado). Intenté usarlo mate, pero eso ni siquiera abrió la lista inicial correctamente, así que lo cambié de nuevo.

Estoy usando v1.7.3 y agradecería cualquier sugerencia.


1
La fuente incluye git_editor "$TODO" || die_abort "Could not execute editor". Como usted dice que el editor realmente aparece, eso significa que está devolviendo un código de salida distinto de cero. ¿Puedes replicar ese comportamiento usándolo normalmente en la línea de comandos?
Cascabel el

Lo extraño para mí es que vi se inicia para mostrar la lista de confirmaciones, pero cuando guardo y cierro todo simplemente muere. Vea mi respuesta para el cambio que hice para que mágicamente comience a funcionar.
Rob Wilkerson el

¿Qué sistema operativo estabas ejecutando? Al ejecutar OSX Lion tuve el mismo problema y su respuesta lo solucionó. +1
Adam Lewis

@ AdamLewis - No puedo estar seguro ahora, pero probablemente 10.6 o .7 dada la fecha. OSX, seguro.
Rob Wilkerson

55
Creo que creé este problema cuando utilicé homebrew para instalar un nuevo vim. La configuración git config --global core.editor "/usr/local/bin/vim"me lo arregló.
mmell

Respuestas:


185

Ayer fue solo uno de esos días. En una alondra, decidí establecer la ruta completa a vi (por ejemplo /usr/bin/vi) en lugar de solo el ejecutable. Ahora todo funciona. Tengo que admitir que no lo entiendo, ya que vies perfectamente ejecutable por sí solo (mi $EDITORvariable env también está configurada en vi), pero funciona y mi karma técnico no ha sido tan bueno últimamente, así que tal vez no debería cuestionar las deidades ...


66
¿Dónde configuró la ruta completa a / usr / bin / vi?
Amala

131
Lo puse en mi archivo de configuración global: git config --global core.editor "/usr/bin/vim".
Rob Wilkerson el

Tuve el mismo problema. Por razones que no puedo entender, mi configuración core.editor se estableció en / user / bin / vim en lugar de / usr / bin / vim
jonnybot

Tuve el mismo problema pero con Sublime Text: la ruta completa finalmente resolvió las cosas. Lo cual fue extraño porque estoy seguro de que todo funcionó bien antes de todos modos ...: - \
Hal

git config --global color.editor "/usr/local/bin/vim"funcionó para mí :), gracias
przbadu

159

El siguiente comando

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

lo arregla

[editar]

Ahora veo que alguien ya lo publicó en los comentarios. Espero que siga siendo útil para algunas personas ciegas como yo.


66
Para Windows, por ejemplo (faltan comillas simples, fue mi problema): git config --global core.editor "'C: \ Program Files (x86) \ Vim \ vim74 \ vim.exe'"
chrjs

1
Sí, esto ^. Para aclarar esto, use comillas dobles alrededor de comillas simples alrededor de la ruta al ejecutable.
Jacob

¡Funciona de maravilla!
R11G

7

A diferencia de las otras respuestas aquí hasta ahora, para mí el uso de la ruta absoluta a vi y la configuración de git core.editorno fueron suficientes para resolver el problema. (Esos ya estaban en su lugar).

En mi situación, el problema se resolvió agregando la -fbandera al comando vi:

git config --global core.editor '/usr/bin/vi -f'

Una vez que esta -fopción está en su lugar, puedo usar git rebase -i, y cuando guardo y salgo de la lista de confirmación, la nueva versión continúa como debería en lugar de dar el error "no se pudo ejecutar el editor".

La página de manual de vim dice con respecto a la opción -f,

Para la versión GUI, Vim no se bifurcará y se separará del shell en el que se inició. ... Esta opción debe usarse cuando Vim es ejecutado por un programa que esperará a que termine la sesión de edición (por ejemplo, correo).

Bueno, no estoy usando una versión GUI, que yo sepa. Estoy corriendo giten la línea de comando bash en una ventana de terminal en masOS Sierra 10.12.6. Pero como git rebase -iespera a que termine la sesión de edición, supongo que es por eso que la -fopción es necesaria aquí. Tal vez vim (sin -f) intenta bifurcarse / separarse del shell por alguna razón que no he podido entender.


6

Tuve este problema y fue causado por alguna parte del complemento vcscommand para vim. El inicio de vim con cualquiera de estos comandos dio como resultado el código de salida 1 ("error"):

  • vi
  • vim

Pero estos me dieron el código de salida 0 ("éxito"):

  • /usr/bin/vi
  • /usr/bin/vim
  • vi -u NONE
  • vim -u NONE

Pude rastrearlo hasta el complemento específico al deshabilitar ~/.vimrcy a los archivos ~/.vimrenombrándolos y ejecutándolos vi -c q ; echo $?para ejecutar rápidamente vim e imprimir el código de salida.


1
Tuve el mismo problema y la configuración de la ruta completa a vim funcionó: git config --global core.editor / usr / bin / vim
James

Otro posible culpable parece ser el complemento de patógenos en Mac OS X .
sschuberth

3

Para mí, fue un problema con mi .vimrc. Cambiar el nombre de ese archivo temporalmente lo arregló. Seguido por la depuración de mi .vimrc. Esto es muy similar a la experiencia de ignu.


Sí, tenía! Silencioso colorscheme macvim en mi .vimrc, para establecer el esquema de colores a ese si existía, y no molestarme si no existía (por lo que la línea de comando vim funcionaría). Por otro lado, eso cambió el estado de salida a 1 cuando falló, incluso con silencio.
Max

3

Si, por alguna razón, quisiera usar sublime, podría hacer algo como lo siguiente en su archivo de configuración global:

 git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"

1

Solo me tomó un tiempo localizar mi problema en uno de mis complementos.

(específicamente, era https://github.com/ervandew/supertab )

Supongo que esa es la desventaja de actualizar automáticamente todos mis complementos.

Así que el mejor consejo, deshabilita la mitad de tu vimrc y complementos. Si eso no ayuda, el problema está en tu otra mitad.


Tengo el mismo problema con supertab.
harithski

¿Cómo lo rastreaste para superar? Esa sería una información realmente útil.
Justin Force

1

Otra opción es usar el nanoeditor.

$ whereis nano
$ git config --global core.editor path/to/nano

Lo arregla


1

Intenté aplastar las confirmaciones como se muestra aquí https://www.youtube.com/watch?v=V5KrD7CmO4o . Mi editor git (notepad ++) se abrió en el paso de rebase. Pero, en el paso de mensaje de confirmación de modificación, vi el problema "No se pudo ejecutar el editor". Probablemente sucedió porque la configuración del editor git era incorrecta y también porque instalé notepad ++ en una ubicación no estándar en mi sistema de Windows. Es decir, 'git config core.editor' me dio notepad++ -multilnst- nosession.

Para solucionar el problema, proporcione una ruta completa como esta:

git config --global core.editor "'C:\CustomFolder\NPP\notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Consulte: https://www.youtube.com/watch?v=YLxdkcT6H4g


0

¿Estás seguro de que / usr / bin / vim estaba en 1.7.3? Tuve el mismo problema porque tenía instalado el complemento de copia de seguridad, que solo es compatible con 1.7.3 y, por alguna razón, / usr / bin / vim se redujo repentinamente a 1.7.2, tal vez debido a una actualización importante de XCode. ..


0

También tuve este problema cuando ya tenía vim abierto para un rebase en otra terminal. Había comenzado el rebase, me interrumpieron, y cuando regresé lo intenté nuevamente desde cero en la otra terminal, sin darme cuenta de que estaba en el medio del mismo rebase en otro lugar. Simplemente terminar la sesión de vim rebase en la otra terminal funcionó bien.


0

Por extraño que parezca, intentarlo de nuevo funcionó para mí.

Mis variables core.editor y $ EDITOR no están configuradas.


0

Para mí, usando Windows: cierre el terminal actual y abra otro (win + R, escriba 'cmd', luego 'enter'), y de repente funciona.


0

Solución VS Code:

git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron"

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.