Git commit w terminalu otwiera VIM, ale nie może wrócić do terminala

209

Próbuję w tej chwili nauczyć się GitHub i wykonać ten samouczek Git Essentials w nettuts. Uczę się o robieniu zobowiązań.

Nauczyciel pisze git commiti otwiera VIM jako jego edytor (chciałbym też wiedzieć, jak go otworzyć w Sublime Text 2), tak czy inaczej, otwiera się w VIM i dodam w 1 linii, mówiąc, że to jest moje pierwsze zatwierdzenie i wciśnięcie save .

Następnie monituje mnie o zapisanie danych wyjściowych na pulpicie, czego nie widziałem w jego screencastie. Teraz nadal korzystam z VIM i nie jestem pewien, jak wrócić do „normalnego” terminala :(

Nie mogłem tego rozgryźć, więc po prostu wyszedłem z terminala i uruchomiłem go ponownie, ponownie wykonałem polecenie i miałem kilka ostrzeżeń o duplikatach! Nie wiem, czy muszę (E)editjakikolwiek albo (A)abort.

status git

wprowadź opis zdjęcia tutaj

wigor

wprowadź opis zdjęcia tutaj

wiadomość, gdy ponownie otwieram terminal i ponownie wykonuję polecenie git

wprowadź opis zdjęcia tutaj

Leon Gaban
źródło
3
Jeśli chcesz tylko wiedzieć, jak zapisać i zamknąć vima, to : wq
guido
1
ten sam problem tutaj ... jak tylko spróbuję zatwierdzić, terminal otwiera jakiś edytor, z którego nie mogę wyjść. Bardzo irytujące!
Kokodoko
3
@Kokodoko tak, po prostu się git commit -m 'my message'teraz zgadzam , to jest to :) nie potrzeba edytora, nigdy nie potrzebowałem używać 1, potrzebowałem tylko 1 linijki.
Leon Gaban,
1
@LeonGaban krótkie komunikaty zatwierdzania są w porządku dla pierwszego zatwierdzenia, ale od nich powinieneś spróbować zastosować technikę posiadania krótkiego tematu, a następnie szczegółowo opisać, co faktycznie się wydarzyło w tym zatwierdzeniu.
liamvictor
1
@LeonGaban jesteś niesamowity
baydi

Odpowiedzi:

368

Aby zapisać pracę i wyjść, naciśnij, Esca następnie :wq(w, aby zapisać i q, aby wyjść).

Alternatywnie możesz zarówno zapisać, jak i wyjść, naciskając, Esca następnie:x

Aby ustawić inny edytor uruchomić export EDITOR=myFavoriteEdiorna swoim terminalu, gdzie myFavoriteEdiormogą być vi, gedit, subl(dla wzniosłości) etc.

Gille
źródło
7
+1 po objaśnieniu sekwencji poleceń oraz w trakcie pokazania, jak w razie potrzeby przełączać edytory (ale poważnie, dlaczego ktoś miałby chcieć korzystać z edytora innego niż vim :)
Lieven Keersmaekers
15
NB Prosty :xzapis i zamknięcie vima jest nieco szybszy niż :wq;)
Xavier,
1
Aby ustawić edytor na stałe, możesz użyć: git config --global core.editor myFavoriteEditor
Machta
2
Klawisz esc nic dla mnie nie robi. Co to za tajemnicze polecenia, czy to 2016 czy 1996? Niesamowite ...
oyalhi
1
Zupełnie nie działa. Tak, wprowadziłem komunikat zatwierdzenia. Vim jest do bani.
Dave Kielpinski
40

tak naprawdę nie jest to odpowiedź na problem VIM, ale możesz użyć wiersza polecenia, aby wprowadzić również komunikat zatwierdzenia:

git commit -m "This is the first commit"
dziobak
źródło
19

Musisz powrócić do trybu normalnego i zapisać komunikat zatwierdzenia za pomocą jednego z nich

<Esc>:wq

lub

<Esc>:x

lub

<Esc>ZZ

W Escpowoduje powrót z wkładką trybie do normalnego trybu. :wq, :xLub ZZsekwencja zapisuje zmiany i wyjście z edytora.

Lieven Keersmaekers
źródło
2
Nie ... Klawisz Esc nic nie robi. Utknąłem w polu „Scal master master of ...”. Wprowadź komunikat zatwierdzenia, aby wyjaśnić, dlaczego scalenie jest konieczne.
Kokodoko
Czy wprowadziłeś komunikat zatwierdzenia? Co się stanie, gdy naciśniesz <Esc>:wq?
Lieven Keersmaekers
2
W moim przypadku nic się nie dzieje. Co to za tajemnicze polecenia, czy to 2016 czy 1996?
oyalhi
1
@ Homo-Erectus - zacząłem używać vima jakieś 4 lata temu i żałuję tylko, że nie zacząłem wcześniej. Nie uważam, żeby to był czas stracony, powinieneś spróbować. Ma ostrą krzywą uczenia się, ale warto. Jeśli chodzi o polecenia, nie mam wiele do dodania. Wpisz <esc>, wpisz:, wpisz x i to powinno być to.
Lieven Keersmaekers
@oyalhi Nigdy nie jest za późno, aby zacząć korzystać z vima
Anatolij Jakimczuk
16

Po prostu wykonanie polecenia vim „zapisz i wyjdź” :wqpowinno załatwić sprawę.

Aby Git otworzył go w innym edytorze, musisz zmienić core.editorustawienie Git na polecenie uruchamiające żądany edytor.

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

Jani Hartikainen
źródło
4
Dziękujemy za wskazówkę dotyczącą ustawienia edytora na wysublimowany tekst. I nie napotkasz jeden problem chociaż musiałem ustawić --waitflagę: git config --global core.editor "subl --wait". Zapobiega toAborting commit due to empty commit message.
Eric
16

To odpowiedź na twoje pytanie ...

Chciałbym również wiedzieć, jak otworzyć go w Sublime Text 2

Dla Windowsa:

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

Sprawdź, czy ścieżka dla sublime_text.exejest poprawna i dostosuj w razie potrzeby.

W systemie Mac / Linux:

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

Jeśli pojawi się komunikat o błędzie, taki jak:

błąd: Wystąpił problem z edytorem „subl -n -w”.

Utwórz alias dla subl

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

Ponownie sprawdź, czy ścieżka pasuje do twojego komputera.

W przypadku Sublime Text wystarczy zapisać cmd Si zamknąć okno, cmd Waby powrócić do git.

mhatch
źródło