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