সাধারণভাবে, এটি সম্ভব নয়।
কারণটি হ'ল এমন একাধিক মানচিত্র থাকতে পারে যা একই বাঁধাই সংজ্ঞায়িত করে এবং কোনটি আপনি চান তা স্বয়ংক্রিয়ভাবে বের করার উপায় নেই। (আপনার উদাহরণে, elisp-slime-nav-mode
এটি একটি ছোটখাটো মোড)। আপনি কেবল কোন সংজ্ঞা চান তা নির্ধারণ করার জন্য একমাত্র সত্যিকারের নির্ভরযোগ্য পন্থা।
এটি বলেছিল ... একটি সম্ভাব্য হ্যাক রয়েছে (সবসময় সেখানে নেই ...) কীটি মুশকিল করে তোলে তার একটি অংশ হ'ল আপনি যে বাঁধাইটি পুনরায় পুনর্নির্মাণ করতে চান সেটি ইতিমধ্যে একটি অশুভ সক্রিয় কীম্যাপ দ্বারা মুখোশযুক্ত, সুতরাং বর্তমান বন্ডিং পেয়ে M-.
অকেজো
(defun lookup-no-evil (key)
;; excluding evil maps from the lookup. not sure if
;; anything more than evail-normal-state-map is needed
(let* ((evil-maps (list evil-normal-state-map))
(bindings
(remq nil
(mapcar
(lambda (map)
(unless (memq map evil-maps)
(lookup-key map key)))
(current-active-maps)))))
(when bindings
;; let's assume the first one is the right one.
;; Given that minor modes are at the beginning
;; (although this is *not* documented so should not
;; be relied upon), it might be what we would have
;;without evil-mode indeed
(car bindings))))
(defmacro evil-remap (from to)
;; assuming that we want to put it in the normal-state map.
;; not sure about that
`(define-key evil-normal-state-map ,to
(lambda ()
(interactive)
(call-interactively (lookup-no-evil ,from)))))
(evil-remap (kbd "M-.") (kbd "C-]"))
আমি সাধারণত খারাপ ব্যবহার করি না, তাই সামঞ্জস্যতা প্রয়োজন হতে পারে (এম্বেড করা মন্তব্য দেখুন)
এছাড়াও, ক্লিনারটি একবারে বাইন্ডিংগুলি অনুসন্ধান করতে হবে (উদাহরণস্বরূপ একটি মোড হুকে), প্রতিবার কী-বাইন্ডিং টিপে গেলে ডায়নামিকভাবে অনুসন্ধান করা। তবে আমি নিশ্চিত না কী কী মন্দ হুক ব্যবহার করবেন, তাই এটি একটি অনুশীলন হিসাবে ছেড়ে গেছে;) (এবং আপনি আপনার ছোটখাটো মোডগুলির জন্য যে অর্ডারটি ব্যবহার করেন তার উপর নির্ভর করে, বা যদি আপনি এগুলি গতিশীলভাবে টগল করেন তবে এটি ভুল হতে পারে)