计算器!在过去的几天里,我试图稍微调整我的emacs,我遇到了一个我不知道如何处理的问题。
我要做的是定义一个全局键绑定和一个ido-mode键绑定,它将使用相同的键来执行不同的操作。
Ido-mode keybinding以这种方式定义:
(defun ido-my-keys ()
"Add my keybindings for ido."
(define-key ido-completion-map (kbd "M-<return>")
'ido-invoke-in-vertical-split)
)
(add-hook 'ido-setup-hook 'ido-my-keys)
它可以正常工作,直到我将以下行放在我的.emacs文件中:
(global-set-key (kbd "M-<return>") 'insert-newline-and-indent)
使用此行存在M-return甚至从ido-switch-buffer调用insert-newline-and-indent。有趣的是,当我以交互方式使用global-set-key时(即不是来自init-file而是来自M-x调用),一切都按预期工作。
感谢您的帮助。抱歉我的英文。
问题原来是我打开的ergoemacs模式。此模式定义了导致此效果的global-set-key的建议。
我通过在ergoemacs初始化之上移动global-set-key调用来解决问题。不是最好的解决方案,而是一个简单的解决方案。
答案 0 :(得分:3)
问题是由ergoemacs-keybindings包引起的,或者更具体地说,是由ergoemacs-mode.el
引起的。该软件包定义了global-set-key的建议,实际上,它是用自己的ergoemacs-global-set-key替换它的。但由于ergoemacs是次要模式,因此其键映射的优先级高于全局映射,从而覆盖了ido次模式的键绑定。
我看到了解决该问题的三种方法: