(Evilの)挿入モードweb-mode
とphp-mode
挿入モードの両方で使用するキーバインディングのセットがあります。set-local-map
なんか使えないので。通常モードでは、同じキーが他のコマンドを呼び出すためです。したがって、バインディングはアクティブである必要があるevil-insert-state-map
だけです。
私は以下を持っています:
(eval-after-load 'php-mode
'(progn
(define-key evil-insert-state-map
(kbd "C-<next>") (lambda () (interactive) (insert " = ")))
(define-key evil-insert-state-map
(kbd "C-<prior>") (lambda () (interactive) (insert "->")))))
(eval-after-load 'web-mode
'(progn
(define-key evil-insert-state-map
(kbd "C-<next>") 'zencoding-expand-yas)
(define-key evil-insert-state-map
(kbd "C-<prior>") 'zencoding-expand-line)))
したがって、web-mode
またはphp-mode
ロードされるたびに、これらのキーバインディングがアクティブになります。
問題は次のとおりです。私が2つのオープンバッファーを持っているphp-mode
としweb-mode
ます。ときにweb-mode
バッファがカレントバッファであると私はだ別のバッファに切り替えphp-mode
、web-mode
バインディングはまだ内部のアクティブなphp-mode
バッファ。
私が使用してこの問題を解決しようとした(add-hook 'web-mode-hook [...])
と(add-hook 'php-mode-hook [...])
の代わりにバインディングを設定しますeval-after-load
。しかし、その解決策はこの状況では機能しません。
助言がありますか?とても感謝しております。
evil-define-key
。