Ctrl+K Ctrl+I是VSCode唯一可靠的手动触发悬浮提示方式,它绕过延迟与开关直接调用语言服务器,但要求光标紧贴有效符号、语言模式正确且LSP已就绪。

Ctrl+K Ctrl+I 是唯一可靠的手动触发方式
VSCode 没有“自定义悬停快捷键”这个概念——editor.hover.delay 控制的是鼠标悬停自动弹出的等待时间,而真正能手动唤出完整文档提示的,只有 Ctrl+K Ctrl+I(Windows/Linux)或 Cmd+K Cmd+I(macOS)。它绕过所有延迟、缓存和 editor.hover.enabled 开关,直接向语言服务器发一次同步请求。
这个组合键不依赖 hover 自动机制,所以改 editor.hover.delay 对它完全没影响。但它极度敏感于上下文:
- 光标必须落在符号内部(比如
fetch的f或useState的s),不能在括号、空格、分号、注释或 import 路径斜杠后 - 右下角语言模式必须正确(如显示
TypeScript,不是Plain Text) - 大型项目首次打开时,状态栏若还在显示
Loading...或图标旋转中,按了也白等
为什么改了 keybindings.json 也绑定不了 hover 命令
你找不到类似 editor.action.showHover 这样的官方命令 ID —— VSCode 没暴露这个接口给用户绑定。所有尝试在 keybindings.json 里写 "command": "xxx.hover" 的配置,要么无效,要么触发的是其他副作用(比如聚焦面板)。
真正生效的只有内置的 Ctrl+K Ctrl+I,它对应一个硬编码的底层动作,无法被覆盖、重映射或禁用。想“自定义”,唯一办法是用 AutoHotKey(Win)或 Karabiner(macOS)做系统级按键重映射,但会失去上下文感知能力,不推荐。
想让 Ctrl+K Ctrl+I 更快响应,该调什么
它本身没有 delay 参数可调,但响应慢通常不是快捷键问题,而是语言服务卡在加载或解析阶段:
- 检查项目根目录是否有
tsconfig.json或jsconfig.json(JS/TS 必需,空文件也行) - 确认
files.watcherExclude已排除node_modules、dist等大目录,否则 Volar/Rust Analyzer 会反复扫描 - 临时禁用 Copilot、Sesame AI 等插件——它们常劫持 hover 提供器却不报错,导致原生提示消失
- 打开
Developer: Toggle Developer Tools→ Console,悬停后看有没有HoverProvider not found或Request cancelled
禁用自动悬停但保留 Ctrl+K Ctrl+I
只需设 "editor.hover.enabled": false。这只会关掉鼠标悬停自动弹窗,对 Ctrl+K Ctrl+I 完全无影响。
这是最干净的方案,尤其适合多显示器、触控板误触频繁的场景。搭配以下设置更顺手:
- 把
editor.hover.delay保持默认500或设为400(避免设0导致空白闪屏) - 确保
workbench.statusBar.visible为true,方便随时看语言服务是否就绪 - 别删掉
editor.hover.sticky(默认true),否则手动唤出的提示框一移开鼠标就消失
真正容易被忽略的是:修改注释(JSDoc/docstring)后,必须保存文件,hover 内容才更新——它不监听未保存的编辑缓冲区。


















