跳到主要内容
ansicode

CSI ? Ps n — 私有 DSR(扩展状态查询)

DEC 私有设备状态报告 —— 扩展光标位置(?6 DECXCPR 含页号)、打印机 / UDK / 定位器 / 宏空间 / 内存校验和等状态。

字节形式

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

\\x1b[\x1b[?<Ps>n
\\033[\033[?6n
\\e[\e[?6n
ESC [ESC [ ? Ps n
hex1b 5b 3f ... 6e

说明

前缀 `?` 把标准 DSR(`\x1b[<Ps>n`)切换到 DEC 的私有 DSR 命名空间,Ps 含义随之扩展。**`?6n` DECXCPR**(扩展光标位置报告)最实用:终端回复 `\x1b[?<行>;<列>;<页>R`,额外包含当前显示页号 —— 原始 DSR-6 的回复(`\x1b[<行>;<列>R`)省略页号。其他有用查询:**`?15n`** 打印机状态 —— 回复 `\x1b[?10n`(就绪)/ `?11n`(未就绪)/ `?13n`(无打印机);**`?25n`** UDK 锁定状态 —— 回复 `\x1b[?20n`(解锁)/ `?21n`(锁定);**`?26n`** 键盘语言 —— 回复 `\x1b[?27;<Ps>;<Pm>;<Pp>n`,Ps = 语言(1 = 北美、2 = 英式等);**`?53n`** / **`?55n`** 定位器状态;**`?62n`** 宏空间 —— 回复 `\x1b[<Pn>*{`(剩余宏空间字节数);**`?63;Ps n`** 内存校验和 —— 回复 `DCS Pp ! ~ Ps ! P校验和 ST`;**`?75n`** 数据完整性;**`?85n`** 多会话状态。多数现代模拟器最多只实现 `?6n` 加一个 `?13n`(无打印机)桩,其余不回应或回应被静默忽略。模式状态查询请用 DECRQM(`\x1b[<Ps>$p`),私有 DSR 仅用于上述少数几项。

规范出处: DEC VT510 RM (private DSR) / xterm-ctlseqs

参数

Ps私有 DSR 选择子。常见值:`6` 扩展光标位置(DECXCPR)、`15` 打印机、`25` UDK、`26` 键盘、`53` / `55` 定位器、`62` 宏空间、`63;n` 校验和、`75` 数据完整性、`85` 会话数。

示例

bash
printf '\033[?6n'   # DECXCPR — reply: \x1b[?<row>;<col>;<page>R
python
import sys; sys.stdout.write('\x1b[?15n'); sys.stdout.flush()   # query printer status
go
fmt.Print("\x1b[?26n")   // query keyboard dialect
javascript
process.stdout.write('\x1b[?62n')   // macro-space available bytes
c
printf("\x1b[?6n");   /* DECXCPR — get cursor pos + active page */

终端支持

xterm
支持
Linux console (fbcon)
部分
macOS Terminal.app
部分
iTerm2
部分
Windows Terminal
部分
cmd.exe / ConPTY
不支持
kitty
部分
alacritty
部分
WezTerm
部分
Ghostty
部分
GNOME Terminal
部分
Konsole
部分
tmux
不支持
GNU screen
不支持

相关序列