Appearance
CHT forward tab (CSI I)
CSI Ps ICHT (Cursor Horizontal Forward Tab) advances the cursor forward by N tab stops. The sequence is
CSI Ps I where Ps is the number of tab stops to advance (default 1). Unlike a simple tab character (HT, 0x09) which advances by one tab stop, CHT can jump multiple tab stops in a single sequence. With default 8-column tab stops, CSI 2 I from column 0 would advance to column 16.How this is tested: From column 0, send
\x1b[2I (CHT 2) with default 8-column tab stops, verify cursor advanced to column 16 (two tab stops forward).Supported by 3 of 14 backends (21%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ? unknown | |
| Ghostty | 1.3.1 | ? unknown | |
| Kitty | 0.46.2 | ? unknown | |
| VS Code | 1.113.0 | ? unknown | |
| Warp | 0.2026.03.18.08.24.03 | ? unknown | |
| Cursor | 2.6.21 | ? unknown | |
| Terminal.app | 2.15 | ? unknown |
Headless Backends
Parser correctness only — a ✓ means the parser accepts the sequence.
| Backend | Version | Support | Notes |
|---|---|---|---|
| Alacritty | 0.26.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 |