O commit do Git no terminal abre o VIM, mas não pode voltar ao terminal


209

Tentando aprender o GitHub no momento e executando este tutorial sobre fundamentos do Git, no nettuts. Estou na lição de como fazer confirmações.

O professor digita git commite abre o VIM como seu editor (eu também gostaria de saber como abri-lo no Sublime Text 2) de qualquer maneira, ele abre no VIM e adiciono uma linha dizendo que este é meu primeiro commit e pressione save .

Em seguida, ele solicita que eu salve a saída na área de trabalho, algo que não vi em seu screencast. Agora ainda estou no VIM e não sei como voltar ao terminal 'normal' :(

Como não consegui descobrir, saí do terminal e o reiniciei, git commit novamente e recebi algumas mensagens de aviso sobre duplicatas! Não tenho certeza se eu preciso de (E)editqualquer maneira ou (A)abort.

status git

insira a descrição da imagem aqui

vim

insira a descrição da imagem aqui

mensagem quando eu reabrir o terminal e git commit novamente

insira a descrição da imagem aqui


3
f você só quer saber como salvar e sair vim, é : wq
guido

1
mesmo problema aqui ... assim que tento confirmar, o terminal abre algum tipo de editor do qual não consigo sair. Muito irritante!
Kokodoko 25/05

3
@Kokodoko yeah Acabo de me comprometer git commit -m 'my message'agora, é isso :) não há necessidade de um editor, nunca foi necessário usar 1, apenas 1 forros.
Leon Gaban

1
As mensagens curtas de confirmação do @LeonGaban são válidas para a primeira confirmação, mas a partir delas, você deve tentar adotar a técnica de ter um assunto breve e, em seguida, detalhar o que realmente aconteceu nessa confirmação.
Liamvictor 01/07/2015

1
@LeonGaban você é incrível
baydi 25/11

Respostas:


368

Para salvar seu trabalho e sair, pressione Esce depois :wq(w para gravação e q para sair).

Como alternativa, você pode salvar e sair pressionando Esce:x

Para definir outro editor de executar export EDITOR=myFavoriteEdiorem seu terminal, onde myFavoriteEdiorpode ser vi, gedit, subl(para sublime) etc.


7
+1 em explicar a seqüência de comandos e, no processo, mostrando como alternar editores se necessário (mas sério, por que alguém iria querer usar um editor que não vim :)
Lieven Keersmaekers

15
NB Um simples :xsalvar e sair vim é um pouco mais rápido do que :wq;)
Xavier

1
Para definir o editor permanentemente, você pode usar: git config --global core.editor myFavoriteEditor
Machta

2
A tecla esc não faz nada para mim. O que são esses comandos enigmáticos, são 2016 ou 1996? Incrível ...
oyalhi

1
Totalmente não funciona. Sim, digitei uma mensagem de confirmação. Vim é uma merda.
Dave Kielpinski

40

não é realmente a resposta para o problema do VIM, mas você pode usar a linha de comando para também inserir a mensagem de confirmação:

git commit -m "This is the first commit"

19

Você precisa retornar ao modo normal e salvar a mensagem de confirmação com

<Esc>:wq

ou

<Esc>:x

ou

<Esc>ZZ

A Esctecla retorna do modo de inserção para o modo normal . A sequência :wq, :xou ZZgrava as alterações e sai do editor.


2
Não ... a tecla esc não faz nada. Estou preso em "Merge branch master of ..." Digite uma mensagem de confirmação para explicar por que essa mesclagem é necessária.
Kokodoko 25/05

Você inseriu uma mensagem de confirmação? O que acontece quando você pressiona <Esc>:wq?
Lieven Keersmaekers

2
No meu caso, nada acontece. O que são esses comandos enigmáticos, são 2016 ou 1996?
Oyalhi

1
@ Homo-Erectus - Comecei a usar o vim há 4 anos e meu único arrependimento é não ter começado antes. Não considero perda de tempo, você deveria tentar. Ele tem uma curva de aprendizado íngreme, mas valerá a pena. Quanto aos comandos, não tenho muito a acrescentar. Digite <esc>, digite:, digite x e deve ser isso.
Lieven Keersmaekers

@oyalhi Nunca é tarde para começar a usar o vim
Anatoly Yakimchuk

16

Simplesmente fazer o comando vim "salvar e sair" :wqdeve fazer o truque.

Para que o Git o abra em outro editor, você precisa alterar a core.editorconfiguração do Git para um comando que executa o editor que você deseja.

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


4
Obrigado pela dica sobre como definir o editor para sublimar o texto. I fez para um problema, porém, eu tive que definir um --waitsinalizador: git config --global core.editor "subl --wait". Isso evitaAborting commit due to empty commit message.
Eric

16

Isso está em resposta à sua pergunta ...

Também gostaria de saber como abri-lo no Sublime Text 2

Para Windows:

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

Verifique se o caminho sublime_text.exeestá correto e ajuste, se necessário.

Para Mac / Linux:

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

Se você receber uma mensagem de erro como:

erro: houve um problema com o editor 'subl -n -w'.

Crie o alias para subl

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

Verifique novamente se o caminho corresponde à sua máquina.

Para Sublime Text, basta salvar cmd Se fechar a janela cmd Wpara retornar ao git.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.