“inputrc”文件中键绑定的键名的一般格式是什么?

Mis*_*hko 17 bash readline

我了解inputrc文件中键绑定的格式是:

keyname: function-name or macro
Run Code Online (Sandbox Code Playgroud)

对于keyname,我看到了以下内容:

"\e[B"
"\e[1~"
"\e[5D"
"\M-l"
"\C-[OD"
"\e\e[D"
Run Code Online (Sandbox Code Playgroud)

这些键名的含义是什么,键名的一般格式是什么?请分享指向文档的链接。

jay*_*ngh 13

可以使用以下形式之一完成键绑定:

  1. 键名:command_name
  2. “keystroke_sequence”:命令名称

在第一种形式中,您可以拼出单个键的名称。例如,CONTROL-U 将写为 control-u。这对于将命令绑定到单个键很有用。

在第二种形式中,您指定一个字符串来描述将绑定到命令的键序列。你举的一个例子是 emacs-tyle 反斜杠转义序列来表示特殊键

\C- 控制
\M- 元
\e- 逃脱

您可以使用另一个反斜杠 – 指定一个反斜杠\\。同样'"也可以逃脱 -\'\"

更新

当您按下特殊键时,这些字符由您的终端解释。您不想在键绑定中绑定常规字母和数字,因为您可能会定期使用它们,并且当您不小心碰到已映射到您的~/.inputrc/etc/inputrc文件中的组合时可能会导致问题。

[1~ is what is interpreted by your terminal when you press your HOME button. 
Run Code Online (Sandbox Code Playgroud)

要了解更多信息,只需read在您的终端提示符下输入并按下所有类型的特殊键,如功能键、HOME、END、箭头键等,然后查看显示的内容。

这是我发现的一个小参考,可以提供一些基本的理解。祝你好运!:)

  • `\e[1~`、`\Ml` 和 `\C-[OD` 是什么意思?`\e`、`\M` 和 `\C` 部分很清楚。剩下的呢?例如:`[1~` - 我应该按`Shift`+`{`+`1`+`Shift`+`\``吗? (2认同)