获取特定键(由描述性名称或按下相应的键指定)与所\e[7~
使用的代码之间的双向字典的最佳方法是什么.inputrc
,反之亦然。
我读过了https://superuser.com/a/269471/728074但这并没有多大帮助。不仅必须在或的输出中查找指定的任何键会很麻烦infocmp -L -1
,infocmp -L -1 xterm
而且.inputrc
它似乎甚至不包含我在.inputrc
文件中找到的键。例如,.inputrc
在这些命令的输出中找不到找到的键“\e[7~”。该问题和答案中给出的其他示例也是如此。
我也读过https://unix.stackexchange.com/questions/76566/where-do-i-find-a-list-of-terminal-key-codes-to-remap-shortcuts-in-bash,但运行sed -n l
时,例如 home 键显示的键与.inputrc
文件建议我应该找到的键不同。
sed -n l
然后按 home 键并输入以下内容:
^[[H
\033[H$
答案1
您链接的答案非常全面且正确。
基本上^[[H
和\033[H
是完全相同的序列,只是同一字符的不同表示形式: 八进制是+033
的二进制代码。Ctrl[
第一行是终端设备输出的本地终端回显,第二行是sed输出的(不包括$
)。
这不应该在其他地方有不同规定。