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 tested: Write an emoji ZWJ sequence, move cursor back by 1, verify cursor position.
Analysis2026-03-26
Supported by 7 of 13 backends (54%)
Terminal Applications โ
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | โ yes | |
| Ghostty | 1.3.1 | โ yes | |
| tmux | 3.6a | โ yes | |
| VS Code | 1.112.0 | โ no | width=6, expected 2 |
| Warp | 0.2026.03.18.08.24.03 | โ no | width=6, expected 2 |
| Cursor | 2.6.21 | โ no | width=6, expected 2 |
| Kitty | 0.46.2 | โ no | width=8, expected 2 |
| Terminal.app | 2.15 | โ no | width=8, expected 2 |
| GNU Screen | 5.0.1 | โ no | Screen 4.x does not support grapheme cluster cursor positioning |