如何避免在Emacs中切换(自动?)只读缓冲区

时间:2011-10-18 14:33:40

标签: emacs buffer readonly

我在Emacs中打开了相当数量的缓冲区,并使用C-x b在它们之间切换。但是,我经常发现自己返回到现在具有只读权限的早期访问缓冲区。它可以通过M-x toggle-read-only切换回来。我想知道为什么我(自动?)在我返回它时获得一个只读缓冲区,以及如何避免它。

我只打开了一个Emacs实例,并且同时不更改缓冲区下面的文件。

3 个答案:

答案 0 :(得分:4)

返回缓冲区肯定不会使它成为只读。

您可以在toggle-read-only周围提出建议,看看是否在某处无意中呼叫。

(defadvice toggle-read-only (around invoke-debugger activate)
  "invoke debugger to see the call stack"
  (debug ""))

如果这没有帮助,您甚至可以在setq上提出建议,并在buffer-read-only被分配时输入调试器。

答案 1 :(得分:1)

我相信这种情况经常发生在AZERTY键盘上,其中Q和S是相邻的,一个将缓冲区切换到只读模式而不是保存它。

答案 2 :(得分:0)

这不是默认的emacs行为。提供更多数据作为emacs版本/平台等...查看由于某种原因具有缓冲区只读的初始文件(包括.emacs)。在任何情况下,您都可以通过向switch-buffer(或C-h k C-x b)添加钩子来避免。 使用带有否定参数的toggle-read-only。