2010-11-03 15 views
128

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 valores de pick a edit cuando corresponda y luego a :wq.No se pudo ejecutar el editor

Resultado: Could not execute editor

El ajuste core.editor en mi .gitconfig mundial es vi (También he cambiado a vim en un movimiento tremendamente desesperado). Intenté usar mate, pero eso ni siquiera abrió la lista inicial correctamente, así que la cambié de nuevo.

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

+1

La fuente incluye 'git_editor "$ TODO" || die_abort "No se pudo ejecutar el editor" '. Como dices que el editor realmente aparece, eso significa que devuelve un código de salida distinto de cero. ¿Puedes replicar ese comportamiento usándolo normalmente en la línea de comandos? – Cascabel

+0

Lo que me resulta extraño es que vi se inicia para mostrar la lista de confirmaciones, pero cuando guardo y cerré todo, simplemente muere. Vea mi respuesta para el cambio que hice para que mágicamente empiece a funcionar. –

+0

¿Qué sistema operativo estaba ejecutando? Ejecutando OSX Lion tuve el mismo problema y tu respuesta lo solucionó. +1 –

Respuesta

171

Ayer fue solo uno de esos días. Por suerte, decidí establecer el camino completo a vi (por ejemplo, /usr/bin/vi) en lugar de solo el ejecutable. Ahora todo funciona. Debo admitir que no lo entiendo porque vi es perfectamente ejecutable por sí mismo (mi variable de env $EDITOR también está configurada en vi), pero está funcionando y mi karma técnico no ha sido tan bueno últimamente, así que tal vez no debería hacerlo. 't question the deities will ...

+5

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

+111

Lo puse en mi archivo de configuración global: 'git config --global core.editor"/usr/bin/vim "'. –

+2

Extraño, pero eso funcionó para mí también. – EndangeredMassa

4

Tuve este problema, y ​​fue causado por una parte del complemento vcscommand para vim. vim comenzando con cualquiera de estos comandos se tradujo en código de salida 1 ("error"):

  • vi
  • vim

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

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

que era capaz de rastrear de nuevo al complemento específico mediante la desactivación de ~/.vimrc y archivos en ~/.vim renombrándolos y funcionando vi -c q ; echo $? a correr rápidamente vim e imprimir el código de salida.

+1

Tuve el mismo problema y establecí la ruta completa a vim trabajado: git config --global core.editor /usr/bin/vim – James

+0

Otro posible culpable parece ser [el complemento de patógeno en Mac OS X] (http : //pivotallabs.com/ny-stand-up-gonna-get-down-on-friday-the-13th/). – sschuberth

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 fue degradado repentinamente a 1.7.2, tal vez debido a una importante actualización de XCode. ..

0

Tuve este problema también cuando ya tenía vim abierto para una rebase en otra terminal. Comencé la rebase, me interrumpieron, y cuando volví lo intenté desde cero en la otra terminal, sin darme cuenta de que estaba en el medio de la misma rebase en otro lado. Solo terminar la sesión de vim rebase en la otra terminal funcionó bien.

1

Me llevó un tiempo rastrear mi problema a uno de mis complementos.

(concretamente, se https://github.com/ervandew/supertab)

supongo que es el lado negativo de actualizar automáticamente todos mis plugins.

El mejor consejo es deshabilitar la mitad de su vimrc y complementos. Si eso no ayuda, el problema está en tu otra mitad.

+0

Tengo el mismo problema con supertab. – harithski

+0

¿Cómo lo rastreó hasta supertab? Esa sería una información realmente útil. –

0

Por extraño que parezca, intentarlo otra vez funcionó para mí.

Mis variables coreeditor y $ EDITOR no están configuradas.

3

Para mí, era un problema con mi .vimrc. El cambio de nombre temporal de ese archivo lo solucionó. Seguido por la depuración de mi .vimrc. Esto es muy similar a la experiencia de ignu.

+0

Sí, tuve! Silentchemcheme macvim en mi .vimrc, para establecer el esquema de colores a eso si existía, y para no molestarme si no lo hacía (para que la línea de comando vim funcionara). Por otro lado, eso cambió el estado de salida a 1 cuando falló, ¡incluso con silencio !. – Max

127

El siguiente comando

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

arregla.

[editar]

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

+4

Para Windows por ejemplo (faltan comillas simples, era mi problema): git config --global core.editor "'C: \ Archivos de programa (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

+0

¡De hecho lo fue! esto funcionó para mí, ¡gracias! – davidawad

3

si se quería por cualquier razón sublime uso que podría hacer algo como lo siguiente en el archivo de configuración global:

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