2011-10-18 183 views
1

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

我只有一个Emacs实例打开,并且在此期间不更改缓冲区下的文件。

+2

我从来没有见过 – Flexo

+1

之前的行为奇怪的是,我从来没有见过这之前。你是否运行了任何可能导致这种情况的特定软件包(比如'global-auto-revert-mode'?)你可能不小心碰到了'Cx Cq'(它运行'toggle-read-only'),如果是的话,你可以解除绑定这可以避免这种情况。 – Lindydancer

回答

4

返回到缓冲区绝对不会使其成为只读。

您可以在toggle-read-only中提出一个建议,以查看是否存在无意中调用的地方。

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

如果不帮你甚至可以把一个建议的setqbuffer-read-only是越来越分配进入调试器。

0

这不是默认的emacs行为。以emacs版本/平台等方式提供更多数据...查看您的init文件(包括.emacs),该文件由于某种原因具有缓冲区只读。在任何情况下,您都可以通过在交换缓冲区(或C-h k C-x b)中添加挂钩来避免。 使用切换只读与负面的参数。

1

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

相关问题