ฉันมีชุดของการเชื่อมโยงคีย์ที่ฉันใช้สำหรับทั้งสอง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กำลังถูกโหลดการเชื่อมโยงคีย์เหล่านี้จะถูกเปิดใช้งาน
ปัญหาคือ:สมมติว่าฉันมีบัฟเฟอร์เปิดสองอันหนึ่งอัน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มากขึ้น