插入符号方括号方括号A ^[[A - 是什么意思?

Phi*_*ill 17 terminal escape-characters

抱歉,如果这已经被问到,但我不知道如何自己找到这个 - 当我在任何搜索引擎中搜索 "^[[A" 时,它完全忽略了 "^[[" 部分。

无论如何,我的问题是:有时在终端(在 Mac 上)按下箭头键时,会出现字符“^[[A”、“^[[B”、“^[[C”或“^[[D” . 我似乎记得几年前在使用(很可能)DOS 时也遇到过这种情况,而且我认为它发生的频率也更高。

为什么会发生这种情况,它们是什么意思?

Gre*_*ill 23

这些是ANSI 转义码。的^[代表ESC(逃逸)字符,接下来[是一个实际的左括号和字母表示转义码的功能。该Esc[部分称为CSI(控制序列引入器)。所以序列CSI A意味着向上箭头,或 CUU(CUrsor Up)。

不管怎样,这个方案可以追溯到VT100显示终端(1978年推出)的时代。VT100 使用的一些转义序列在 1980 年代初期由 ANSI 标准化,此后一直被普遍使用。

通常,当您按下箭头键时,某些程序(例如外壳程序)正在侦听并可以对其进行操作。因此,当您点击向上箭头时,它会在您的命令历史记录中向后滚动。但是,如果正在运行的程序理解箭头键的转义序列,那么它们通常最终会被回显到终端,就像您可能按下的任何其他键一样。所以这就是为什么你有时会看到^[[A你是否按下了向上箭头键。