我在Emacs中安装了Jedi模式。我注意到它覆盖了C-c .
和C-c ,
(goto-definition
和goto-definition-pop-marker respectively
)。
以下是我在init文件中设置的方法:
(setq jedi:setup-keys t)
(add-hook 'python-mode-hook 'jedi:setup)
我正在使用另一种名为multiple-cursors的模式,其设置如下:
(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?
答案 0 :(得分:2)
在Jedi模式键盘映射中取消绑定所需的键:只需将它们绑定到该地图中的nil
即可。
或更改minor-mode-map-alist
中条目的顺序。
见(elisp)Controlling Active Maps
。