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(和類似的)方案,它定義了控制轉移對於字母字元加一個很少標點符號。
  • 組合控制+移位通常沒有影響,除了特別的鍵。
  • 一些終端定義了用於控制/轉換的轉義序列特別的鍵(例如遊標鍵和功能鍵)。該tab鑰匙不是這些鑰匙之一。

以下是使用 ASCII 說明控製字元的螢幕截圖:

在此輸入影像描述

相關內容