Emacs:将部分缓冲区设为只读


9

有时,我在文件的emacs某些部分是文档或其他不应编辑的地方编辑文件,而其他部分是“播放区域”,我可以自由编辑和创建新文本。

问:我可以使emacs缓冲区的一部分变为只读状态吗?

最简单的示例是将第1-100行设为只读(例如)。更复杂的例子(类似emacs的书签)将是使之间的所有文字[readonly][/readonly]编辑。

我用谷歌搜索,但是找不到有用的东西。

Answers:


8

是的,您可以使用文本属性将缓冲区的一部分设为只读。下面的代码定义了两个新命令make-region-read-onlymake-region-read-write这些命令会影响点和标记之间的区域。将代码放在.emacs文件中,以使命令可用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)))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.