Add DECSCUSR cursor shape changes for vi mode switching
Resolved 💬 3 comments Opened Mar 27, 2026 by mikegilchrist Closed Mar 31, 2026
When editorMode is set to vim, the cursor shape doesn't change between normal and insert modes. Most vi-mode implementations (vim, neovim, zsh vi-mode, fish) send DECSCUSR escape sequences to visually distinguish modes:
- Insert mode: blinking bar (
\033[5 q) or steady bar (\033[6 q) - Normal mode: blinking block (
\033[1 q) or steady block (\033[2 q)
This is a well-established UX pattern that helps users know which mode they're in at a glance, without relying on a status indicator. It works across most modern terminals (kitty, iTerm2, WezTerm, Alacritty, Windows Terminal, etc.).
Requested behavior: When vi mode is active, send DECSCUSR sequences on mode transitions. Ideally configurable, but even hardcoded block/bar would be a big improvement.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗