为什么不同的终端对 .inputrc 文件中的键有不同的值?

bin*_*ons 3 keyboard-shortcuts xterm rxvt readline

这个问题真的是从这里开始的。我想知道为什么像 rxvt 和 xterm 这样的不同终端在映射组合键时使用不同的值?当我在 rxvt 或 xterm 中时,如何找出键序列的值并将其轻松添加到 .inputrc 文件中?

Gil*_*il' 5

由于歇斯底里的历史原因。硬件制造商并不总是对同一键的通用单一控制序列进行标准化,当玻璃终端被终端仿真器取代时,软件编写者也没有标准化。

您可以通过键入Ctrl+V然后键入键(在大多数 shell 中,或在诸如cat或之类的命令的输入中hexdump)来找出键在特定终端中生成的控制序列。大多数键生成由转义字符和可打印字符组成的控制序列;的Ctrl+V导致要字面上插入转义字符。

幸运的是,各个终端发送的控制序列之间几乎没有冲突。主要的例外是一些终端发送^HforBackspace^?forDelete而其他终端发送^?forBackspace^[[3~for Delete。许多终端可以选择在两种退格/删除模式之间切换。