悬浮提示(Hover)是鼠标悬停标识符0.5秒后弹出的文档框,含签名、docstring等;参数面板(parameterHints)是输入左括号后自动显示的参数名与类型浮层,二者触发机制、内容和配置开关均不同。

悬浮提示(Hover)不是参数面板,别用错快捷键
鼠标停在函数名上 0.5 秒弹出的框叫 hover,它展示的是函数签名、docstring、返回值、类型注解甚至示例代码;而输入 fetch( 后自动浮起的小面板是 parameterHints,只列参数名、类型和默认值,不带说明文字。两者触发机制、内容深度、配置开关全都不一样。
常见错误:按 Ctrl+Shift+Space 想看完整文档,结果只看到 arg0: any —— 这个快捷键只唤出 parameterHints,不是 hover。要看完整说明,直接悬停就行,不需要任何按键。
-
hover不依赖光标位置,只要停在标识符内部(比如fillna的a上)就生效 -
parameterHints必须紧贴左括号右侧(fillna(|)),写成fillna( |)或换行后就失效 - macOS 上
Cmd+Shift+Space常被 Spotlight 拦截,Windows 中文输入法也可能吞掉组合键
editor.hover.enabled 关不了 Pylance/Volar 的 hover
关掉 editor.hover.enabled 只能禁用编辑器原生层的悬停(比如变量值预览、基础类型推导),但 Pylance(Python)、Volar(Vue)、TypeScript Server 这些语言服务器通过 LSP 协议独立注册 hover 提供器,完全无视这个设置。
验证方法:关掉后,在 .py 文件里悬停函数仍有完整 docstring 弹出 → 说明 Pylance 在接管;在 .vue 文件里还有提示 → Volar 默认强制启用 vue.editor.hover.enabled。
- 要真正关闭某语言的 hover,得用语言 ID 配置,例如:
"[typescriptreact]": {"editor.hover.enabled": false} -
vue单文件组件还需额外加:"vue.editor.hover.enabled": false -
html中的 MDN 链接由html.hover控制,不是editor.hover.enabled
参数提示(parameterHints)和补全建议(quickSuggestions)是两回事
editor.parameterHints.enabled 控制的是输入括号时的参数面板;editor.quickSuggestions 控制的是敲字母时弹出的补全候选列表(比如输 doc 弹出 document)。很多人想关“干扰弹窗”,却误关了后者,结果连 console. 后不显示方法都怪 hover。
更隐蔽的是:colorDecorators.enabled(悬停 #ff0000 弹出色板)、editor.suggestFontSize(补全面板字号)这些视觉上类似 hover 的功能,背后配置项完全不同,混在一起调只会越调越乱。
- 关参数面板:搜
editor.parameterHints.enabled→ 设为false - 保留参数面板但手动唤出:关自动触发,留着
Ctrl+Shift+Space按需调用 - 补全建议被插件覆盖?检查 Prettier、IntelliCode 是否悄悄设了
editor.quickSuggestions为false
hover 内容不准,问题大概率不在设置而在语言服务
悬停只显示 function add() 而没有参数说明,90% 是语言服务器没加载成功或没拿到语义信息,不是设置没开。比如 Python 文件右下角显示 Plain Text,Pylance 根本不启动;TS 项目缺 tsconfig.json,类型推导就退化为 any;JSDoc 中间隔了空行,VSCode 就解析不到 @param 字段。
真正卡住人的不是怎么关,而是怎么让 hover 显示得准——它依赖语言模式正确、扩展已启用、注释格式规范、文件已保存(修改 docstring 后不保存,hover 不刷新)。
- 检查右下角语言 ID 是否准确:
typescriptreact≠typescript,python≠py - 大型 monorepo 打开后等 3–5 秒再悬停,状态栏出现
Language Server ready才算就绪 - AI 插件(Copilot、Sesame AI)常劫持 hover 渲染且不报错,临时禁用它们测试最直接











