【问题标题】:How to avoid switching (automatically?) to read-only buffers in Emacs如何避免(自动?)切换到 Emacs 中的只读缓冲区
【发布时间】:2011-10-18 14:33:40
【问题描述】:

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

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

【问题讨论】:

  • 我以前从未见过这种行为
  • 奇怪,我以前也没见过这个。您是否运行任何可能导致此问题的特定程序包(例如global-auto-revert-mode?)您可能不小心点击了C-x C-q(运行toggle-read-only),如果是这样,您可以取消绑定以避免这种情况。

标签: emacs buffer readonly


【解决方案1】:

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

您可以提出关于 toggle-read-only 的建议,以查看是否在某处无意调用。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2011-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多