Emacs: crea una porzione di buffer di sola lettura


9

A volte modifico i file in emacscui parti del file sono documentazione o qualcos'altro che non dovrebbe essere modificato, e altre parti sono "aree di gioco" in cui sono libero di modificare e creare nuovo testo.

Domanda: posso creare una porzione di un buffer di emacs in sola lettura?

L'esempio più semplice sarebbe rendere le righe 1-100 di sola lettura (ad esempio). Un esempio più complesso (simile ai segnalibri di emacs) sarebbe quello di rendere tutto il testo tra [readonly]e [/readonly]non modificabile.

Ho cercato su Google questo, ma non sono riuscito a trovare nulla di utile.

Risposte:


8

Sì, è possibile creare una parte di un buffer di sola lettura utilizzando le proprietà del testo. Il codice seguente definisce due nuovi comandi make-region-read-onlye make-region-read-writeche influenzano la regione tra punto e segno. Inserisci il codice nel tuo file .emacs per rendere disponibili i comandi tramite Meta-x.

(defun make-region-read-only (start end)
  (interactive "*r")
  (let ((inhibit-read-only t))
    (put-text-property start end 'read-only t)))

(defun make-region-read-write (start end)
  (interactive "*r")
  (let ((inhibit-read-only t))
    (put-text-property start end 'read-only nil)))
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.