私がやりたいのは、C-hがbackwards-delete-charを送信しないようにすることです
inputrcファイルには何もありませんが、bind-pに表示されます
C-h
はデフォルトでbackward-delete-char
にバインドされています。それが気に入らない場合は、.inputrc
の別のコマンドにバインドしてください。
"\C-h": nop
何もしないようにします。
お使いの端末がC-hを送信する場合は BackSpace key¹であり、C-h
が既存のコマンドに明示的にバインドされていない場合(nop
ではない)、C-h
はbackward-delete-char
を実行します。
¹ より正確には、端末の構成がアプリケーションにそうだと伝えている場合。これは、stty設定のerase
文字です。 stty -a
を実行すると、stty設定を表示できます。
nop
にバインドすると、キーアクションが抑制されますが、キーを解放してプレフィックスにする場合は役に立ちません。たとえば、シーケンス「M-c M-i」が、長いコマンドcontrolct sensor instance
を入力するだけのマクロにバインドされるように、関連するマクロのセットのプレフィックスとして「M-c」を専用に設定するとします。当然、「M-cM-d」は他の何かを印刷します。
ただし、デフォルトのバインディング"\ec": capitalize-Word"
があり、これが邪魔になります。キーシーケンス「M-cM-i」を十分に速く(具体的には、keyseq-timeout
readline変数で設定されたミリ秒単位の時間内に)出力すると、目的の動作が得られます。しかし、長引くと、bashは「M-c」のデフォルトのバインディングのみを実行します。 e。 nop
コマンド。したがって、この場合、rebindではなく、キーをunbindする必要があります。 )何もしない何かにそれ。
幸い、readlineはそれを非常に簡単にサポートしています(@ user996142はコメントで正しい構文と参照を提供しました):
"\ec":
単独で一列に並んでいます。これにより、バインディングがクリアされます。
警告時間:Doexec bash -l
をリロードするだけでなく、bash(たとえば、.inputrc
)を再起動します「CxCr」を含むファイル。 readlineはリロード後のバインディングをreportしない場合があります(bind -l
はそれを表示せず、bind -q capitalize-Word
は喜んで "capitalize-Wordはどのキーにもバインドされていません」が、nop
にバインドされているかのようにタイムアウトします。これは、bashまたはreadlineの一部のバージョンのバグです。