Appearance
CBT backward tab (CSI Z)
CSI Ps ZCBT (Cursor Backward Tab) moves the cursor backward by N tab stops. The sequence is
CSI Ps Z where Ps is the number of tab stops to move back (default 1). If the cursor is between two tab stops, CBT moves it to the previous tab stop. CBT is useful for navigating columnar data in reverse. If there are no more tab stops to the left, the cursor moves to column 1.How this is tested: Position cursor at column 20, send
\x1b[Z (CBT 1) with default 8-column tab stops, verify cursor moved back to column 16.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 |