Skip to content

VS Code 集成终端中小键盘(Numpad)按键完全无响应

问题

在 VS Code 的集成终端(Integrated Terminal)内运行 opencode TUI 时,数字小键盘(Numpad 0-9、Enter、小数点、运算符)完全不响应,按键没有任何效果。

在独立终端(如 Ghostty、kitty、macOS Terminal.app)中运行 opencode 时小键盘工作正常,说明问题出在 VS Code 集成终端与 opencode TUI 的交互上。

WSL2 环境(Windows + VS Code Remote - WSL)和直接的 VS Code 集成终端均可复现。

涉及版本:VS Code 1.110.0+,opencode 1.2.x ~ 1.3.x,Linux / Windows / macOS 均有报告。

原因

VS Code 1.110 对集成终端的键盘事件处理进行了调整,导致 Numpad 键的转义序列(escape sequences)与 opencode TUI 使用的键盘输入库不匹配。这是 VS Code 上游的 bug,已有 PR microsoft/vscode#299408 修复。

在 VS Code 修复合入并发版前,opencode 侧无法单独解决此问题。

解决方案

方案一:改用独立终端运行 opencode

用系统终端或其他独立终端仿真器启动 opencode,而不是通过 VS Code 集成终端:

  • macOS:Terminal.app、iTerm2(非 VS Code 集成)
  • Linux:Ghostty、kitty、GNOME Terminal
  • Windows:Windows Terminal(独立窗口)

opencode VS Code 扩展仍然可以连接到这个外部终端实例。

方案二:降级 VS Code(临时)

降级到 VS Code 1.109 可以恢复 Numpad 功能:

bash
# 从 VS Code 历史版本页面下载 1.109
# https://code.visualstudio.com/updates/v1_109

但降级会失去 1.110+ 的其他功能,不推荐长期使用。

方案三:等待 VS Code 修复

关注 microsoft/vscode#299408 的合并状态,更新 VS Code 到包含该修复的版本后问题自动解决。

来源:GitHub #16100