将“\r7[1A7[K”写入标准输出有什么作用?
What does writing "\r\027[1A\027[K" to stdout do?
我在终端(在 OCaml 中)遇到了一些用于聊天应用程序的代码,并在之前将这个字符串(在 ASCII 中?)“\r7[1A7[K”打印到终端中一条新的用户消息打印到终端。
我已经尝试一个一个地搜索文字,所以我知道“\r”代表 ASCII 中的墨盒 return 和 7
代表 ESC,但是“[1A”和“ [K”做什么?这是什么字符编码?
最后,这个命令的综合效果是什么?
[
引入了一个控制序列。 A
是“光标向上”的控制序列,[1A
将光标向上移动1行。 K
擦除一行。所以 \x1b[1A\x1b[K
向上移动一行并删除它(用空格替换它)。
当然,这只有在接收到该字符串的终端识别控制序列时才有效。并非所有人都这样做。
见https://en.wikipedia.org/wiki/ANSI_escape_code
我不确定 027 想做什么。这似乎是一个错误,应该是 033。
我在终端(在 OCaml 中)遇到了一些用于聊天应用程序的代码,并在之前将这个字符串(在 ASCII 中?)“\r7[1A7[K”打印到终端中一条新的用户消息打印到终端。
我已经尝试一个一个地搜索文字,所以我知道“\r”代表 ASCII 中的墨盒 return 和 7
代表 ESC,但是“[1A”和“ [K”做什么?这是什么字符编码?
最后,这个命令的综合效果是什么?
[
引入了一个控制序列。 A
是“光标向上”的控制序列,[1A
将光标向上移动1行。 K
擦除一行。所以 \x1b[1A\x1b[K
向上移动一行并删除它(用空格替换它)。
当然,这只有在接收到该字符串的终端识别控制序列时才有效。并非所有人都这样做。
见https://en.wikipedia.org/wiki/ANSI_escape_code
我不确定 027 想做什么。这似乎是一个错误,应该是 033。