像\ 027 [0K`]这样的特殊字符序列是什么意思?

时间:2020-07-06 10:43:03

标签: terminal ansi-escape

我从facebook推断中发现了this commit,但我不知道\027[0K\027[%iA是什么意思。 这些特殊字符串是什么意思?而且(我认为),如果还有更多这样的字符串,在哪里可以找到关于此的完整文档?

2 个答案:

答案 0 :(得分:0)

这些是转义序列,可以告诉您的终端该怎么做。 例如,用\027[0K表示的字符序列(其中\027Esc字符的ASCII十进制值)告诉终端“清除从光标到结尾的行”。 可以在https://shiroyasha.svbtle.com/escape-sequences-a-quick-guide-1

中找到有关此主题的一份有用的文档/指南。

答案 1 :(得分:0)

facebook代码是从另一个来源here复制而来的,该来源使用模仿termcap的硬编码格式器(this page提供了一些背景知识)。原始文档带有注释,表明其信息来自何处。

格式化程序将“%i”用于整数。这是光标移动“ cursor-up” \033[A

的重复计数

在大多数语言中,\033(八进制)用于ASCII转义字符。但是此来源(根据github analysis)是用OCaml编写的,并且正在使用十进制值作为ASCII转义字符。根据OCaml语法,您可以使用如下八进制值: \o033

一旦您看到格式化部分(如何表示转义字符,使用%i格式化数字),其余部分就会记录在多个地方。