Appearance
HTS set tab stop (ESC H)
ESC HHTS (Horizontal Tab Set) sets a tab stop at the current cursor column. The sequence is
ESC H. After setting a custom tab stop, subsequent HT (tab) characters will stop at that column. HTS works in conjunction with TBC (Tab Clear) to allow applications to define custom tab layouts. Default tab stops are every 8 columns, but HTS allows finer control for columnar data alignment.How this is testedautomated
Clear all tab stops with
Clear all tab stops with
\x1b[3g, position cursor at column 5 and send \x1bH (HTS), return to column 0 and send a tab — verify cursor advances to column 5.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 11 of 14 backends (79%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.3.1 | ✓ yes | |
| VS Code | ✓ yes | ||
| Warp | ✓ yes | ||
| Cursor | ✓ yes | ||
| Terminal.app | ✓ yes |
Headless Backends
Parser correctness only — a ✓ means the parser accepts the sequence.
| Backend | Version | Support | Notes |
|---|---|---|---|
| Alacritty | 0.26.0 | ✓ yes | |
| Kitty | 0.40.0 | ✓ yes | |
| WezTerm | 0.1.0-fork.5 | ✓ yes | |
| xterm.js | 5.5.0 | ✓ yes | |
| vt100.js | 0.2.1 | ✗ no | Tab stop manipulation not implemented in vt100.js |
| vterm | 0.2.0 | ✗ no | Tab stop manipulation not implemented in vterm.js |