背景
下記のようにinsertモードのキーバインド設定を行なった。
しかし所定のキー入力を行なっても想定した関数が呼び出されなかった。
(evil-define-key 'insert org-mode-map
(kbd "<tab>") `my/org-cycle
(kbd "<S-tab>") `my/org-shifttab)
検証
1. キーマップを確認する。
M-x descrive-keymap RET org-mode-map
...
<insert-state> <S-tab> my/org-shifttab
<insert-state> <tab> my/org-cycle
...
2. 現在のモードを確認する
insertモードで下記のコマンドを実行
M-x describe-variables RET evil-state
evil-state is a variable defined in `which-key.el'.
Its value is hybrid
設定すべきstateは insert
ではなく hybrid
であることがわかる。
結論
'insert
を 'hybrid
に修正したところ、想定どおりの挙動が確認できた。
(evil-define-key 'hybrid org-mode-map
(kbd "<tab>") `my/org-cycle
(kbd "<S-tab>") `my/org-shifttab)