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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗