`C-[` не выходит из режима вставки в злом локальном режиме

Я только начал использовать vim в моем emacs. Хотя большинство документов и вики предлагают включить режим зла во всем мире, я, будучи пользователем 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 ответ

Решение

Похоже, ошибка в зле. Дайте мне знать, если это работает:

(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))
Другие вопросы по тегам