如何让 xterm 将 Alt 键作为 Meta 发送给 emacs?

如何让 xterm 将 Alt 键作为 Meta 发送给 emacs?

我看到有人问过这个问题多种的 。那里给出的解决方案似乎不适用于我的设置。以下是我的故事:

我使用 ubuntu 12.0.04 LTS,带有 xmonad(不是通过 gnome),并使用 xterm 进行工作。我更喜欢使用 xterm,而不是其他终端或 emacs 自己的窗口。使用 emacs -nw 时,我发现无法识别 Alt。我使用 xev 验证了确实生成了 Alt。此外,如果我使用 rxvt,我会看到 emacs -nw 识别了 Alt。我正在使用邪恶模式(作为长期使用 vim 的用户和 emacs 新手),我真的不希望我的 Esc 键重新绑定为 alt(这是另一个线程中给出的解决方案)。我应该怎么做?(如果有帮助,在未运行 emacs 的 xterm 窗口上按 Alt-x 会生成“ø”,或者如果我运行emacs -nw -Q)。

答案1

正如所见建筑维基,你需要让 Xterm 向程序发送正确的转义键:

如果您使用该Alt键作为键盘快捷键,那么您将需要资源文件中的此项:

XTerm*metaSendsEscape: true

因此,只需这样做:

echo 'XTerm*metaSendsEscape: true' >> ~/.Xresources

并重新启动您的 Xterm 会话。

答案2

如果更新 ~/.Xresources 对你不起作用,请按照文档说明进行更新~/.Xdefaults

http://frequal.com/linux/XTermMetaSendsEscape.html

答案3

有一个有趣的替代方法来管理你的.Xdefaults/.Xresources文件,即直接提供资源字符串作为xterm命令行选项:

xterm -xrm 'xterm*VT100.metaSendsEscape: true'

例如,如果您有自定义别名,这很方便x-terminal-emulator

相关内容