问题: EmacsW32 是 Emacs 的一个版本,它允许用户让 Emacs 将“Windows”键视为“Meta”键(而不是将 Alt 键视为“Meta”键)。尽管这如宣传的那样有效,但问题是当您想为“Alt”键创建 Emacs 键绑定时会发生什么?
问题:在这种情况下,有没有办法允许 Emacs 捕获并创建与“Alt”键的键绑定,即使它现在认为“Windows”键是新的 Meta?
要确定 Emacs 是否完全识别了您的 Alt 键:输入C-h c
,然后输入一些以 Alt 开头的组合键,例如 Alt-f。
如果它显示“ M-f runs the command forward-word
”(例如),那么 Emacs 也将您的 Alt 键视为 Meta 键,并且您绑定到 Meta 的任何内容都将与 Windows 键和 Alt 键一起使用,因此无法使 Alt键的工作方式与 Windows 键不同。
如果它显示“ Hyper f is undefined
”或“ Super f is undefined
”(例如),那么 Emacs 将您的 Alt 键分别识别为 Hyper 或 Super,并且您可以将命令绑定到以 Hyper 或 Super 开头的键绑定,并且这些将与您的 Alt 键一起使用。
如果它根本没有反应,则意味着它没有将 Alt 键识别为任何东西,并且您在 Emacs 中无能为力:Emacs 甚至没有获得该键。在这种情况下,正如另一个答案所说,您应该查找xmodmap
Windows 的等价物——这与注册表有关;Windows 版 GNU Emacs 常见问题解答部分关于如何交换 CapsLock 和 Control?有一些关于这个的相关细节(“扫描码”);另见这个页面。
您可以将 Windows 和 Alt 键都绑定到Meta
,也可以将 Alt 键分配给不同的更改键。Emacs 提供了这些可能的绑定:
Shift
Control
Meta
Hyper
Super
您将不得不查看系统文档以了解如何将物理键绑定到这些(例如man xmodmap
X 窗口)。
您可能想查看EmacsW32 中 Super 和 Hyper 键上的线程。
我还没有反弹我的 Meta 键(仍然在 Alt 上——我最常使用它)但是 Super 和 Hyper 可以绑定到各种 windows 和 app 键。