Skip to content

SR — shift right (CSI Ps SP A)

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

CSI Ps SP A
SR (Shift Right) horizontally scrolls the display contents right by N columns within the current scroll region. The sequence is ESC [ Ps SP A — note the literal space character before A, which distinguishes SR from CUU (ESC [ Ps A). Default Ps=1. Columns shifted off the right edge are discarded; blank columns are inserted at the left edge. SR is the horizontal counterpart of SD (Scroll Down) and the inverse of SL (Shift Left). Like SL, it's rarely used in modern terminal applications and many emulators either don't implement it or treat it as a no-op. Specified in ECMA-48 alongside SU/SD/SL.
How this is testedautomated
Write "ABCDEFGH" on row 1, send \x1b[2 A (SR 2), verify the sequence is consumed without leaving literal characters on screen. Most headless backends don't implement column shifts, 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 8 of 14 backends (57%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yessequence consumed
Ghostty1.3.1✓ yessequence consumed
VS Code✓ yes
Warp✓ yes
Cursor✓ yes
Terminal.app✓ yes

Headless Backends

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

BackendVersionSupportNotes
Alacritty0.26.0✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps
Kitty0.40.0✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps
vt100.js0.2.1✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps
vterm0.2.0✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps
WezTerm0.1.0-fork.5✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps
xterm.js5.5.0✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps