मेरे पास कुंजी बाइंडिंग का एक सेट है जो मैं दोनों के लिए 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
।