Wie kann ich Emacs mit Git im Terminal verwenden?


9

Ich habe git config --global core.editor emacsmeinen Git-Editor als Emacs festgelegt, aber wenn ich das tue und etwas festschreibe, öffnet der Editor ein neues Fenster, anstatt Emacs im Terminal zu öffnen. Ich möchte Emacs so verwenden, als ob -nw gegeben wäre, aber dies zu schreiben -> git config --global core.editor emacs -nwist nicht die Lösung.

Ich muss jetzt Basic Git verwenden.


2
Kennst du Magit? Es macht die grundlegende Git-Bedienung innerhalb von Emacs zum Kinderspiel. magit.vc
Tyler

2
Ja. Kann es vorerst nicht benutzen. Nachdem der Unterricht beendet ist, steige ich auf Magit auf.
Lib101

Sie sollten beschreiben, was passiert, wenn Sie "-nw" hinzufügen, anstatt einfach anzugeben, dass dies "nicht die Lösung" ist. Es funktioniert bei mir, wenn der Befehl ordnungsgemäß maskiert wird.
Asjo

Antworten:


19

Wenn Sie ausführen git config --global core.editor emacs -nw, teilt Ihre Shell die Befehlszeile in Wörter auf, bevor Sie git aufrufen. Git sieht "emacs -nw" daher als zwei separate Argumente. Es muss nur einer in die Konfigurationsdatei eingefügt werden, der andere wird ignoriert. (Eigentlich ist das eine Lüge, aber Sie können die Manpage auf Details überprüfen.) Sie können eine Reihe von Wörtern in Anführungszeichen setzen, um Ihrer Shell zu sagen, dass sie sie nicht git config --global core.editor "emacs -nw"auflösen sollen : Geben Sie "emacs -nw" als einziges Argument an git wird tun was du willst.


2

Sie geben nicht an, was beim Öffnen eines neuen GUI-Emacs-Fensters falsch ist. Wenn das Problem die lange Startzeit ist, können Sie emacsclient als Editor verwenden. (server-start)Kurz gesagt, Sie führen Ihre Emacs-Init-Datei aus, lassen Ihre regulären GUI-Emacs geöffnet und weisen git an, einen Editor namens emacsclient zu verwenden. Was passiert ist, dass die bearbeitete Datei in einem neuen Puffer in Ihren laufenden Emacs angezeigt wird. Nachdem Sie damit fertig sind, drücken Sie C-x #, um die Emacsclient-Sitzung zu beenden, und dann weiß git (oder ein anderer Shell-Prozess, der den Editor gestartet hat), dass der Editor "emacsclient" mit der Datei fertig ist und fährt mit seiner Sache fort. ("emacsclient" ist auch ein Wort, also löst es auch Ihr unmittelbares Problem)

Auch wenn Ihre Bearbeitung im Terminalfenster erfolgen muss, können Sie emacsclient -nwdie lange Startzeit ausführen und eliminieren. Es gibt mehr Möglichkeiten, man emacsclientist eine gute Lektüre.


1
(wäre besser als Kommentar zu der obigen Antwort gewesen, aber nicht erlaubt, Kommentare zu posten)
Ury Marshak

Ich habe überall danach gesucht, total glücklich, dass es eine Antwort ist :)
VRE
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.