Emacs: buat sebagian buffer dibaca

9

Terkadang saya mengedit file di emacsmana sebagian file tersebut adalah dokumentasi atau hal lain yang tidak boleh diedit, dan bagian lain adalah "area bermain" tempat saya bebas untuk mengedit dan membuat teks baru.

Pertanyaan: dapatkah saya membuat sebagian buffer emacs hanya baca?

Contoh paling sederhana adalah membuat baris 1-100 hanya baca (misalnya). Contoh yang lebih kompleks (mirip dengan bookmark emacs) adalah membuat semua teks antara [readonly]dan [/readonly]tidak dapat diedit.

Saya mencari di Google, tetapi tidak menemukan sesuatu yang bermanfaat.

barrycarter
sumber

Jawaban:

8

Ya, Anda dapat membuat sebagian buffer hanya-baca menggunakan properti teks. Kode di bawah ini mendefinisikan dua perintah baru make-region-read-onlydan make-region-read-writeyang mempengaruhi wilayah antara titik dan tanda. Masukkan kode dalam file .emacs Anda untuk membuat perintah tersedia melalui 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
sumber