Come eseguire un'azione di modifica senza modificare il buffer?


8

Voglio aggiungere proprietà al testo (renderlo read-onlytemporaneamente) e non voglio cambiare lo "stato di modifica". In generale, come posso eseguire alcune azioni di modifica senza che Emacs se ne accorga?

Risposte:


10

V'è un built-in macro per questo, with-silent-modifications.

La sua destinazione d'uso è quella di apportare modifiche alle proprietà del testo di un buffer poiché le proprietà del testo fanno parte del testo e le modifiche ad esse verrebbero altrimenti riflesse nello stato di modifica del buffer e innescare i rispettivi hook. Nonostante ci sia una protezione rudimentale contro cambiamenti più invasivi del testo, dovresti assicurarti che il corpo non faccia nulla di strano:

Se BODY apporta modifiche reali al testo del buffer, oltre a quelle cosmetiche, i dati di annullamento potrebbero essere danneggiati.


Potresti voler aggiungere l'avviso dalla with-silent-modificationsdocumentazione
Iqbal Ansari,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.