Terminal 为什么终端将escape表示为^[?
据我所知,转义字符可以用以下方式表示Terminal 为什么终端将escape表示为^[?,terminal,escaping,pty,Terminal,Escaping,Pty,据我所知,转义字符可以用以下方式表示 八进制:\033 十六进制:\x1B 小数点:27 unicode:\u001B 在我的终端:^[ 前4种表示法在不同的数字系统中只是小数点27。但最后一种表示法似乎与小数点27没有任何联系,它似乎是任意的。因此我想知道为什么选择了小数点27作为终端中表示转义的方式,以及这是如何发生的 但是最后一个表示法^[似乎与十进制数27没有任何联系 乍一看似乎如此,但实际上,两者之间存在着联系 首先,您需要了解,像^[这样的符号中的插入符号意味着按住控制键的同时按
- 八进制:\033
- 十六进制:\x1B
- 小数点:27
- unicode:\u001B
- 在我的终端:^[
^[
似乎与十进制数27没有任何联系
乍一看似乎如此,但实际上,两者之间存在着联系
首先,您需要了解,像^[
这样的符号中的插入符号意味着按住控制键的同时按[,因此^[
是ctrl-[。换句话说,转义键的作用与ctrl-[(在终端中)完全相同。(至于为什么转义键会产生这个特定字符:请参阅我答案的第二部分。)
字符[
在ASCII中编码为十进制91或0x5b,但查看二进制表示法最有用:0b01011011。^[
或转义键编码为十进制27或0b00011011。如果我们对齐这两个二进制数:
[ 0b01011011
^[ 0b00011011
我们可以看到^[
只是一个清除了位7的[
。事实上,添加控制键基本上只是清除字符代码的前三位
因此,^[
和27之间的联系是91− 64=27:)
为什么选择
^[
作为终端中表示逃逸的方式
我完全不知道