PUM Positioning Unit Mode
Whether cursor movement counts in characters or in SSU units.
CSI 11 h
- ECMA-48
- §F.4.1 PUM – Positioning Unit Mode, p. 87
- DEC STD 070
- §5.10.1.3 Modes That Cannot Be Changed, p. 5-134
Mode 11 decides the unit of the numbers given to the cursor movements, CUF, HPA, HVP and the others. ECMA-48 deprecates it, and moved it to an annex: SSU, Select Size Unit, sets the unit anyway, and its default is the character.
| State | ECMA-48 calls it | Meaning |
|---|---|---|
Reset, CSI 11 l | CHARACTER | one is one character position |
Set, CSI 11 h | SIZE | one is the unit SSU selects |
DEC STD 070 §5.10.1.3, p. 5-134 lists it among the X3.64 modes a DEC terminal may treat as fixed, as reset. The VT510 manual’s table of modes for DECRPM marks it as always reset.
xterm ignores CSI 11 h and CSI 11 l (ansi_modes handles only modes 2, 4, 12 and 20), and DECRQM reports the mode as permanently reset, 4 (do_ansi_rqm). libghostty-vt ignores it too, but does not recognize the number, so it answers DECRQM with 0. Both DECRQM cases are known differences.
Validation
PUM-1: Reported as permanently reset
\e[11$p
|_____|
reply \e[11;4$y
PUM-2: Even after it is set
\e[11h
\e[11$p
|_____|
reply \e[11;4$y
PUM-3: Movement still counts characters
\e[11h # ignored
\e[3C
A
|___A_|
cursor 1,5