emacs以只读方式删除区域

emacs以只读方式删除区域,emacs,elisp,Emacs,Elisp,与如何删除缓冲区中文本区域的只读属性密切相关 例如,如果您在emacs中使用python shell,并且意外地打印出一个巨大的列表,并且希望从缓冲区中删除输出 在read-only in下的隐晦注释之后,要从您只需要的区域中删除只读内容,请执行以下操作: (defun remove-region-read-only (begin end) (interactive "r") (let ((inhibit-read-only t)) (remove-text-properties

与如何删除缓冲区中文本区域的只读属性密切相关


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

在read-only in下的隐晦注释之后,要从您只需要的区域中删除只读内容,请执行以下操作:

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

在read-only in下的神秘注释之后,要从您只需要的区域中删除只读内容,请执行以下操作:

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

我使用以下方法。这与tcaswell的回答类似,但涉及缓冲区修改问题

(取消设置区域只读(开始-结束)
“设置标记区域的只读文本属性。
使用“设置区域可写”删除此属性。“
看见https://stackoverflow.com/questions/7410125
(交互式“r”)
(无声的修改
(put文本属性begin end'read-only t)))
(取消设置区域可写(开始-结束)
“从标记区域中删除只读文本属性。
使用“设置区域只读”设置此属性。“
看见https://stackoverflow.com/questions/7410125
(交互式“r”)
(无声的修改
(删除文本属性begin-end'(只读t)))

我使用以下方法。这与tcaswell的回答类似,但涉及缓冲区修改问题

(取消设置区域只读(开始-结束)
“设置标记区域的只读文本属性。
使用“设置区域可写”删除此属性。“
看见https://stackoverflow.com/questions/7410125
(交互式“r”)
(无声的修改
(put文本属性begin end'read-only t)))
(取消设置区域可写(开始-结束)
“从标记区域中删除只读文本属性。
使用“设置区域只读”设置此属性。“
看见https://stackoverflow.com/questions/7410125
(交互式“r”)
(无声的修改
(删除文本属性begin-end'(只读t)))

很想知道是哪种情况使Python shell的输出成为只读。@AndreasRöhler,它不是每行都有,只是十分之一左右。这是一个由两层嵌套元组组成的列表,其中混合了列表、整数和Ndarray。我认为标记为readonly的特定行是数组print out的第一行。AFAIU从python模式的角度来看,这不应该发生。希望看到一些示例代码。在任何情况下,解决方案都是有趣和有用的:)@AndreasRöhler在一个月后告诉我,那时我会有更多的时间。我猜comint是想表现得太聪明了。仅启动shell将提供一些shell缓冲区的只读位(尝试在[]提示中按住ctrl-k键)。假设这样做是为了保护提示不被用户不情愿地删除。记得看过它,但现在无法获得它,无论是普通comint还是python模式。可以也许让我们结束这个。想知道是什么条件使Python shell的输出成为只读的。@AndreasRöhler,它不是每一行,只是十分之一左右。这是一个由两层嵌套元组组成的列表,其中混合了列表、整数和Ndarray。我认为标记为readonly的特定行是数组print out的第一行。AFAIU从python模式的角度来看,这不应该发生。希望看到一些示例代码。在任何情况下,解决方案都是有趣和有用的:)@AndreasRöhler在一个月后告诉我,那时我会有更多的时间。我猜comint是想表现得太聪明了。仅启动shell将提供一些shell缓冲区的只读位(尝试在[]提示中按住ctrl-k键)。假设这样做是为了保护提示不被用户不情愿地删除。记得看过它,但现在无法获得它,无论是普通comint还是python模式。可以也许让我们把这个关上。