Wie führe ich eine Änderungsaktion durch, ohne den Puffer zu ändern?

8

Ich möchte dem Text Eigenschaften hinzufügen ( read-onlyvorübergehend festlegen) und keine Änderung des Änderungsstatus vornehmen. Wie führe ich im Allgemeinen eine Änderungsaktion durch, ohne dass Emacs dies bemerkt?

Mark Karpov
quelle

Antworten:

10

Hierfür gibt es ein eingebautes Makro with-silent-modifications.

Der beabsichtigte Verwendungszweck besteht darin, Änderungen an den Texteigenschaften eines Puffers vorzunehmen, da Texteigenschaften Teil des Texts sind und Änderungen an diesen ansonsten im Status der Pufferänderung widergespiegelt werden und die entsprechenden Hooks auslösen. Obwohl es einen rudimentären Schutz gegen invasivere Änderungen des Textes gibt, sollten Sie sicherstellen, dass der Körper nichts Seltsames tut:

Wenn BODY echte Änderungen am Text des Puffers vornimmt, die nicht kosmetisch sind, können Rückgängig-Daten beschädigt werden.

Wasamasa
quelle
Vielleicht möchten Sie die Warnung aus der with-silent-modificationsDokumentation hinzufügen
Iqbal Ansari