Emacs: Machen Sie einen Teil des Puffers schreibgeschützt

9

Ich bearbeite manchmal Dateien, in emacsdenen Teile der Datei Dokumentation sind oder etwas anderes, das nicht bearbeitet werden sollte, und andere Teile sind "Wiedergabebereiche", in denen ich frei arbeiten und neuen Text erstellen kann.

Frage: Kann ich einen Teil eines Emacs-Puffers schreibgeschützt machen?

Das einfachste Beispiel wäre, die Zeilen 1-100 schreibgeschützt zu machen (zum Beispiel). Ein komplexeres Beispiel (ähnlich wie bei Emacs-Lesezeichen) wäre, den gesamten Text zwischen [readonly]und nicht [/readonly]bearbeitbar zu machen .

Ich habe das gegoogelt, konnte aber nichts Nützliches finden.

Barrycarter
quelle

Antworten:

8

Ja, Sie können einen Teil eines Puffers mithilfe von Texteigenschaften schreibgeschützt machen. Der folgende Code definiert zwei neue Befehle make-region-read-onlyund make-region-read-writedie beeinflussen , um die Region zwischen dem Punkt und Mark. Fügen Sie den Code in Ihre .emacs-Datei ein, um die Befehle über verfügbar zu machen 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
quelle