在插入模式下重新绑定ESC

时间:2018-01-05 01:05:43

标签: emacs key-bindings evil-mode

Evil中,ESC在插入模式下的默认绑定为(evil-normal-state nil)

我想在插入模式下重新绑定ESC,如下所示:

(define-key evil-insert-state-map (kbd "ESC") (lambda () (interactive) (message "hello")))

但是,当我尝试这样做时,我会遇到意想不到的行为。首先,绑定不会改变。由于某种原因我不理解它也会在插入模式中中断M-x

为什么会这样?

1 个答案:

答案 0 :(得分:3)

这可能与ESC是一个ASCII字符的事实有关,该字符用于各种"转义序列"以及Emacs通常认为是Meta修饰符的替代品。

IIRC Evil通过将 ESC 键映射到ESC字符(代码27)来处理此问题,默认情况下在Emacs中映射,但是映射到escape事件。所以你可能想试试:

(define-key evil-insert-state-map [escape]
            (lambda () (interactive) (message "hello")))
相关问题