In diesem Artikel heißt es: "Emacs hat eine Wiederholung, weil Sie beim Rückgängigmachen die Richtung umkehren können, wodurch das Rückgängigmachen rückgängig gemacht wird."
Was bedeutet das? Wie kann ein Benutzer mit Emacs "wiederholen"?
In diesem Artikel heißt es: "Emacs hat eine Wiederholung, weil Sie beim Rückgängigmachen die Richtung umkehren können, wodurch das Rückgängigmachen rückgängig gemacht wird."
Was bedeutet das? Wie kann ein Benutzer mit Emacs "wiederholen"?
Antworten:
Kurzfassung: durch Rückgängigmachen des Rückgängigmachens. Wenn Sie rückgängig machen und dann einen nicht bearbeitenden Befehl ausführen, z. B. C-f, macht das nächste Rückgängigmachen das Rückgängigmachen rückgängig, was zu einem Wiederherstellen führt.
Längere Version:
Sie können sich das Rückgängigmachen als Vorgang für einen Stapel von Vorgängen vorstellen. Wenn Sie C-fnach einer Folge von Rückgängig-Vorgängen einen Befehl (auch einen Navigationsbefehl wie ) ausführen, werden alle Rückgängig-Vorgänge auf den Vorgangsstapel übertragen. Das nächste Rückgängigmachen macht also den letzten Befehl rückgängig. Angenommen, Sie haben eine Operationssequenz, die folgendermaßen aussieht:
Jetzt machst du rückgängig. Die letzte Aktion wird rückgängig gemacht, was zu der folgenden Liste führt:
Wenn Sie an dieser Stelle etwas anderes als Rückgängig machen, sagen wir, C-fsieht der Operationsstapel folgendermaßen aus:
Wenn Sie jetzt rückgängig machen, ist das erste, was rückgängig gemacht wird, das Rückgängigmachen. Ergebnis in Ihrem ursprünglichen Stapel (und Dokumentstatus):
Wenn Sie einen Änderungsbefehl ausführen, um die Rückgängig-Sequenz zu unterbrechen, wird dieser Befehl nach dem Rückgängigmachen hinzugefügt und ist daher das erste, was danach rückgängig gemacht wird. Angenommen, Sie haben einen Abstand zwischen "Balken", anstatt zu schlagen C-f. Dann hättest du gehabt
Dieses Hinzufügen / erneute Hinzufügen erfolgt ad infinitum. Es ist etwas gewöhnungsbedürftig, aber es gibt Emacs wirklich einen hochflexiblen und leistungsstarken Rückgängig- / Wiederherstellungsmechanismus.
quelle
Rückgängig machen: C-_
So wiederholen Sie nach dem Rückgängigmachen: C-g C-_
Geben Sie mehrmals ein C-_ , um das zu wiederholen, was durch rückgängig gemacht wurde. C-_ Um einen emacs-Befehl mehrmals zu wiederholen , führen Sie Ihren Befehl aus, geben Sie ihn ein C-xzund geben Sie dann mehrmals die zTaste ein, um den Befehl zu wiederholen (interessant, wenn Sie ein Makro mehrmals ausführen möchten).
quelle
C-u
zum Beispiel auch verwendenC-u 8 *
(fügt acht * ein, wo sich das Caret befindet). Sie können also x SchritteC-u x C-_
rückgängig machen .C-x e
) können Sie einfache
so oft drücken, wie Sie es erneut ausführen müssen.C-/
undC-x u
sind alternative Rückgängigmachen von Schlüsselbindungen, äquivalent zuC-_
. Ich bevorzuge,C-/
da es leichter zu schlagen ist.C-g C-_
"nach einem Rückgängigmachen wiederholt" wird, gilt dies nur, wenn Sie die Kombination zum ersten Mal treffen. Wiederholen Sie danach Ihren Rückgängig-Schlüssel ohneC-g
. Geben Sie also dreimal nach dem Rückgängigmachen dreimal einC-g C-_ C-_ C-_
. Wenn Sie tippenC-g C-_ C-g C-_ C-g C-_
, werden Sie nur im Kreis herumlaufen und Ihre Wiederholung rückgängig machen ...C-/
C-/
C-/
C-g
C-/
C-g
C-/
C-/
. Beachten Sie, dass diesC-g
nicht wiederholt wird.C-g
C-/
C-g
C-/
C-/
Wenn Sie seit Ihrem letzten Rückgängig-Befehl eine beliebige Taste gedrückt haben (ob Sie Zeichen eingeben oder nur den Cursor bewegen), müssen Sie
C-g
vor dem nächsten Rückgängigmachen / Wiederherstellen keine Eingabe vornehmen.C-g
ist nur eine sichere Taste zum Drücken, die nichts für sich tut, sondern als Nicht-Rückgängig-Taste zählt, um das Ende Ihrer Rückgängig-Sequenz zu signalisieren. Drücken Sie einen anderen Befehl, derC-f
auch funktionieren würde. Es ist nur so, dass es den Cursor von der Stelle bewegt, an der Sie ihn hatten.Wenn Sie einen
C-g
anderen Befehl drücken, als Sie es nicht wollten, und jetzt in die falsche RichtungC-g
rückgängig machen, drücken Sie einfach , um Ihre Richtung erneut umzukehren. Sie müssen Ihre versehentlichen Wiederherstellungen und Rückgängigmachungen vollständig rückgängig machen, bevor Sie zu den gewünschten Rückgängigmachungen gelangen. Wenn Sie jedoch weiter schlagenC-/
, erreichen Sie schließlich den gewünschten Status. Tatsächlich ist jeder Zustand, in dem sich der Puffer jemals befand, erreichbar, wenn SieC-g
einmal drücken und dannC-/
genügend oft drücken .Alternative Verknüpfungen für
undo
andere alsC-/
sindC-_
,C-x u
undM-x
undo
.Weitere Informationen zum Rückgängig-System von Emacs finden Sie unter Rückgängig im Emacs-Handbuch.
quelle
Für diejenigen, die die allgemeinere Funktion zum Rückgängigmachen / Wiederherstellen verwenden möchten, hat jemand geschrieben
undo-tree.el
. Es bietet das Erscheinungsbild von Nicht-Emacs-Rückgängigmachungen, bietet jedoch Zugriff auf den gesamten "Baum" der Rückgängig-Geschichte.Ich mag das in Emacs integrierte Rückgängig-System, finde dieses Paket jedoch sehr intuitiv.
Hier ist der Kommentar aus der Datei selbst:
quelle
Hüten Sie sich vor einer Undo-Tree- Eigenart zum Wiederherstellen !
Viele beliebte „Starter-Kits“ (Vorspiel, Purcell, Spacemacs) werden mit Undo-Tree geliefert. Die meisten (alle?) Aktivieren es sogar automatisch. Wie bereits erwähnt, ist der Undo-Baum eine praktische Möglichkeit, den Undo / Redo-Baum zu visualisieren und zu durchlaufen. Prelude gibt ihm sogar einen Key-Akkord (
uu
) und auchC-x u
.Das Problem ist: Undo-Tree scheint Emacs 'Standardbindung und bekannte Bindung für Redo zu zerstören :
C-g C-/
.Stattdessen können Sie diese symmetrischen Tasten zum Rückgängigmachen / Wiederherstellen verwenden :
Diese sind nützlich, da Sie manchmal schnell wiederholen möchten, ohne den Visualizer zu öffnen.
quelle
Ich finde es
redo.el
äußerst praktisch , "normales" Rückgängigmachen / Wiederherstellen durchzuführen, und ich binde es normalerweise an CSz und rückgängig machen an Cz, wie folgt:Laden Sie einfach die Datei herunter, fügen Sie sie in Ihren Lisp-Pfad ein und fügen Sie die oben genannten Dateien in Ihren ein
.emacs
.quelle
Emacs 28 fügt einen Wiederherstellungsbefehl (aufgerufen
undo-redo
) hinzu.Wenn Sie ein typischeres Rückgängigmachen / Wiederherstellen wünschen, können die folgenden Befehle verwendet werden.
quelle
Wenn Sie den letzten Vorgang wiederholen möchten, gehen Sie wie folgt vor.
ESC
C + /
)quelle
Standardmäßig muss für das Wiederherstellen in Emacs Cg gedrückt und dann rückgängig gemacht werden.
Es ist jedoch möglich, das in Emacs integrierte Rückgängigmachen zu verwenden, um auch einen Wiederherstellungsbefehl zu implementieren.
Das Paket Undo-Fu verwendet die in Emacs integrierte Undo-Funktion, um sowohl Undo als auch Redo verfügbar zu machen.
quelle