bash readline inputrc:将密钥绑定到多个命令序列

bash readline inputrc:将密钥绑定到多个命令序列

shift-tab必须shell-expand-line在我的.inputrc.但是,我还想shift-tab在执行完后插入一个空格字符shell-expand-line。我怎样才能做到这一点?

这就是我.inputrc目前的样子:

"^[[Z": shell-expand-line

^[[Z就是shift-tab看起来的样子。我尝试了以下可能性,但它们不起作用:

"^[[Z": "shell-expand-line "
"^[[Z": shell-expand-line " "
"^[[Z": shell-expand-line" "

答案1

绑定必须指定内置命令或文本宏(将插入的字符串),而不是两者的组合。但宏可以包含另一个绑定键序列指定命令以及要插入的任何字符。由于shell-expand-line已经在 bash 中绑定到 CMe,所以您需要做的就是

"\e[Z": "\e\C-e "

如果您想使用尚未具有此类绑定的命令,则可以创建一个中间绑定,例如

"\C-\xff": shell-expand-line
"\e[Z": "\C-\xff "

相关内容