在Evil
中,ESC
在插入模式下的默认绑定为(evil-normal-state nil)
。
我想在插入模式下重新绑定ESC,如下所示:
(define-key evil-insert-state-map (kbd "ESC")
(lambda () (interactive) (message "hello")))
但是,当我尝试这样做时,我会遇到意想不到的行为。首先,绑定不会改变。由于某种原因我不理解它也会在插入模式中中断M-x
。
为什么会这样?
答案 0 :(得分:3)
这可能与ESC
是一个ASCII字符的事实有关,该字符用于各种"转义序列"以及Emacs通常认为是Meta
修饰符的替代品。
IIRC Evil通过将 ESC 键映射到ESC
字符(代码27)来处理此问题,默认情况下在Emacs中映射,但是映射到escape
事件。所以你可能想试试:
(define-key evil-insert-state-map [escape]
(lambda () (interactive) (message "hello")))