Emacs: faz parte do buffer somente leitura

9

Às vezes, edito arquivos em emacsque partes do arquivo são documentação ou outra coisa que não deve ser editada, e outras são "áreas de lazer", onde sou livre para editar e criar novo texto.

Pergunta: posso criar uma parte de um buffer do emacs somente para leitura?

O exemplo mais simples seria fazer as linhas 1 a 100 somente leitura (por exemplo). Um exemplo mais complexo (semelhante aos favoritos do emacs) seria tornar todo o texto entre [readonly]e [/readonly]não editável.

Eu pesquisei isso no Google, mas não consegui encontrar nada útil.

barrycarter
fonte

Respostas:

8

Sim, você pode criar uma parte de um buffer somente leitura usando propriedades de texto. O código abaixo define dois novos comandos make-region-read-onlye make-region-read-writeque afetam a região entre ponto e marca. Coloque o código no seu arquivo .emacs para disponibilizar os comandos via 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)))
Kyle Jones
fonte