Skip to content

DECIC — insert columns (CSI Ps ' })

Category: editing · Baseline: rich · Tags: Xterm Extensions · Specification ↗

CSI Ps ' }
DECIC (DEC Insert Column) inserts N blank columns at the cursor's column position, shifting all content to the right of the cursor further right. The sequence is ESC [ Ps ' } — note the apostrophe (intermediate) before }. Default Ps=1. Columns shifted past the right margin are discarded. DECIC is the horizontal/column counterpart of IL (Insert Lines): IL inserts blank rows by shifting content down, DECIC inserts blank columns by shifting content right. It only operates on cells within the current scroll region (top/bottom margins) and the current left/right margin region if DECLRMM (mode 69) is enabled. Originally a VT420 feature, supported by xterm and some other modern terminals but not universally implemented.
How this is testedpartial
Write content on multiple rows, position cursor in the middle, send \x1b[2'} (DECIC 2), verify the sequence is consumed without leaving literal characters on screen. Most headless backends don't implement column inserts, so verification is partial.

The same probe runs against headless backends (via Termless) and real terminal apps (via a daemon launched in each terminal). This lets us distinguish parser correctness from rendering correctness.

Analysis2026-04-06

Supported by all 9 tested terminals — universal adoption. Part of the Rich TUI baseline.

Supported by 11 of 14 backends (79%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yessequence consumed
Ghostty1.3.1✓ yessequence consumed
Terminal.app2.15✓ yessequence consumed
Kitty0.46.2✓ yessequence consumed
VS Code1.113.0? unknown
Warp0.2026.03.18.08.24.03? unknown
Cursor2.6.21? unknown

Headless Backends

Parser correctness only — a means the parser accepts the sequence.

BackendVersionSupportNotes
Alacritty0.26.0✓ yes
vt100.js0.2.1✓ yes
vterm0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes