Frage

diesem Artikel sagt, dass „Emacs hat Redo denn man kann Richtung umkehren, während rückgängig gemacht, wodurch Lösen der Undo“.

Was bedeutet das? Wie kann ein Benutzer 'Redo' mit Emacs?

War es hilfreich?

Lösung

Kurzversion: durch die Undo rückgängig gemacht. Wenn Sie rückgängig zu machen, und dann tun Befehl, um einen nicht-Bearbeitung wie C-f , dann die nächste Undo das Undo rückgängig zu machen, in einem Redo zur Folge hat.

Längere Version:

Sie können von Undo denken, wie auf einem Stapel von Operationen arbeitet. Wenn Sie einen Befehl (auch ein Navigationsbefehl wie C-f ) nach einer Folge von Undo-Operationen durchführen, werden alle Undo-Schritte werden auf dem Betrieb Stapel geschoben. Also das nächste Undo rückgängig macht den letzten Befehl. Angenommen, Sie tun eine Operationssequenz haben, dass wie folgt aussieht:

  1. Einfügen "foo"
  2. Einfügen "bar"
  3. Einfügen "Ich liebe Spam"

Nun, Sie rückgängig machen. Es macht die letzte Aktion, die sich in der folgenden Liste:

  1. Einfügen "foo"
  2. Einfügen "bar"

Wenn Sie das tun, etwas anderes als undo an diesem Punkt - sagen wir, C-f , die Betriebs Stapel sieht wie folgt aus:

  1. Einfügen "foo"
  2. Einfügen "bar"
  3. Einfügen "Ich liebe Spam"
  4. Rückgängig insert "Ich liebe Spam"

Wenn Sie jetzt rückgängig zu machen, die erste Sache, die rückgängig gemacht ist, ist das rückgängig zu machen. Resultierende in Ihrem ursprünglichen Stapel (und Dokumentenstatus):

  1. Einfügen "foo"
  2. Einfügen "bar"
  3. Einfügen "Ich liebe Spam"

Wenn Sie einen modifizierenden Befehl tun, um die Undo-Sequenz zu brechen, dass Befehl wird nach der Rückgängig hinzugefügt und ist somit das erste, was rückgängig gemacht danach zu sein. Angenommen, Sie backspaced über "bar" statt des Schlagens C-f . Dann hätten Sie

  1. Einfügen "foo"
  2. Einfügen "bar"
  3. Einfügen "Ich liebe Spam"
  4. Rückgängig insert "Ich liebe Spam"
  5. Löschen "bar"

Das Hinzufügen / Re-Zugabe geschieht ad infinitum. Es dauert ein wenig gewöhnungsbedürftig, aber es ist wirklich nicht geben Emacs ein sehr flexibles und leistungsfähiges Undo / Redo-Mechanismus.

Andere Tipps

rückgängig zu machen: C-_

Zum Wiederherstellen nach einer Undo: C-g C-_

Geben Sie mehrmals auf C-_ Redo was rückgängig gemacht wurden von C-_ Redo ein Emacs mehrere Male Befehl, führen Sie Ihren Befehl geben Sie dann Cx z und dann viele Male auf z -Taste geben Sie den Befehl zu wiederholen (interessant wenn Sie mehrere Male ein Makro)

auszuführen
  • Rückgängig einmal: C-/
  • rückgängig zu machen zweimal: C-/ C-/
  • Redo einmal, unmittelbar nach Verhängnis: C-g C-/
  • zweimal wiederholen, unmittelbar nach dem Verhängnis: C-g C-/ C-/. Beachten Sie, dass C-g nicht wiederholt wird.
  • Rückgängig sofort wieder , einmal: C-g C-/
  • Um sofort wieder rückgängig zu machen, zweimal: C-g C-/ C-/
  • Redo wieder , die gleich ...

Wenn Sie irgendwelche Tasten gedrückt haben (ob die Eingabe von Zeichen oder bewegt nur den Cursor) seit dem letzten Rückgängig-Befehl, gibt es keine Notwendigkeit C-g vor dem nächsten Undo / Redo einzugeben. C-g ist nur ein Schlüssel für den Safe zu Hit, der nichts für sich allein tut, sondern gilt als nicht-Undo-Taste, um das Ende der Undo-Sequenz zu signalisieren. Durch Drücken einer anderen Befehls wie C-f funktionieren würde; es ist nur, dass es den Cursor bewegen würde, von wo aus man es hatte.

Wenn Sie C-g oder einen anderen Befehl getroffen, wenn Sie nicht zu haben meine, und Sie sind zum Verhängnis jetzt in die falsche Richtung, einfach C-g treffen Sie Ihre Richtung zu umkehren wieder. Sie haben den ganzen Weg durch Ihre zufällige Nacharbeiten und undos rückgängig zu machen, bevor Sie auf die Undo-Schritte erhalten Sie wollen, aber wenn Sie nur C-/ schlagen immer wieder, werden Sie schließlich den Zustand Sie wollen erreichen. In der Tat ist jeder Zustand der Puffer je zuvor in erreichbar, wenn Sie C-g getroffen einmal und drücken Sie dann C-/ genug Zeit.

Alternative Verknüpfungen für undo, andere als C-/, sind C-_, C-x u und M-x undo.

Siehe Undo in dem Emacs-Handbuch für weitere Details über Undo-System des Emacs .

Für diejenigen, die häufige Undo / Redo-Funktionalität haben, jemand geschrieben hat

Hüten Sie sich vor einer Undo-tree Marotte für Redo !

Viele beliebte „Starter-Kits“ (Vorspiel, Purcell, spacemacs) sind mit Undo-Baum gebündelt. Die meisten (alle?) Sogar automatisch aktivieren. Wie bereits erwähnt, Undo-Baum ist eine praktische Möglichkeit, den Undo / Redo-Baum zu visualisieren und zu durchqueren. Prelude selbst gibt es einen Schlüssel-Akkord (uu) und auch C-x u.

Das Problem ist: Undo-Baum zu zerstören scheint default Emacs und bekannte Bindung für Redo . C-g C-/

Stattdessen können Sie verwenden Sie diesen symmetrischen Schlüssel für Undo / Redo :

C-/     undo
C-S-/   redo

Diese sind nützlich, da manchmal möchte man schnell Redo , ohne die Visualizer zu öffnen.

Ich finde redo.el extrem handlich für "normale" Undo / Redo tun, und ich in der Regel binden sie an CSZ und rückgängig machen zu Cz, wie folgt aus:

(when (require 'redo nil 'noerror)
    (global-set-key (kbd "C-S-z") 'redo))

(global-set-key (kbd "C-z") 'undo)

Sie einfach die Datei heruntergeladen haben, legen Sie sie in Ihrem Lisp-Pfad und fügen Sie die oben in Ihrem .emacs.

Wenn Sie den letzten Vorgang wiederholen möchten, gehen Sie wie folgt vor.

  1. ESC
  2. Mit einem Undo (C + /)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top