¿Cómo realizar una acción de modificación sin modificar el búfer?

8

Quiero agregar propiedades al texto (hacerlo read-onlytemporalmente) y no quiero cambiar el "estado de modificación". En general, ¿cómo realizo alguna acción de modificación sin que Emacs lo note?

Mark Karpov
fuente

Respuestas:

10

Hay una macro integrada por esto, with-silent-modifications.

Su caso de uso previsto es realizar cambios en las propiedades de texto de un búfer, ya que las propiedades del texto son parte del texto y los cambios en ellos se reflejarían en el estado de modificación del búfer y desencadenarían los respectivos ganchos. A pesar de que existe una protección rudimentaria contra los cambios más invasivos del texto, debe asegurarse de que el cuerpo no haga nada extraño:

Si BODY realiza modificaciones reales al texto del búfer, que no sean cosméticas, los datos de deshacer pueden corromperse.

wasamasa
fuente
Es posible que desee agregar la advertencia de la with-silent-modificationsdocumentación
Iqbal Ansari