在插入模式下重新绑定 ESC
rebinding ESC in insert mode
在Evil
中,ESC
在插入模式下的默认绑定是(evil-normal-state nil)
。
我想像这样在插入模式下重新绑定 ESC:
(define-key evil-insert-state-map (kbd "ESC")
(lambda () (interactive) (message "hello")))
但是,当我尝试这样做时,出现了意外行为。首先,绑定不会改变。出于某种原因,我不明白它在插入模式下也会中断 M-x
。
为什么会这样?
这可能与以下事实有关:ESC
是一个 ASCII 字符,用于各种 "escape sequences",Emacs 通常将其视为 Meta
修饰符的替代项.
IIRC Evil 通过将 ESC 键映射到 ESC
字符(代码 27)来处理这个问题,这在 Emacs 中是默认完成的,而是映射到 escape
事件。所以你可能想试试:
(define-key evil-insert-state-map [escape]
(lambda () (interactive) (message "hello")))
在Evil
中,ESC
在插入模式下的默认绑定是(evil-normal-state nil)
。
我想像这样在插入模式下重新绑定 ESC:
(define-key evil-insert-state-map (kbd "ESC")
(lambda () (interactive) (message "hello")))
但是,当我尝试这样做时,出现了意外行为。首先,绑定不会改变。出于某种原因,我不明白它在插入模式下也会中断 M-x
。
为什么会这样?
这可能与以下事实有关:ESC
是一个 ASCII 字符,用于各种 "escape sequences",Emacs 通常将其视为 Meta
修饰符的替代项.
IIRC Evil 通过将 ESC 键映射到 ESC
字符(代码 27)来处理这个问题,这在 Emacs 中是默认完成的,而是映射到 escape
事件。所以你可能想试试:
(define-key evil-insert-state-map [escape]
(lambda () (interactive) (message "hello")))