![bash readline inputrc:将密钥绑定到多个命令序列](https://linux22.com/image/162876/bash%20readline%20inputrc%EF%BC%9A%E5%B0%86%E5%AF%86%E9%92%A5%E7%BB%91%E5%AE%9A%E5%88%B0%E5%A4%9A%E4%B8%AA%E5%91%BD%E4%BB%A4%E5%BA%8F%E5%88%97.png)
我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 "