4
如何找出一个键绑定在哪个键映射中?
我已在中弹回'd'键gnus-article-mode,但是当该点位于附件上时,它的旧行为仍然有效。我可以看到rebinding并没有在那里生效C-h k d,但是它并没有告诉我那时什么键盘映射是有效的,因此我可以重新绑定它。 有办法找到答案吗? 这是一个精确的示例:我正在使用邪恶,并且希望文章处于运动模式。对于我的键盘布局,我将“ d”配置为向上键。 (evil-mode 1) (add-to-list 'evil-motion-state-modes 'gnus-article-mode) (setq evil-emacs-state-modes (remove 'gnus-article-mode evil-emacs-state-modes)) (define-key evil-motion-state-map "d" 'evil-previous-line) 为了确保考虑到邪恶键,我在本地地图中未设置gnus键: (defun as/alter-article-evil-map () (local-unset-key "d")) (add-hook 'gnus-article-mode-hook 'as/alter-article-evil-map) 不幸的是,当该点位于附件上时,“ d”键不再向上,但是它可以让我删除附件。我猜想那时还有其他绑定处于活动状态,因此是个问题。 解决方案我使用keymaps-at-point下面的方法从文本属性中找到使用的键盘映射。然后,我查看了绑定函数的代码以查找键映射的名称gnus-mime-button-map。以下代码实现了我想要的功能: (defun as/alter-article-evil-map () (define-key gnus-mime-button-map "d" nil)) (add-hook 'gnus-article-mode-hook 'as/alter-article-evil-map)