为了支持更复杂的屏幕显示，许多终端驱动程序都支持ANSI转义序列。

当驱动程序看到ESC字符(0x1B)时，它设置一个标志以接收全部的转义序列，并负责解释转义序列的含义。

有两种类型的转义序列：不包含可变参数的；可能包含参数的。不包含参数的比如`ESC M`。包含参数的以`ESC[`开头，这个`[`就是**控制序列引导码**（CSI, **control sequence introducer**）。

| 转义序列 | 含义                                                         |
| -------- | ------------------------------------------------------------ |
| ESC[nA   | 向上移动n行                                                  |
| ESC[nB   | 向下移动n行                                                  |
| ESC[nC   | 向右移动n行                                                  |
| ESC[nD   | 向左移动n行                                                  |
| ESC[m;nH | 移动到m行n列                                                 |
| ESC[sJ   | 清屏。s=0，光标到结尾。s=1,开头到光标。s=2,开头到结尾。      |
| ESC[nL   | 插入n行                                                      |
| ESC[nM   | 删除n行                                                      |
| ESC[nP   | 删除n个字符                                                  |
| ESC[n@   | 插入n个字符                                                  |
| ESC[nm   | 开启字符特效。n为数字，m为字符'm'。n=0正常，n=1加粗，n=4下划线，n=5闪烁，n=7反显。 |
| ESC M    | 把光标向上移动一行，如果光标在顶行则向下滚动屏幕             |

