当我按下时alt + left arrow
,Urxvt 打印[D
,或alt + up arrow
打印[A
。
有没有办法禁用此行为,以便 urxvt 不执行任何操作?
答案1
发生的情况是 urxvt 正在将键和弦Alt+转换Left为转义序列\e\e[D
(我用来\e
表示转义字符)。这是一个合理的选择;另一种常见的是\eO1D
.
您应该配置在终端中运行的应用程序以了解+的\e\e[D
含义。对于 bash 和其他使用 readline 库的应用程序,请在您的代码中添加如下行(在本示例中,我使组合键逐字向后移动):AltLeft~/.inputrc
"\e\e[D": backward-word
或者,配置 rxvt 进行发送\eO1D
(如有必要,请教您的应用程序将其理解为Alt+ Left)。这可能比\e\e[D
没有连续两个控制字符更方便。您可以通过配置 rxvt 的按键绑定X资源。将以下行放入您的文件中~/.Xresources
(许多环境会在您登录时加载它;要手动加载文件,请运行xrdb -merge ~/.Xresources
):
URxvt.keysym.Meta-Left: \033O1D
答案2
这些可以在~/.Xresources
文件中配置。 Urxvt 具有Urxvt*keysym
重新映射键码的选项(请参阅Urxvt 手册页)例如:
Urxvt*keysym.A-Left: command:\000
Urxvt*keysym.A-Right: command:\000
这会将alt+Left和alt+重新映射Right为空。
xrdb ~/.Xresources
为了完成这项工作,您需要记住做什么,并生成一个新的 Urxvt 终端。