当我的缓冲区是只读的时候,我试图使用“n”和“p”键与“C-n”和“C-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(toggle-read-only)时它似乎不起作用。它一直在说
Buffer is read-only: #<buffer buffername>
我不知道这可能会如何起作用......
答案 0 :(得分:6)
在加载.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)