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. With no tab stop remaining, a tab (HT) advances the cursor to the right margin rather than doing nothing (DEC VT220 reference manual §4.8 — with no next tab, HT moves the cursor to the right margin). 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 1 — verify the cursor advances to the right margin (DEC VT220 reference manual §4.8), confirming no tab stop remained.

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-09-28

Supported by 1 of 12 terminals (8%). Part of the Core TUI baseline.

Supported by 1 of 14 backends (7%)

Terminal Applications ​

TerminalVersionSupportNotes
iTerm23.6.9✗ nocursor at col 80, expected 1
Ghostty1.3.1✗ nocursor at col 270, expected 1
Kitty0.46.2✗ noTab stop clear (TBC) not exposed via Python batch bridge
VS Code✗ no
Warp✗ no
Cursor✗ no
Terminal.app✗ no

Headless Backends ​

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

BackendVersionSupportNotes
vterm.js0.2.0✓ yesTab stop manipulation not implemented in vterm.js
Alacritty0.26.0✗ noTab stop clear (TBC) not exposed via alacritty_terminal API
vt100.js0.2.1✗ noTab stop manipulation not implemented in vt100.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