直接关 editor.hover.enabled 只禁用编辑器原生层悬停,Pylance、Volar 等语言服务器通过 LSP 独立提供 hover,不响应此设置;需按语言 ID(如 "[typescriptreact]")或扩展专属配置(如 "vue.editor.hover.enabled")逐层关闭,并区分 colorDecorators.enabled、editor.parameterHints.enabled 等伪 hover 控制项。

直接关 editor.hover.enabled 就行,但关不干净——它只管编辑器原生层,Pylance、Volar、Rust Analyzer 这些语言服务器压根不认这个开关。
为什么关了 editor.hover.enabled 还有提示?
VSCode 的悬停提示来自三个独立通道:编辑器原生层(受 editor.hover.enabled 控制)、LSP 语言服务器(如 Pylance 提供 Python 类型/文档)、扩展自定义 hover(如 Volar、GitLens、HTML MDN)。关掉全局开关,只切断第一层。
- 常见现象:
.js文件不弹了,但一打开.py或.vue,悬停照常出现 - 验证方法:关掉后悬停任意变量,仍有内容 → 说明某扩展在“硬推” hover
- 别碰
editor.hover.delay:设成0不是关闭,反而容易卡顿或触发渲染异常
怎么在 settings.json 里正确写全局禁用
改 settings.json 是最稳的方式,生效快、不用重启:
"editor.hover.enabled": false
- 这个值必须是布尔类型
false,不能写成字符串"false" - 如果已存在该字段,直接改值;不存在就加进去,放在顶层对象内即可
- 改完立刻生效,但注意:它对
colorDecorators.enabled、gitlens.showCurrentLineBlame等伪 hover 完全无效
哪些“看起来像 hover”的东西不是 editor.hover.enabled 管的
这些功能视觉上干扰一致,但控制开关完全不同,单独关才有效:
- 悬停
#ff0000弹出色板?关colorDecorators.enabled - 输入
fetch(时弹出参数面板?那是editor.parameterHints.enabled - HTML 标签上显示 MDN 链接?搜
html.hover并关掉 - 代码行旁显示
Last modified by alice@abc123?关gitlens.showCurrentLineBlame - 终端里悬停路径变可点击?关
terminal.integrated.showLinkHover
真正难搞的是多层 hover provider 同时注册——你看到的一个提示框,背后可能来自编辑器、语言服务器、GitLens 三者之一,而 VSCode 不提供 hover 来源追溯功能。得靠禁用+观察+逐个排除。


















