J'ai un ensemble de raccourcis clavier que j'utilise pour les deux web-mode
et php-mode
en mode insertion (de Evil). Je ne peux donc pas utiliser set-local-map
ou quelque chose. Parce qu'en mode normal, les mêmes touches appellent alors d'autres commandes. Les liaisons doivent donc être actives evil-insert-state-map
uniquement.
J'ai les éléments suivants:
(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)))
Ainsi, à chaque fois web-mode
ou en php-mode
cours de chargement, ces raccourcis clavier seront activés.
Le problème est le suivant: supposons que j'ai deux tampons ouverts, l'un dans l'autre php-mode
et l'autre dans web-mode
. Lorsque le web-mode
tampon est le tampon actuel et que je passe à un autre tampon qui est dedans php-mode
, les web-mode
liaisons sont toujours actives à l'intérieur du php-mode
tampon.
J'ai essayé de résoudre ce problème en utilisant (add-hook 'web-mode-hook [...])
et (add-hook 'php-mode-hook [...])
au lieu de configurer les liaisons dans eval-after-load
. Mais cette solution ne fonctionne pas dans cette situation.
Aucune suggestion? J'apprécierai vraiment cela.
la source
evil-define-key
.