[求助] 当minor打开的时候定义更改evil的normal键位

存在minor-mode : org-remark-mode 我希望在打开这个mode的时候,将evil-normal-state-map 里的某些快捷键进行更改,在关闭 这个mode的时候evil变回原来的模式, 并且都是所有的快捷键定义都是buffer-local生效的 例如 我想把 “o” 映射成 "org-remark-mark "

  "y" --> "org-remark-mark-yellow "
  "u" --> "org-remark-mark-red-line "

(evil-define-key STATE KEYMAP KEY DEF &rest BINDINGS) 这第二个参数不就是设定 keymap 么。比如 org-remark-mode-map

另外就是这个方案有时会有点小问题,具体的请看 emacs-evil/evil#301,可以使用 (evil-define-minor-mode-key STATE MODE KEY DEF &rest BINDINGS),或者直接在对应 minor mode 或其它的 hook 里 (evil-normalize-keymaps &optional STATE)


(use-package  org-remark
  :defer t
  :init
  (evil-define-minor-mode-key 'normal org-remark-mode-map "o" 'org-remark-mark)
  )

应用了您的方法1 ,仍旧不起作用,我去看看文档