আমি এ কী বাইন্ডিং যে আমি উভয় জন্য ব্যবহার একটি সেট আছে 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
।