【发布时间】:2020-06-22 17:44:29
【问题描述】:
iTerm2 中的以下内容是做什么用的?例如:
-
^2到^9和^---> 发送十六进制代码0x00..0x7f? -
⌥↑和⌥↓--> 发送十六进制代码:0x1b 0x1b 0x5b 0x41...
为了将所有内容合而为一,我们以一种格式良好的方式提出了问题:
【问题讨论】:
iTerm2 中的以下内容是做什么用的?例如:
^2 到 ^9 和 ^- --> 发送十六进制代码 0x00 .. 0x7f ?⌥↑ 和 ⌥↓ --> 发送十六进制代码:0x1b 0x1b 0x5b 0x41...为了将所有内容合而为一,我们以一种格式良好的方式提出了问题:
【问题讨论】:
简短回答:为了与旧终端兼容。真正的终端是专用硬件,而不是窗口系统中的应用程序!
关于 ^0...^9 个:终端通常使用 7 位 ASCII 代码,字符代码范围从 0 到 127,包括 0 到 127。用于字母、数字和标点符号的代码 32-126(因为它们仍然是 Unicode)。 127 通常是 DELETE 键(尽管有时该键会发送代码 8,“退格”,导致 problems which persist in FAQ lists to this day。CTRL-A 到 CTRL-Z 将生成相应的 ASCII 代码减去 64,即 1-26。其余代码可能更难生成。CTRL-@ 通常给你一个 0,但有时它在 CTRL 空间上。27-31 范围通常在 CTRL 加上“ASCII 减 64 " 位置,因此例如 CTRL-] 会给你 0x1D,但是有些终端将这些代码映射到 CTRL-number,而 iTerm2 中的那些映射似乎是为了迎合人们习惯了这样的终端。
至于 alt-arrow 给出 1b 1b 5b 41,即 ESC ESC [ A 。现在 ESC [ A 是单独向上箭头的一个相当常见的序列,并且在它前面加上一个额外的转义符可能会让 Emacs 用户感到高兴,因为它使 Alt 键可以作为他们的 Meta 键。其他的多字节序列我没有看过,但我猜他们有类似的解释。
【讨论】: