Nol*_*ias 2 terminal escape-characters
这个命令是什么?我知道,CSI n ; m H用于将光标移动到n行和m列,但是标题中的命令是什么?^[[H^[[2J?
这是^[清除屏幕并将光标至少在类似 xterm 的终端中置于顶部的序列的视觉表示(其中表示 ESC 字符):
$ TERM=xterm tput clear | cat -v\n^[[H^[[2J\nRun Code Online (Sandbox Code Playgroud)\n\n要了解这些转义序列,请查看.txt附带的ctlseqs.txtxterm文档。在那里,您会发现:
\n\n\nESC [
\n
\n 控制序列引入符(CSI 为 0x9b)。
和:
\n\n\n\n\nCSI Ps;Ps H
\n
\n 光标位置 [行;列](默认 = [1,1])(CUP)。
和:
\n\n\n\n\nCSI Ps J 显示器擦除 (ED)。
\n
\n Ps = 0 -> 删除下方(默认)。
\n Ps = 1 -> 删除上面的内容。
\n Ps = 2 -> 全部删除。
\n Ps = 3 -> 删除已保存的行 (xterm)。
(请注意,这^[[2J不会清除已保存的行或备用屏幕)。
tput clear(或clear) 在xterm类似终端上的作用与 相同printf \'\\e[H\\e[2J\'。为此,它查询数据库以了解名称存储在环境变量中的终端的功能terminfo的字符序列是什么。如果您将终端条目转储到数据库中clear$TERMxtermterminfoinfocmp xterm,您将在其中看到:
$\xc2\xa0infocmp -1 xterm | grep clear\n clear=\\E[H\\E[2J,\nRun Code Online (Sandbox Code Playgroud)\n\n这是了解给定转义序列的另一种方法:
\n\n$\xc2\xa0infocmp -L -1 | grep J\n clear_screen=\\E[H\\E[2J,\n clr_eos=\\E[J,\nRun Code Online (Sandbox Code Playgroud)\n\n(此处使用L功能的 ong 名称)。然后,您可以man 5 terminfo对这些功能进行描述。