【问题标题】:Define key when buffer is read-only当缓冲区为只读时定义键
【发布时间】:2013-04-02 15:39:48
【问题描述】:

当我的缓冲区是只读的(是的,我很懒)时,我正在尝试以与“C-n”和“C-p”相同的方式使用键“n”和“p”。

我在我的 .emacs 文件中使用此代码:

(when buffer-read-only (local-set-key "n" 'next-line))
(when buffer-read-only (local-set-key "p" 'previous-line))

当缓冲区自动设置为只读时(即像在 w3m 中一样),它正在工作,但当我运行 C-x C-q(切换只读)时,它似乎不起作用。一直在说

Buffer is read-only: #<buffer buffername>

我不知道这会如何工作......

【问题讨论】:

    标签: emacs dot-emacs


    【解决方案1】:

    在加载.emacs 期间评估您的键定义,而您希望在每次访问只读文件和每次执行toggle-read-only 时评估它们。此外,每当缓冲区再次变为可读写时,您希望它们撤消

    您可以利用 Emacs 已经支持在只读缓冲区中自动激活 view-mode 的事实,而不是实现所有这些。您需要做的就是启用该功能,并在view-mode-map 中定义您的密钥:

    (setq view-read-only t)     ; enter view-mode for read-only files
    (define-key view-mode-map "n" 'next-line)
    (define-key view-mode-map "p" 'previous-line)
    

    【讨论】:

    • 是的,太棒了!谢谢它现在确实有效!正如您可能已经看到的那样,我刚刚开始以这种方式使用 emacs……我将进一步研究这种模式!再次感谢 ;-)
    猜你喜欢
    • 2018-05-24
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多