Ben ikisi için kullandıkları anahtar bağları bir dizi var web-modeve php-mode(Evil) ekleme modunda. Yani kullanamam set-local-mapfalan. Çünkü normal modda, aynı tuşlar diğer komutları çağırır. Dolayısıyla bağların evil-insert-state-mapsadece aktif olması gerekir .
Şunlara sahibim:
(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)))
Böylece her yüklendiğinde web-modeveya php-modeyüklendiğinde, bu anahtar bağlamaları etkinleştirilir.
Sorun olduğunu: İki açık tampon, bir tane var varsayalım php-modeve diğer web-mode. Tüm web-modetampon akım tampondur ve sürmekte olan bir başka tampon geçiş php-mode, web-modebağlamaları hala içinde aktif olan php-modetampon.
Bu sorunu kullanarak (add-hook 'web-mode-hook [...])ve (add-hook 'php-mode-hook [...])bağları kurmak yerine çözmeye çalıştım eval-after-load. Ancak bu çözüm bu durumda işe yaramıyor.
Herhangi bir öneri? Gerçekten minnettar olurum.
evil-define-key.