是否可以更改 bash shell 中完成的键绑定?

是否可以更改 bash shell 中完成的键绑定?

对于bash,我会将用于补全的 Tab 键修改为转义键。我知道键绑定是在/etc/inputrc.

但我不知道这样的事情是否可行:

`"\e" : complete`

我想这样做是因为我的用户来自 Solaris,其中转义键可以自动完成。

答案1

是的,可以更改键绑定或向complete功能添加键绑定。该函数通常默认绑定到(与+Tab相同),后跟另一个.但是,无法将密钥本身绑定到任何 Readline 函数。这是因为该密钥很特殊,并且在 Readline 中有几个特定的​​用途。CtrliEscEscEscEsc

Esc键用作其他键序列的前缀,因此Esc单独输入 an 仅设置 Readline 识别的完整键序列的初始部分。要查看 bash 中识别的所有 - 前缀序列的列表Esc,例如:

bind -p | grep '"\\e'

由于 Unix 终端的处理方式,Esc带有 - 前缀的按键序列通常与 - 键组合相同Alt。所以Esc后面的跟+u完全相同。Altu

Esc键还用于退出 Readline 的交互式历史搜索模式。

答案2

双击 Escape 与单击 Tab 具有相同的效果。这样,escape就已经配置完成了。

相关内容