堆栈溢出!在过去的几天里,我试图稍微定制一下我的 emacs,但我遇到了我不知道如何解决的问题。
我想做的是定义一个全局键绑定和一个 ido 模式键绑定,它们将使用相同的键来做不同的事情。
Ido 模式键绑定定义如下:
(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 初始化之上解决了这个问题。不是最好的解决方案,而是一个简单的解决方案。
该问题是由 ergoemacs-keybindings 包引起的,或者更具体地说,是由 ergoemacs-mode.el 引起的
该包定义了 global-set-key 的建议,事实上,它用自己的 ergoemacs-global-set-key 替换了它。但由于 ergoemacs 是次要模式,因此它的键盘映射比全局映射具有更高的优先级,从而覆盖 ido 次要模式的键绑定。
我看到这个问题的三个解决方案:
- ergoemacs-mode.el 中的注释掉建议。
- 在打开 ergoemacs-mode 之前使用 global-set-key。
- 等待 ergoemacs 作者修复该错误;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)