DECSASD / DECSSDT — 状态显示路由与类型(CSI Ps $ } / CSI Ps $ ~)
选择后续输出写入哪个显示面(主屏 vs 状态行 —— DECSASD),以及状态行的用途(DECSSDT)—— DEC VT320 的分屏状态行。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[<Ps>$} (DECSASD) \x1b[<Ps>$~ (DECSSDT)\\033[
\033[1$} / \033[2$~\\e[
\e[1$} / \e[2$~ESC [
ESC [ Ps $ } / ESC [ Ps $ ~hex
1b 5b ... 24 7d / 1b 5b ... 24 7e说明
DEC VT320 第 25 行状态行的两个配套命令 —— 主 24 行显示下方的硬件支持窄条,用于承载 OS 状态、主机名或终端模拟器装饰。**DECSASD**(`\x1b[<Ps>$}`)选择活动状态显示 —— 选定后续写入落在哪一面。`Ps=0` 选主显示(默认),`Ps=1` 选状态行。`\x1b[1$}` 之后光标移动与写入仅作用于第 25 行;`\x1b[0$}` 切回正常输出。**DECSSDT**(`\x1b[<Ps>$~`)设置状态显示类型 —— 配置状态行的用途。`Ps=0` 无状态行(第 25 行归还主显示)、`Ps=1` 指示器(终端拥有该行 —— 显示在线 / 离线、键盘锁定)、`Ps=2` 主机可写(应用通过 DECSASD 拥有该行 —— vim 风标尺 / curses 状态栏的实用模式)。多数现代模拟器不为状态行分配单独行 —— 直接把第 25 行视为主网格的一行,使 DECSASD 几乎成为空操作(光标跳到第 25 行但不发生虚拟分屏),DECSSDT 实际被忽略。这些转义序列仍按 VT 兼容性识别但不带语义分隔。curses 在现代 terminfo 中把它们捕获为 `tsl`(to status line)与 `fsl`(from status line),分别映射到 `\x1b[1$}` 与 `\x1b[0$}`。
规范出处: DEC VT520 RM (DECSASD / DECSSDT)
参数
| Ps (DECSASD) | 活动显示:`0` 主屏、`1` 状态行。 |
| Ps (DECSSDT) | 状态显示类型:`0` 无、`1` 指示器(终端拥有)、`2` 主机可写。 |
示例
# Reserve status line, write to it, return to main:\nprintf '\033[2$~' # DECSSDT: host-writable status\nprintf '\033[1$}' # DECSASD: target status\nprintf 'session: alice@host'\nprintf '\033[0$}' # DECSASD: back to mainimport sys\nsys.stdout.write('\x1b[2$~') # enable host-writable status linefmt.Print("\x1b[1$}") // following writes go to row 25\nfmt.Print("loading...")\nfmt.Print("\x1b[0$}") // back to mainprocess.stdout.write('\x1b[0$~') // disable status line (return row 25 to main)printf("\x1b[2$~\x1b[1$}"); /* enable status + select it */终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 部分 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |