Emacs:使缓冲区的一部分只读

Emacs:使缓冲区的一部分只读

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

问题:我可以做一个部分emacs 缓冲区只读?

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

我用谷歌搜索了这个,但找不到任何有用的东西。

答案1

是的,您可以使用文本属性将缓冲区的一部分设置为只读。下面的代码定义了两个新命令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)))

相关内容