Jak mogę używać emacsa z git w terminalu?
On 31 grudnia, 2020 by admin Użyłem git config --global core.editor emacs
, aby ustawić mój edytor git jako emacs, ale kiedy to zrobię i zatwierdzę coś, edytor otwiera nowe okno zamiast otwierania emacsa w terminalu. Chcę używać emacsa tak, jakby podano mu -nw, ale napisanie tego -> git config --global core.editor emacs -nw
nie jest rozwiązaniem.
Na razie muszę używać podstawowego gita.
Komentarze
- Czy wiesz o magit? powiew z Emacsa. magit.vc
- Tak. Czy ' nie używać na razie. Po zajęciach ' awansuję na magit.
- Powinieneś opisać, co się stanie, gdy dodasz " -nw " zamiast po prostu stwierdzić, że " nie jest rozwiązaniem ". U mnie działa, gdy komenda jest poprawnie zmieniona.
Odpowiedz
Kiedy uruchamiasz git config --global core.editor emacs -nw
, twoja powłoka dzieli wiersz poleceń na słowa przed wywołaniem git. Git widzi więc „emacs -nw” jako dwa oddzielne argumenty. Potrzebuje tylko jednego, aby umieścić go w pliku konfiguracyjnym, więc drugi jest ignorowany. (Właściwie to „to kłamstwo, ale możesz sprawdzić szczegóły na stronie podręcznika). Możesz umieścić serię słów w cudzysłowie, aby powiedzieć powłoce, aby ich nie rozbijała: git config --global core.editor "emacs -nw"
daj „emacs -nw” do git jako pojedynczy argument, który zrobi to, co chcesz.
Odpowiedź
Nie określasz co jest nie tak z otwieraniem nowego okna GUI emacsa. Jeśli problemem jest długi czas uruchamiania, możesz rozważyć użycie emacsclienta jako edytora. Krótko mówiąc, uruchamiasz (server-start)
w swoim pliku startowym emacsa i otwierasz zwykłe emacs z graficznym interfejsem użytkownika, a następnie nakazujesz gitowi użycie edytora o nazwie emacsclient. Dzieje się tak, że edytowany plik pojawia się w nowym buforze w uruchomionym emacsie. Gdy skończysz, naciśnij C-x #
, aby zakończyć sesję emacsclienta, a następnie git (lub inny proces powłoki, który uruchomił edytor) wie, że edytor „emacsclient” jest gotowy z plikiem i kontynuuje swoją rzecz. („emacsclient” to także jedno słowo, więc rozwiązuje również twój bezpośredni problem)
Nawet jeśli edycja musi zostać wykonana w oknie terminala, możesz uruchomić emacsclient -nw
i wyeliminować długi czas uruchamiania. Jest więcej możliwości, man emacsclient
to dobra lektura.
Komentarze
- (' lepiej jako komentarz do powyższej odpowiedzi, ale nie mogę publikować komentarzy)
- Ja ' szukałem wszędzie za to, całkowicie się cieszę, że ' jest odpowiedzią 🙂
- Głównym problemem jest to, że nie ' t zawsze zwraca fokus na terminal po wyjściu z emacsa. Są sytuacje, w których fokus nigdy nie jest przywracany, na przykład gdy masz okno ustawione jak zawsze na górze, okno to wydaje się przechwytywać fokus po wyjściu z emacsa.
Dodaj komentarz