Eu tenho esse problema estranho ao usar vi
como editor para git commit -a
.
O fluxo normal é: digito git commit -a
, vi
aparece, insiro minha mensagem de confirmação e, em seguida, :wq
para salvar e sair de vi
.
Isso funciona bem. No entanto, às vezes eu faço um erro de digitação e em vez de :wq
tipo I :Wq
(porque eu uso a mudança para :
). Então, quando eu me corrijo e digito :wq
novamente, git
dá o seguinte erro:
error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.
Como posso consertar isso?
mountain-lion
terminal
git
vi
houbysoft
fonte
fonte
git
evi
? Não consigo reproduzir isso com o vim 7.3, git versão 1.7.11.1.7.3
e git1.7.9.6 (Apple Git-31.1)
, os default no Mountain Lion afaikRespostas:
vi
existe com um status diferente de zero, embora sem detalhes adicionais sobre sua configuração, é difícil dizer o porquê. Se você estiver usando muitos plug-insvim
, tente mover o.vimrc
arquivo.vimrc.back
e veja se é possível replicar. Existem algumas fontes que discutem esse problema, incluindo pelo menos uma com uma solução potencial:Eu tentaria remover o seu
.vimrc
primeiro, no entanto. Parece causar mais consternação.fonte
git config --global core.editor /usr/bin/vim
consertou.Como respondido aqui: /programming/22699614/git-commit-messages-lost-by-vi
A verdadeira solução é
De acordo com a documentação do vim -
-f option should be used when Vim is executed by a program that will wait for the edit session to finish
fonte
:W
e fazer com que o git rejeite sua mensagem de confirmação quando você a salvar posteriormente.vim
invocação normal e o hack que estão usando.Você usa os plugins golang vim? Esta linha está causando o problema do valor de saída vi para mim:
filetype plugin indent off
A remoção de todo o bloco do plugin golang
.vimrc
corrigiu o problema. A instalação do plugin golang usando o fugitivo pode ser tão fácil quanto:ln -s $GOROOT/misc/vim ~/.vim/bundle/vim-golang
(Acabei de documentar o problema nesta edição no github vim-golang )
fonte
Algo está errado com a configuração do Git, eu acho.
Portanto, a solução é redefinir a configuração do Git e funcionou para mim:
$(which vim)
é mais flexível do que/usr/bin/vim
(o executável vim pode não estar disponível para algumas pessoas)fonte