Bashシェルで行われたキーバインディングを変更できますか?

Bashシェルで行われたキーバインディングを変更できますか?

の場合、bash完了のTabキーをEscキーに変更します。キーバインディングがにあることを知っています/etc/inputrc

しかし、これが可能かどうかはわかりません。

`"\e" : complete`

私のユーザーはEscキーを自動的に実行できるSolarisから来たので、これをしたいと思います。

答え1

completeはい、キーバインディングを変更したり、機能にキーバインディングを追加したりできます。通常、この関数はデフォルトで(Tab+と同じ)にバインドされ、他の関数が続きます。ただし、キー自体をReadline関数にバインドすることはできません。これは、このキーが特別であり、Readlineでいくつかの特定の用途に使用されるためです。CtrliEscEscEscEsc

このEscキーは他のキーシーケンスの接頭辞として使用されるため、単独で入力するとEscReadlineが認識するキーシーケンス全体の最初の部分のみが設定されます。 bashで認識されているすべてのプレフィックスシーケンスのリストを表示するには、Esc次のようにします。

bind -p | grep '"\\e'

Unix端末の処理方法により、Escプレフィックス付きのキーシーケンスは通常キーの組み合わせと同じですAlt。したがって、Esc以下はu+と全く同じです。Altu

このEscキーは、Readlineの対話型履歴検索モードを終了するためにも使用されます。

答え2

Escapeをダブルクリックすると、Tabをクリックするのと同じ効果があります。このように脱出が構成された。

関連情報