CHT Cursor Horizontal Tabulation
Move the cursor forward n tab stops.
CSI Pn I
- Defaults
- Pn = 1
- ECMA-48
- §8.3.10 CHT – Cursor Forward Tabulation, p. 34
- VT510
- CHT—Cursor Horizontal Forward Tabulation
Do what a horizontal tab does, Pn times: move the cursor right to the next tab stop, stopping at the right margin if there are no more. A 0 is taken as 1. CBT goes the other way.
Support
| Terminal | Version | Support | Notes |
|---|---|---|---|
| VT220 | manual, 2nd ed., 1984 | No | not in the manual |
| VT510 | manual, 1st ed., 1993 | Yes | CHT |
| xterm | patch 412, xterm-411a | Yes | |
| libghostty-vt | 0f171f6 | Yes | |
| kitty | 0.49.1, run in a VM | Yes | passes the 2 cases that show it working |
| foot | 1.28.0, run in a VM | Partly | fails CHT-3 of the 3 cases that show it working |
| pyte | 0.8.2, run as a library | No | fails the 3 cases that show it working |
| xterm.js headless | 6.0.0, run as a library | Yes | passes the 3 cases that show it working |
| alacritty_terminal | 0.26.0, run as a library | Yes | passes the 3 cases that show it working |
| ConEmu | build 230724, its documentation | No | not in its list: ANSI escape codes |
| rxvt-unicode | 9.31, run in a VM | Yes | passes the 3 cases that show it working |
| VTE | 0.84.1, run as a library | Yes | passes the 3 cases that show it working |
Validation
CHT-1: One tab stop
\e[?5W # reset tab stops
\e[I
X
|________X___________|
CHT-2: Several tab stops
\e[?5W # reset tab stops
\e[2I
X
|________________X___|
CHT-3: Stops at the right margin
\e[?5W # reset tab stops
\e[9I
X
|___________________X|