DECRQM — 模式状态查询(CSI ? Ps $ p)
询问终端某个 DEC 私有模式是否已启用 —— 运行时特性检测的标准方式。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[?Ps$p\\033[
\033[?Ps$p\\e[
\e[?Ps$pESC [
ESC [ ? Ps $ phex
1b 5b 3f <Ps> 24 70说明
Request Mode(DEC 私有变体)。中间字节 `$`(0x24)+ 末字节 `p`(0x70)使其成为针对 DEC 私有模式 `Ps` 的 DECRQM 帧。回复:`\x1b[?Ps;Pm$y`,其中 `Pm` 取值:0(不识别该模式)、1(已置位/启用)、2(已复位/关闭)、3(永久置位)、4(永久复位)。这是程序在运行时查询某特性是否可用的标准做法 —— `\x1b[?2026$p` 查同步输出、`\x1b[?1004$p` 查焦点事件、`\x1b[?2004$p` 查括号粘贴、`\x1b[?1006$p` 查 SGR 鼠标编码。无 DECRQM 时,程序只能乐观发送然后听天由命。注意:ANSI 模式变体(不带 `?`)`\x1b[Ps$p` 查询 KAM、IRM、SRM 等非 DEC 模式。
规范出处: xterm-ctlseqs (DECRQM, CSI ? Ps $ p)
示例
printf '\033[?2026$p' # is synchronized-update mode available?import sys; sys.stdout.write('\x1b[?2026$p')fmt.Print("\x1b[?2026$p")process.stdout.write('\x1b[?2026$p')printf("\x1b[?2026$p");终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 部分 | 部分 | 支持 | 支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |