Emacs: faz parte do buffer readonly

8

Às vezes, eu edito arquivos em emacs , onde partes do arquivo são documentação ou qualquer outra coisa que não deva ser editada, e outra porções são "áreas de diversão", onde estou livre para editar e criar um novo texto.

Pergunta: posso fazer uma porção de um buffer do emacs somente para leitura?

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

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

    
por barrycarter 21.05.2013 / 04:39

1 resposta

7

Sim, você pode tornar uma parte de um buffer somente leitura usando propriedades de texto. O código abaixo define dois novos comandos make-region-read-only e make-region-read-write que 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)))
    
por 21.05.2013 / 09:26

Tags