Vim mode: emit cursor shape escape sequences on mode switch
Resolved 💬 3 comments Opened Mar 11, 2026 by cfutschik Closed Mar 15, 2026
When using vim keybindings in Claude Code, the cursor stays as a solid block regardless of the current mode. Most tools with vim mode emit ANSI cursor shape escape sequences to visually distinguish modes:
- Insert mode → beam/bar cursor (
\e[6 q) - Normal mode → block cursor (
\e[2 q)
This is standard behavior in neovim, zsh vi-mode, Zed, and other vim-mode implementations. The visual feedback makes it immediately obvious which mode you're in without needing to check a mode indicator.
Current behavior: Cursor shape stays the same (block) in all vim modes.
Expected behavior: Cursor changes to a beam/bar in insert mode and a block in normal mode, matching the convention used by other vim-mode tools.
Environment: macOS, iTerm2, vim keybindings enabled.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗