DECALN — 屏幕对齐测试图案(ESC # 8)
用大写 `E` 字形填满整屏 —— DEC 的 CRT 对齐测试,验证「页面缓冲是否正确接通」的标准烟囱测试。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\x1b#8\033#8\e#8ESC # 81b 23 38说明
Screen Alignment Test。**C1 级**转义序列(无 CSI、无参数 —— `ESC # 8`,共三字节),将活动页面的每个单元填充 ASCII 字符 `E`(0x45)。最初是 DEC VT100 系列的硬件诊断:亮且均匀的 `E` 图案让维修工程师可以轻易验证 CRT 电子束的偏转线性(每个 `E` 不论位置都应大小形状一致),以及页面内存正确寻址所有行 / 列(无单元丢失、无行重复)。今天在软件模拟器上主要被终端模拟器测试套件使用 —— vt100 / vt220 / xterm 兼容性测试发 `ESC # 8` 来验证模拟器网格大小与寻址正确。 关键行为: - 填充**尊重当前页面大小** —— 若启用了 DECCOLM 132(`\x1b[?3h`,slug `deccolm`),DECALN 涂 132 列 `E`;80 列模式则涂 80 列。 - 填充时**所有 SGR 属性被重置** —— 每个被涂单元使用默认前 / 后景,无加粗 / 斜体 / 下划线。这使 DECALN 成为一字节内的「视觉 sgr-reset + 清屏」。 - 填充后光标**归位**到第 1 行 / 第 1 列。 - DECALN 忽略 DECOM(原点模式)与滚动区域 —— 永远从边到边涂整个页面。 现代模拟器支持参差:xterm 与 mlterm 忠实实现(测试套件依赖它);kitty / wezterm / ghostty / alacritty 多数实现(成本低 —— 一字节识别、一屏填充)但少数省略。Linux fbcon 与 Windows Terminal 静默忽略。用途:模拟器测试套件、复古 / VT100 忠实屏保、模拟器开发中调试网格问题。不要发给终端用户 —— 它会立刻摧毁屏上一切。
规范出处: DEC VT100 (DECALN) / xterm-ctlseqs
参数
示例
printf '\033#8' # fill screen with E\nsleep 2\nprintf '\033[2J\033[H' # clear screen + home cursor — back to normalimport sys, time\nsys.stdout.write('\x1b#8') # smoke test the grid\nsys.stdout.flush()\ntime.sleep(0.5)\nsys.stdout.write('\x1b[2J\x1b[H') # clear// Cheap emulator-correctness probe: DECALN, then DSR cursor-pos, expect (1,1):\nfmt.Print("\x1b#8")\nfmt.Print("\x1b[6n") // → \x1b[1;1R if homing workedprocess.stdout.write('\x1b#8') // alignment pattern\nprocess.stdout.write('\x1b[2J\x1b[H') // restore clean statefputs("\x1b#8", stdout); /* fill */\nfputs("\x1b[2J\x1b[H", stdout); /* clear + home */终端支持
- xterm
- 支持
- Linux console (fbcon)
- 不支持
- macOS Terminal.app
- 支持
- iTerm2
- 支持
- Windows Terminal
- 不支持
- cmd.exe / ConPTY
- 不支持
- kitty
- 支持
- alacritty
- 支持
- WezTerm
- 支持
- Ghostty
- 支持
- GNOME Terminal
- 部分
- Konsole
- 支持
- tmux
- 不支持
- GNU screen
- 不支持
| xterm | Linux console (fbcon) | macOS Terminal.app | iTerm2 | Windows Terminal | cmd.exe / ConPTY | kitty | alacritty | WezTerm | Ghostty | GNOME Terminal | Konsole | tmux | GNU screen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 不支持 | 支持 | 支持 | 不支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 部分 | 支持 | 不支持 | 不支持 |