Skip to content

CPL cursor preceding line (CSI F)

Category: cursor · Tags: ECMA-48 Standard · Specification ↗

CSI Ps F
CPL (Cursor Preceding Line) moves the cursor to the beginning of the line N rows up. The sequence is CSI Ps F (default Ps=1). Unlike CUU, which preserves the column, CPL always sets the column to 1. CPL is the complement of CNL (Cursor Next Line, CSI E) — CNL moves down, CPL moves up, and both reset the column to the left margin.
How this is tested: Position cursor at row 5, col 10, send \x1b[2F (CPL 2), verify cursor is at row 3, column 0.

Supported by 5 of 14 backends (36%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9? unknown
Ghostty1.3.1? unknown
Kitty0.46.2? unknown
VS Code1.113.0? unknown
Warp0.2026.03.18.08.24.03? unknown
Cursor2.6.21? unknown
Terminal.app2.15? 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