如何在 emacs 中提供真正的别名键序列?

如何在 emacs 中提供真正的别名键序列?

我希望在 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"))

相关内容