当我的缓冲区是只读的时候,我试图使用"n"和"p"键与"Cn"和"Cp"相同(是的,我很懒).
我在.emacs文件中使用此代码:
(when buffer-read-only (local-set-key "n" 'next-line))
(when buffer-read-only (local-set-key "p" 'previous-line))
Run Code Online (Sandbox Code Playgroud)
当缓冲区自动设置为只读时(即在w3m内),它正在工作但是当我运行Cx Cq(toggle-read-only)时它似乎不起作用.它一直在说
Buffer is read-only: #<buffer buffername>
Run Code Online (Sandbox Code Playgroud)
而且我不知道这怎么会起作用呢?
您的密钥定义在加载期间进行评估.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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |