我希望在 Emacs 中,按键序列 FOO 是序列 BAR 的真正别名。每当输入 FOO 时,它都应执行与输入 BAR 相同的操作。
我不能使用类似的东西:
(global-set-key (kbd "FOO") (key-binding (kbd "BAR")))
这将 FOO 绑定到 BAR 的当前操作。如果 BAR 稍后被重新映射或被次要模式覆盖或隐藏,则 FOO 不会反映这一点。
我尝试使用以下方法来解决这个问题:
(global-set-key (kbd "FOO")
(lambda ()
(interactive)
(key-binding (kbd "BAR")))
但这仍然不是真正的别名。lambda 的交互规范与 BAR 所绑定的操作不同。我想我可以使用 来解决这个问题(interactive (advice-eval-interactive ...))
,但对于听起来像基本功能的东西来说,它似乎太复杂了。
所以也许我错过了一些用于执行键别名的 Emacs API?
答案1
你可以试试:
(global-set-key (kbd "FOO") (kbd "BAR"))