我希望大多数缓冲区是只读的,除了一个小区域(一部分行)。
我首先尝试了类似
的内容(setq buffer-read-only t)
(let ((inhibit-read-only t))
(add-text-properties start end '(read-only nil)))
但显然buffer-read-only
优先于read-only
property。
我现在将buffer-read-only
设置为nil
,并将read-only
属性设置为{em>所有内容的<{1>},但可编辑区域。 (或t
被视为无操作。)
有更好的方法吗?
编辑:
我的用例的更详细描述是我希望我的缓冲区显示异步进程的输出。输出主要用于只读查看。但是,一行的一小部分是可编辑的。如果再次运行,该部分将成为流程的输入。
答案 0 :(得分:2)
在Emacs 24及更早版本中,没有简单的方法可以满足您的需求。我同意您使用read-only
属性标记所有内容的解决方案,但您希望可编辑的部分除外。
Emacs 25将具有inhibit-read-only
属性,它完全符合您的要求。它于11月16日由larsi实施,并由eww。