F: Wie füge ich Text in einen Puffer ein / ändere ihn, ohne es zu undomerken?
Hier ist der Anwendungsfall. Ich habe am Anfang jeder Datei einen Kommentarblock, der unter anderem einen Zeitstempel für die letzte Änderung an einer Datei aktualisiert. Ich möchte diesen Zeitstempel ändern können, ohne dass die undoEinrichtungen dies bemerken.
Der Grund, warum ich undohier kurzschließen möchte, ist der folgende Randfall, der beim Bearbeiten / Kompilieren von LaTeX-Dokumenten auftritt (und wahrscheinlich auch andere, aber dies ist derjenige, der mich am häufigsten verrückt macht):
- Nehmen Sie eine kleine Änderung an der Datei vor, um zu sehen, wie sich dies auf das kompilierte Dokument auswirkt
- Speichern Sie die Datei (wodurch der Zeitstempel aktualisiert wird).
- Führen Sie
latexdie Datei aus - Entscheide, dass die Änderung schlecht ist
undodie Veränderungen
Das Problem in Schritt (5) ( undo) besteht darin, dass die in Schritt (1) vorgenommene Änderung nicht rückgängig gemacht wird, sondern die in Schritt (2) aktualisierte Zeitstempel-Aktualisierung rückgängig gemacht wird. Das würde mich nicht stören (ich könnte es einfach noch undoeinmal tun ), außer dass es sich auch bis zum Zeitstempel oben in der Datei bewegt, was fast immer viele, viele Zeilen von der eigentlichen inhaltlichen Änderung entfernt ist. Es ist sehr irritierend und bricht meine Konzentration völlig.
Ich stelle die Frage in Bezug auf eine Datei, die ich besuche, aber es geht allgemeiner darum, Puffer zu ändern.
Also: Wie kann ich verhindern, undodass eine bestimmte Änderung an einem Puffer bemerkt wird?
undowürden beide rückgängig gemacht.
with-undo-collapseMakro, das sehr nützlich war: emacs.stackexchange.com/a/7560/2418