禁用 urxvt 中的键码打印

禁用 urxvt 中的键码打印

当我按下时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+Leftalt+重新映射Right为空。

xrdb ~/.Xresources为了完成这项工作,您需要记住做什么,并生成一个新的 Urxvt 终端。

相关内容