Skip to content

In Neovim Shift+number keys produce digits instead of symbols with Kitty keyboard protocol #5823

@wngtk

Description

@wngtk

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

  1. Open VS Code integrated terminal
  2. Launch nvim
  3. Enter :
  4. Press Shift+1 expecting !
  5. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions