Voglio aggiungere proprietà al testo (renderlo read-only
temporaneamente) e non voglio cambiare lo "stato di modifica". In generale, come posso eseguire alcune azioni di modifica senza che Emacs se ne accorga?
Voglio aggiungere proprietà al testo (renderlo read-only
temporaneamente) e non voglio cambiare lo "stato di modifica". In generale, come posso eseguire alcune azioni di modifica senza che Emacs se ne accorga?
Risposte:
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.
with-silent-modifications
documentazione