次要模式覆盖另一个次要模式键绑定

Minor mode overriding another minor mode key binding

我在 Emacs 中安装了 Jedi 模式。我注意到它覆盖了 C-c .C-c ,goto-definitiongoto-definition-pop-marker respectively)。

以下是我在初始化文件中的设置方式:

(setq jedi:setup-keys t)
(add-hook 'python-mode-hook 'jedi:setup)

我正在使用另一种称为多光标的模式,其设置如下:

(add-to-list 'load-path "~/.emacs.d/multiple-cursors.el/")
(global-set-key (kbd "C-c .") 'mc/mark-next-like-this)
(global-set-key (kbd "C-c ,") 'mc/mark-previous-like-this)

加载 jedi-setup 后,它会重新绑定我的 C-c .C-c ,。我想做的是保留我的多个游标绑定并重新映射 Jedi 的绑定。我尝试将其添加到 Jedi 设置的末尾,但它最终将 Jedi 函数同时映射到 C-c./ 和 C-c j/k。

(setq jedi:key-goto-definition (kbd "C-c k"))
(setq jedi:key-goto-definition-pop-marker (kbd "C-c j"))

发生这种情况的原因是 Jedi 将它们绑定到常规的 C-c ./, 映射上,然后再添加另一个 C-c j/k 映射。

如何阻止 Jedi 完全不绑定到 C-c ./,而只绑定到 C-c j/k?

在 Jedi 模式键盘映射中取消绑定所需的键:只需将它们绑定到该映射中的 nil

或更改 minor-mode-map-alist 中条目的顺序。

参见(省略)Controlling Active Maps