Readline バインディングは Control と Shift 修飾子では機能しません。

Readline バインディングは Control と Shift 修飾子では機能しません。

BashでGNU Readlineのキーバインディングを調整しています。具体的には、次のようなマッピング効果を得ようとしています。

Control' ==> 'I'

ControlShift' ==> "I"

Control` ==> `I`

Control[ ==> [I]

ControlShift[ ==> {I}

I拡張カーソル位置を示します。

私はこれを持っています~/.inputrc。ただし、<C-`>マッピングのみが期待どおりに機能します。

$include /etc/inputrc
$if mode=emacs
"\C-\'": "\'\'\C-b"
"\C-`": "``\C-b"
"\C-\"": "\"\"\C-b"
"\C-{": "{}\C-b"
"\C-[": "[]\C-b"
$endif

私の設定にどのような問題があるのか​​、そしてこれらのマッピングを正しく実行する方法(可能な場合)を知りたいのですが。

ベストアンサー1

端末では一般的には得られないみんな制御修飾子と移動修飾子の組み合わせは異なる値を持ちます。

  • ベースコントロールそして移動する定義するUS-ASCII(および同様の)スキームでコントロールそして移動するアルファベット文字の場合は、1つを追加してください。珍しい文のコード。
  • コンビネーションコントロール+シフト通常、以下を除いて効果はありません。特別なキー。
  • 一部の端末は、制御/変換のためのエスケープシーケンスを定義します。特別なキー(例:カーソルキーとファンクションキー)。このtabキーはこれらのキーの1つではありません。

以下は、ASCIIを使用して制御文字を説明するスクリーンショットです。

ここに画像の説明を入力してください。

おすすめ記事