Skip to content

TBC clear tab stop (CSI g)

Category: text · Baseline: core · Tags: ECMA-48 Standard, VT100 · Specification ↗

CSI Ps g
TBC (Tab Clear) clears tab stops. CSI 0 g clears the tab stop at the current cursor position; CSI 3 g clears all tab stops. After clearing all tab stops, tab characters have no effect (cursor does not advance). TBC is used together with HTS to set up custom tab stop patterns for formatted output.
How this is testedautomated
Clear all tab stops with \x1b[3g, send a tab from column 0 — verify cursor does not advance (stays at column 0), confirming all tab stops were cleared.

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

Not supported by any tested terminal. Part of the Core TUI baseline.

Supported by 0 of 14 backends (0%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✗ nocursor at col 80, expected 1
Ghostty1.3.1✗ nocursor at col 270, expected 1
VS Code✗ no
Warp✗ no
Cursor✗ no
Terminal.app✗ no

Headless Backends

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

BackendVersionSupportNotes
Alacritty0.26.0✗ noTab stop clear (TBC) not exposed via alacritty_terminal API
Kitty0.40.0✗ noTab stop clear (TBC) not exposed via Python batch bridge
vt100.js0.2.1✗ noTab stop manipulation not implemented in vt100.js
vterm0.2.0✗ noTab stop manipulation not implemented in vterm.js
WezTerm0.1.0-fork.5✗ noTab stop clear (TBC) not exposed via wezterm-term API
xterm.js5.5.0✗ noTab stop clear (TBC) not implemented in xterm.js headless mode