emacs删除区域只读

时间:2013-11-16 20:18:39

标签: emacs elisp

Emacs specific region read only密切相关如何删除缓冲区中文本区域的只读属性。

例如,如果您在emacs中使用python shell并意外打印出一个巨大的列表,并希望从缓冲区中删除输出。

2 个答案:

答案 0 :(得分:3)

我使用以下内容。它与tcaswell的答案相同,但处理缓冲区修改问题。

(defun set-region-read-only (begin end)
  "See http://stackoverflow.com/questions/7410125"
  (interactive "r")
  (let ((modified (buffer-modified-p)))
    (add-text-properties begin end '(read-only t))
    (set-buffer-modified-p modified)))

(defun set-region-writeable (begin end)
  "See http://stackoverflow.com/questions/7410125"
  (interactive "r")
  (let ((modified (buffer-modified-p))
        (inhibit-read-only t))
    (remove-text-properties begin end '(read-only t))
    (set-buffer-modified-p modified)))

答案 1 :(得分:2)

the documentation中以只读方式进行隐秘评论后,从您需要的地区删除只读:

(defun remove-region-read-only (begin end)
  (interactive "r")
  (let ((inhibit-read-only t))
    (remove-text-properties begin end '(read-only t)))
  )