Problem
In VS Code 1.116 integrated terminal, Shift+number keys (e.g., Shift+1 for !) produce digits instead of symbols when using Neovim. This only affects VS Code terminal; Ghostty, and other terminals work correctly.
Environment
- Neovim: nightly (post-2026-04-19)
- VS Code: 1.116 (released 2026-04)
- OS: macOS (Windows/Linux unconfirmed)
- Terminal: VS Code integrated terminal (xterm.js)
Steps to reproduce
- Open VS Code integrated terminal
- Launch
nvim
- Enter
:
- Press
Shift+1 expecting !
- Observe
1 appears instead
Root cause
VS Code added Kitty keyboard protocol support via xterm.js. Neovim detects this and sends CSI > 3 u to enable:
- bit0: Disambiguate escape codes
- bit1: Report event types
Problem
In VS Code 1.116 integrated terminal,
Shift+numberkeys (e.g.,Shift+1for!) produce digits instead of symbols when using Neovim. This only affects VS Code terminal; Ghostty, and other terminals work correctly.Environment
Steps to reproduce
nvim:Shift+1expecting!1appears insteadRoot cause
VS Code added Kitty keyboard protocol support via xterm.js. Neovim detects this and sends
CSI > 3 uto enable: