我想在Evil插入模式下保留所有Emacs原始键绑定,但是我想重新绑定其中一些用于因某些原因(在特定缓冲区中)未启用evil-mode的情况。例如,我想将M-q
映射到save-buffers-kill-terminal
只能在除Evil-insert-mode之外的所有模式下工作,其中应该执行原始Emacs键绑定所做的事情(fill-paragraph
)。我如何实现这一目标?
答案 0 :(得分:2)
要使M-q
默认执行save-buffers-kill-terminal
,您需要更改M-q
的全局键绑定:
(global-set-key (kbd "M-q") 'save-buffers-kill-terminal)
但是,请记住,特定于模式的绑定会覆盖全局键绑定。事实上,我们将利用这一点:
要在插入时在Evil模式下为M-q
创建一个特殊例外,请将fill-paragraph
的特定键绑定添加到evil-insert-state的键绑定“map”中:
(define-key evil-insert-state-map (kbd "M-q") 'fill-paragraph)
这个将覆盖全局绑定,并且只能在Evil-mode的插入状态下工作。
将这两行添加到.emacs配置文件中应该可以解决这个问题。