Gia*_*one 17 documentation special-characters history
我很久以前就开始使用 Linux 控制台,但我从来没有质疑过抑扬符又名脱字符 ( ^
)。我想问一下为什么它被用来代替这个词Ctrl
。
前几天我在使用 nano 时想到了它,我也在互联网上搜索是否有一些答案,但我发现的只是关于“它是什么”和“它代表什么”的问题。
有什么历史原因吗?或者它来自一些奇怪的约定?
Tho*_*key 11
抑扬^
符( ) 等同于电传打字机上的向上箭头字符。到 SunOS 等出现时,这部分已经过去 10 多年了。在数学表达式中使用了相同的字符(替换),例如,^
表示幂(其他一些可能使用**
)。在 Pascal 中它也被用来表示指针。
用于指示控制字符,此日期(至少)在 1980 年之前。例如,您可以在 DEC 文档中找到它(在 1970 年代中期我使用 teco 时肯定会使用它。1973 年的实用程序手册(第 927 页)显示controlC了实例。
寻找合适的来源,我找到了 Gil Smith 的Teletypewriter Communication Codes,它足以将其置于 1960 年代后期(证明起源也是 Unix 之前的):
ASCII-63 与当前的 ASCII-67 版本基本相同。控制字符(上面的 col-1)的定义在两个版本之间有所不同,定义如下。此外,在 ASCII-63 中,上面的 32 个位置 (col-4) 未定义,除了三个:RUB (0x7F)、ACK (0x7C) 和 ESC (0x7E)。ASCII-63 中对 ALT-MODE 字符 (0x7D) 的引用不一致。1967年的版本中,RUB变成了DEL并保持原样,但ACK和ESC移到了控制字符区(col-1)。在 ASCII-67 中,^ 替换了向上箭头符号,而 _ 替换了向左箭头
ASCII-63 和 ASCII-67 是 ASCII 的常见变体,但似乎也有一些过渡版本:在 Teletype Model 33 手册中,引用了 1965 年的 ASCII 版本,用 SS 代替了 SUB (0x1A), \ 代表@ (0x40), ~ 代表\ (0x5C), 一个奇数字符代替 | (0x7C) 和 | 对于 ~ (0x7E)。M33 和 M35 机器的电传打字机代码卡指示 1966 年版本的 ASCII,尽管卡上显示的可打印字符在所有版本中都是相同的。
这曾经是众所周知的,因为在不同编码(如 ASCII 和 EBCDIC)之间交换文件的问题,在 ASCII 中不再存在字符之后,仍有打印机能够呈现向上箭头。