堆栈溢出!在过去的几天里,我试图稍微定制我的emacs,我遇到了一个我不知道如何处理的问题.
我要做的是定义一个全局键绑定和一个ido模式键绑定,它将使用相同的键来做不同的事情.
Ido-mode键绑定以这种方式定义:
(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)
Run Code Online (Sandbox Code Playgroud)
它工作正常,直到我将以下行放在我的.emacs文件中:
(global-set-key (kbd "M-<return>") 'insert-newline-and-indent)
Run Code Online (Sandbox Code Playgroud)
使用此行,M-return甚至从ido-switch-buffer调用insert-newline-and-indent.有趣的是,当我以交互方式使用global-set-key时(即不是来自init-file而是来自Mx调用),一切都按预期工作.
谢谢你的帮助.对不起我的英语不好.
问题原来是我打开的ergoemacs模式.此模式定义了导致此效果的global-set-key的建议.
我通过在ergoemacs初始化之上移动global-set-key调用来解决问题.不是最好的解决方案,而是简单的解决方案.
该问题是由 ergoemacs-keybindings 包引起的,或者更具体地说,是由 ergoemacs-mode.el 引起的
该包定义了 global-set-key 的建议,事实上,它用自己的 ergoemacs-global-set-key 替换了它。但由于 ergoemacs 是次要模式,因此它的键盘映射比全局映射具有更高的优先级,从而覆盖 ido 次要模式的键绑定。
我看到这个问题的三个解决方案:
| 归档时间: |
|
| 查看次数: |
491 次 |
| 最近记录: |