Ame*_*ina 8 keyboard-shortcuts terminal escape-characters
我的理解是终端经常使用 ANSI 控制代码来表示非字母数字字符序列。例如,.inputrc
在 Linux 中为 Bash 进行编辑时,很容易找到如下所示的代码序列:
"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
Run Code Online (Sandbox Code Playgroud)
上面的命令定义了 Bash 命令history-search-backward
等的键绑定。
现在,在 bash 中,我可以read
查看在我的键盘中输入的字符如何映射到 ANSI 控制代码。例如,如果我运行read
,然后输入Ctrl-P
,我得到:^P
。同样,如果我输入 Alt-W
,我会得到:^[W
。
我的问题是:是否有相反的程序、工具或网站?即输出或显示我需要在我的键盘上键入以获得给定的 ANSI 控制代码序列的键盘键序列的工具。例如,输入^[W
应该输出:Alt-W
谢谢!
infocmp
可以帮助。它写 escape as\E
而不是\e
or ^[
。
例如,要 find \e[A
,这是您的历史搜索向后:
$ infocmp -1x | grep -F '=\E[A,'
cuu1=\E[A,
$ man 5 terminfo | grep ' cuu1 '
cursor_up cuu1 up up one line
Run Code Online (Sandbox Code Playgroud)
它告诉你向上按光标,也就是向上箭头。
请注意,您需要使用-x
标志(如上所示)来显示一些组合,例如Ctrl+ <-。
这些扩展键不是标准的一部分,因此它们没有列在 terminfo 手册页中,但它们记录在terminfo 文件中。
另请注意,控制顺序因您使用的终端而异。
您可以获取有关通过使用不同的终端信息infocmp -1x <terminal>
,例如infocmp -1x rxvt
,infocmp -1x putty
等等。
一旦您弄清楚 terminfo 认为您拥有哪一个,如果您将TERM
变量设置为匹配,事情就会变得更容易。
归档时间: |
|
查看次数: |
1199 次 |
最近记录: |