Linux 终端中的 Ctrl+X 快捷键系列(例如 Ctrl+X Ctrl+E)到底是如何处理的?

Linux 终端中的 Ctrl+X 快捷键系列(例如 Ctrl+X Ctrl+E)到底是如何处理的?

我看了很多网上资源提到Ctrl几个以+开头的复合快捷键X

Ctrlx Ctrle:编辑 $EDITOR 程序中的当前行,如果未定义则编辑 vi。

Ctrlx Ctrlr:读取 inputrc 文件的内容,并合并其中找到的任何绑定或变量分配。

Ctrlx Ctrlu:增量撤消,每行单独记住。

Ctrlx Ctrlv:显示当前bash实例的版本信息。

Ctrlx Ctrlx:将光标替换到原来的位置。 (Cx,因为 x 具有交叉形状)。

但我找不到一个官方文档源来列出所有可能的Ctrl+ X+<something>组合,而且我什至不知道查找 man of: is is bash? 的工具是什么?阅读线? xterm?

那么Linux 终端中这些复合Ctrl+ X+快捷方式到底是如何处理的呢?<something>

答案1

linux 终端直接处理的字符可以用 列出stty -a。其他任何事情都由您正在运行的应用程序处理,并且按键序列的列表应位于该应用程序的文档中。

这里最有可能涉及的应用程序是您的 shell。大多数现代 shell(包括 bash、zsh 等)要么使用 readline 库,要么自行实现行编辑。 readline 库和大多数在没有 readline 的情况下执行此操作的 shell 从emacs编辑器中派生出它们的按键序列(尽管 vi 绑定也可能可用),特别是以 开头的ctrl-x来自 emacs 的按键序列,以及C-x特别的符号(对于 ctrl- x) 来自 emacs 文档。 (只是为了澄清——除非您正在运行 emacs,否则 emacs 不会执行此操作。应用程序只是复制了功能以供自己使用。)

答案2

处理Ctrl+ X+<something>等更多内容的是“readline”库,涵盖它的文档可以在GNU 重击者

Ctrl+快捷键<something>的描述有些神秘,C-<something>因为 Control 键的名称可能因您的计算机而异。

另请参见/etc/inputrc和 可能/etc/inputrc.keys

相关内容