Wie kann ich Emacs mit Git im Terminal verwenden?
On Dezember 31, 2020 by admin Ich habe git config --global core.editor emacs
verwendet, um meinen Git-Editor als Emacs festzulegen, aber wenn ich das tue und etwas festschreibe, das Der Editor öffnet ein neues Fenster, anstatt Emacs innerhalb des Terminals zu öffnen. Ich möchte Emacs so verwenden, als ob -nw ihm gegeben wäre, aber dies zu schreiben -> git config --global core.editor emacs -nw
ist nicht die Lösung.
Ich muss vorerst Basic Git verwenden.
Kommentare
- Kennen Sie Magit? Es macht grundlegende Git-Operationen Ein Kinderspiel aus Emacs. magit.vc
- Ja. ' kann es nicht verwenden Nach Abschluss der Klasse werde ich ' auf Magit aufsteigen.
- Sie sollten beschreiben, was passiert, wenn Sie " -nw " anstatt einfach zu sagen, dass " nicht die Lösung ist ". Es funktioniert für mich, wenn der Befehl ordnungsgemäß maskiert wird.
Antwort
Wenn Sie git config --global core.editor emacs -nw
ausführen, 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 auflösen soll: git config --global core.editor "emacs -nw"
wird Geben Sie git „emacs -nw“ als einzelnes Argument, das das tut, was Sie wollen.
Antwort
Sie geben nicht an Was ist falsch daran, ein neues GUI-Emacs-Fenster zu öffnen? Wenn das Problem die lange Startzeit ist, können Sie emacsclient als Editor verwenden. Kurz gesagt, Sie führen (server-start)
in Ihrer 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 ebenfalls ein Wort und löst somit auch Ihr unmittelbares Problem.)
Auch wenn Ihre Bearbeitung im Terminalfenster erfolgen muss, können Sie emacsclient -nw
und eliminieren Sie die lange Startzeit. Es gibt mehr Möglichkeiten, man emacsclient
ist eine gute Lektüre.
Kommentare
- (würde ' war besser als Kommentar zu der obigen Antwort, durfte aber keine Kommentare posten.)
- Ich ' habe gesucht überall dafür, total glücklich, dass ' eine Antwort ist 🙂
- Das Hauptproblem, das ich habe, ist, dass es nicht ' t stellt den Fokus nach dem Beenden von emacs immer wieder auf das Terminal zurück. Es gibt Situationen, in denen der Fokus nie zurückgegeben wird, z. B. wenn Sie ein Fenster wie immer oben eingestellt haben, scheint dieses Fenster den Fokus nach dem Beenden von Emacs zu verfangen.
Schreibe einen Kommentar