Mam ten dziwny problem z używaniem vi
jako edytora git commit -a
.
Normalny przepływ: piszę git commit -a
, vi
pojawia się, wpisuję komunikat zatwierdzenia, a następnie :wq
zapisuję i kończę vi
.
To działa dobrze. Czasami jednak piszę literówkę i zamiast tego :wq
piszę :Wq
(bo używam klawisza shift :
). Następnie, gdy poprawiam się i piszę :wq
ponownie , pojawia się git
następujący błąd:
error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.
Jak mogę to naprawić?
mountain-lion
terminal
git
vi
houbysoft
źródło
źródło
git
ivi
? Nie mogę tego zrobić z vimem 7.3, git w wersji 1.7.11.1.7.3
and git1.7.9.6 (Apple Git-31.1)
, the default the Mountain LionOdpowiedzi:
vi
istnieje ze statusem niezerowym, chociaż bez dodatkowych szczegółów na temat konfiguracji trudno jest powiedzieć dlaczego. Jeśli używasz wielu wtyczekvim
, możesz spróbować przenieść.vimrc
plik do.vimrc.back
i sprawdzić, czy możesz się replikować. Istnieje kilka źródeł , które omawiają ten problem, w tym co najmniej jeden z potencjalnym rozwiązania:Spróbowałbym jednak usunąć twój
.vimrc
pierwszy. Wydaje się, że powoduje to więcej konsternacji.źródło
git config --global core.editor /usr/bin/vim
naprawiłem to.Odpowiedzi tutaj: /programming/22699614/git-commit-messages-lost-by-vi
Prawdziwe rozwiązanie to
Według dokumentacji vima -
-f option should be used when Vim is executed by a program that will wait for the edit session to finish
źródło
:W
i git odrzuca komunikat zatwierdzenia, gdy później go zapisać.vim
wywołaniem a włamaniem, którego używają.Czy korzystasz z wtyczek golang vim? Ten wiersz powoduje dla mnie problem z wartością wyjścia vi:
filetype plugin indent off
Usunięcie całego bloku wtyczki golang
.vimrc
rozwiązało problem. Instalowanie wtyczki golang przy użyciu zbiegów może być tak proste, jak:ln -s $GOROOT/misc/vim ~/.vim/bundle/vim-golang
(Właśnie udokumentowałem problem w tym numerze na githubie vim-golang )
źródło
Coś jest nie tak z konfiguracją Git.
Rozwiązaniem jest zresetowanie konfiguracji Git i zadziałało to dla mnie:
$(which vim)
jest bardziej elastyczny niż/usr/bin/vim
(niektóre pliki wykonywalne vim mogą nie być dostępne)źródło