Git commit en la terminal abre VIM, pero no puede volver a la terminal

209

Intentando aprender GitHub en este momento y haciendo este tutorial de Git essentials en nettuts. Estoy en la lección sobre hacer commits.

El profesor escribe git commity abre VIM como su editor (también me gustaría saber cómo abrirlo en Sublime Text 2) de todos modos, se abre en VIM y agrego 1 línea diciendo que este es mi primer commit y presiono guardar .

Luego, me pide que guarde la salida en el escritorio, algo que no vi en su screencast. Ahora todavía estoy en VIM y no estoy seguro de cómo volver al terminal 'normal' :(

No pude resolverlo, así que simplemente salí de la terminal y la volví a lanzar, ¡hice git commit nuevamente y recibí algunos mensajes de advertencia sobre duplicados! No estoy seguro si necesito de (E)edittodos modos o (A)abort.

estado git

ingrese la descripción de la imagen aquí

empuje

ingrese la descripción de la imagen aquí

mensaje cuando vuelvo a abrir la terminal y hago git commit nuevamente

ingrese la descripción de la imagen aquí

Leon Gaban
fuente
3
Si solo quiere saber cómo guardar y salir de vim, es : wq
guido
1
el mismo problema aquí ... tan pronto como intento comprometerme, el terminal abre algún tipo de editor del que no puedo salir. ¡Muy molesto!
Kokodoko
3
@Kokodoko, sí, acabo de comprometerme git commit -m 'my message'ahora, eso es todo :) no es necesario un editor, nunca necesité usar 1, solo necesité 1 liners.
Leon Gaban
1
Los mensajes de confirmación corta de @LeonGaban están bien para la primera confirmación, pero a partir de ellos debes tratar de adoptar la técnica de tener un tema breve y luego detallar lo que realmente sucedió en esa confirmación.
liamvictor 01 de
1
@LeonGaban eres increíble
baydi

Respuestas:

368

Para guardar su trabajo y salir, presione Escy luego :wq(w para escribir yq para salir).

Alternativamente, puede guardar y salir presionando Escy luego:x

Para establecer otro editor de ejecutar export EDITOR=myFavoriteEdioren su terminal, donde myFavoriteEdiorpuede ser vi, gedit, subl(por sublime), etc.

Gille
fuente
77
1 en la explicación de la secuencia de comandos y en el proceso que muestra cómo cambiar editores si es necesario (pero en serio, ¿por qué alguien que desee utilizar un editor distinto vim :)
Lieven Keersmaekers
15
NB Un simple :xguardar y salir de vim es un poco más rápido que :wq;)
Xavier
1
Para configurar el editor de forma permanente, puede usar: git config --global core.editor myFavoriteEditor
Machta
2
La clave esc no hace nada por mí. ¿Cuáles son estos comandos crípticos, es 2016 o 1996? Increíble ...
oyalhi
1
Totalmente no funciona. Sí, ingresé un mensaje de confirmación. Vim apesta.
Dave Kielpinski
40

en realidad no es la respuesta al problema de VIM, pero podría usar la línea de comando para ingresar también el mensaje de confirmación:

git commit -m "This is the first commit"
pkyeck
fuente
19

Debe volver al modo normal y guardar el mensaje de confirmación con

<Esc>:wq

o

<Esc>:x

o

<Esc>ZZ

La Esctecla lo regresa del modo de inserción al modo normal . El :wq, :xo ZZsecuencia escribe los cambios y sale del editor.

Lieven Keersmaekers
fuente
2
No ... la clave esc no hace nada. Estoy atrapado en "Combinar maestro de sucursal de ...". Ingrese un mensaje de confirmación para explicar por qué es necesaria esta fusión.
Kokodoko
¿ Ingresó un mensaje de confirmación? ¿Qué pasa cuando presionas <Esc>:wq?
Lieven Keersmaekers
2
En mi caso no pasa nada. ¿Cuáles son estos comandos crípticos, es 2016 o 1996?
oyalhi
1
@ Homo-Erectus: comencé a usar vim hace unos 4 años y lo único que lamento es que no comencé antes. No lo considero una pérdida de tiempo, deberías probarlo. Tiene una curva de aprendizaje empinada, pero valdrá la pena. En cuanto a los comandos, no tengo mucho que agregar. Escriba <esc>, escriba:, escriba x y eso debería ser.
Lieven Keersmaekers
@oyalhi Nunca es tarde para comenzar a usar vim
Anatoly Yakimchuk
16

Simplemente hacer el comando vim "guardar y salir" :wqdebería hacer el truco.

Para que Git lo abra en otro editor, debe cambiar la core.editorconfiguración de Git a un comando que ejecute el editor que desee.

git config --global core.editor "command to start sublime text 2"

Jani Hartikainen
fuente
44
Gracias por el consejo de configurar el editor para texto sublime. Yo topado con un problema sin embargo, tenía que establecer una --waitbandera: git config --global core.editor "subl --wait". Esto previeneAborting commit due to empty commit message.
Eric
16

Esto es en respuesta a tu pregunta ...

También me gustaría saber cómo abrirlo en Sublime Text 2

Para ventanas:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

Compruebe que la ruta sublime_text.exesea ​​correcta y ajústela si es necesario.

Para Mac / Linux:

git config --global core.editor "subl -n -w"

Si recibe un mensaje de error como:

error: Hubo un problema con el editor 'subl -n -w'.

Crea el alias para subl

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

Nuevamente verifique que la ruta coincida con su máquina.

Para Sublime Text, simplemente guarde cmd Sy cierre la ventana cmd Wpara volver a git.

mhatch
fuente