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 说明控制字符的屏幕截图:

在此输入图像描述

相关内容