跳到主要内容
ansicode

DECRQM — 模式状态查询(CSI ? Ps $ p)

询问终端某个 DEC 私有模式是否已启用 —— 运行时特性检测的标准方式。

字节形式

涵盖所有常见的字符串字面量写法,方便正反查找。

\\x1b[\x1b[?Ps$p
\\033[\033[?Ps$p
\\e[\e[?Ps$p
ESC [ESC [ ? Ps $ p
hex1b 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)

示例

bash
printf '\033[?2026$p'   # is synchronized-update mode available?
python
import sys; sys.stdout.write('\x1b[?2026$p')
go
fmt.Print("\x1b[?2026$p")
javascript
process.stdout.write('\x1b[?2026$p')
c
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
支持

相关序列

在家族食谱中

CSI 食谱 · 4. 查询 —— DA、DA2、DSR、DECRQM