我在远程机器上的 Linux 帐户带有以下预定义 .inputrc
"\e[1~": beginning-of-line
"\e[4~": end-of-line
“\e[5~”: history-search-backward
“\e[6~”: history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
set completion-ignore-case on
set bell-style visible
set expand-tilde on
set convert-meta off
set input-meta on
set output-meta on
set show-all-if-ambiguous on
set visible-stats on
Run Code Online (Sandbox Code Playgroud)
我读了GNU bash的文档的话题,但我一直没能找到一个部分解释什么字符序列\e[1~
,\e[5C
,\e\e[D
,等意思。
我觉得我读的地方,\e
手段meta character
(我认为这是Alt
在我的键盘),但不明白什么其他控制字符[
,~
,5D
等意思。
有谁知道关于这个主题的一个很好的参考?
Red*_*ick 24
这些是ANSI 控制代码转义序列,当在“终端”键盘上按下各种非字母数字键时会传输这些序列。
\e 表示 ASCII“ESCAPE”字符(八进制 033 十六进制 1B 十进制 27)。这是命令序列介绍 (CSI) 的一部分。
Escape [ 2 ~
是当您在VT220(或更高版本)终端上按下标记为“插入”的键时传输的字符序列。
许多这些约定已在 xterm 和 Linux 控制台/shell 等软件中采用 - 通常以各种不同的方式进行扩展,有时甚至是不兼容的方式。
在bash的READLINE功能使用这些序列中的描述手册页进行的readline
第二种形式,"keyseq":function-name or macro,keyseq不同 从上面的 keyname 中,表示整个键序列的字符串可能 通过将序列放在双引号内来指定。一些 GNU 可以使用 Emacs 样式的键转义,如下例所示,但 无法识别符号字符名称。 "\Cu": 通用参数 “\Cx\Cr”:重新读取初始化文件 "\e[11~": "功能键 1"
要获取哪些转义序列对应于哪些键盘键的列表,您可以使用诸如infocmp -L -1
或infocmp -L -1 xterm
归档时间: |
|
查看次数: |
9827 次 |
最近记录: |