Appearance
Grapheme Cluster Cursor Movement
Cursor movement (CUF/CUB) should respect grapheme cluster boundaries. Moving the cursor back over a ZWJ emoji sequence should skip the entire sequence, not individual codepoints. Many terminals still move by codepoint rather than grapheme cluster.
How this is testedautomated
Write an emoji ZWJ sequence, move cursor back by 1, verify cursor position.
Write an emoji ZWJ sequence, move cursor back by 1, verify cursor position.
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 9 of 14 backends (64%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.3.1 | ✓ yes | |
| VS Code | ✗ no | ||
| Warp | ✗ no | ||
| Cursor | ✗ no | ||
| Terminal.app | ✗ no |