我有时会编辑文件,emacs
其中文件的一部分是文档或其他不应编辑的内容,而其他部分是“播放区域”,我可以在其中自由编辑和创建新文本。
问题:我可以做一个部分emacs 缓冲区只读?
最简单的例子是将第 1-100 行设置为只读(例如)。一个更复杂的示例(类似于 emacs 书签)是使[readonly]
和之间的所有文本[/readonly]
不可编辑。
我用谷歌搜索了这个,但找不到任何有用的东西。
答案1
是的,您可以使用文本属性将缓冲区的一部分设置为只读。下面的代码定义了两个新命令make-region-read-only
,make-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)))