`C- [`在邪恶的本地模式下不会从插入模式中逃脱

时间:2016-12-30 01:45:58

标签: emacs evil-mode

我刚开始在我的emacs中使用vim。虽然大多数文档/维基建议在全球范围内打开邪恶模式,但我在第一个开始时作为emacs用户,真的更喜欢将邪恶模式保持在本地。这意味着,当我需要模型编辑时,我将打开该局部缓冲区中的邪恶模式。为此目的,我写了一段elisp来打开/关闭邪恶模式:

(defun toggle-evil-local-mode ()
"Toggle on and off evil mode in local buffer."
(interactive)
(if evil-local-mode
    (turn-off-evil-mode)
  (turn-on-evil-mode)))

(global-set-key (kbd "s-e") 'toggle-evil-local-mode)

然而,有一件事困扰着我。我无法使用C-[从插入或可视模式转换到正常模式(emacs将键击读取为ESC-并等待回显区域中的更多输入),Esc键工作正常。但是,如果我在全球范围内打开邪恶模式,C-[的工作方式与Esc密钥相同。

您可能会注意到我正在使用来自键绑定的Mac。虽然我现在可以使用Esc密钥,但是如果我将来升级到带有这些邪恶触摸条的新MBP怎么办?那么有什么方法可以解决这个问题吗?任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

看起来像是邪恶中的一个错误。如果有效,请告诉我:

(defun turn-on-evil-mode-fixed-escape ()
  "Turn on Evil in the current buffer AND `evil-esc-mode'. This makes C-[ work
like <escape> when using `evil-local-mode'."
  (interactive)
  (turn-on-evil-mode)
  (evil-esc-mode 1))