我看到有人问过这个问题多种的 次。那里给出的解决方案似乎不适用于我的设置。以下是我的故事:
我使用 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
答案3
有一个有趣的替代方法来管理你的.Xdefaults
/.Xresources
文件,即直接提供资源字符串作为xterm
命令行选项:
xterm -xrm 'xterm*VT100.metaSendsEscape: true'
例如,如果您有自定义别名,这很方便x-terminal-emulator
。