VSCode悬停功能默认开启,关键在于排除干扰、补全LSP依赖并校准光标位置:需确认editor.hover.enabled未被工作区设置覆盖,禁用Copilot等劫持插件,确保tsconfig.json/jsconfig.json存在、Python使用Pylance、JSDoc紧贴函数且保存后才刷新。

VSCode 的悬停功能默认就开着,所谓“开启”其实是排除干扰、补全依赖、校准光标位置——不是开关没点,而是 LSP 没就绪或注释没写对。
确认 editor.hover.enabled 真正生效
这个设置控制的是原生悬停自动弹出行为,默认为 true,但容易被覆盖:
- 检查当前工作区的
.vscode/settings.json,删掉或修正其中的"editor.hover.enabled": false - 全局设置可能被工作区设置覆盖,优先改工作区配置
- 禁用所有非必要扩展后测试:按
Ctrl+Shift+P→ 输入Extensions: Show Enabled Extensions→ 逐个关掉 ESLint、Copilot、Tailwind CSS IntelliSense 等 - 打开开发者工具(
Ctrl+Shift+P→Developer: Toggle Developer Tools),切到 Console 标签页,悬停时看是否有HoverProvider not found报错
补全语言服务关键依赖
悬停内容由语言服务器(LSP)生成,缺任何一环都会只显示类型、不显示文档:
- TypeScript/JS 项目必须有
tsconfig.json或jsconfig.json(哪怕空文件也行) - Python 文件右下角必须显示
Python,不是Plain Text;且要装Pylance(不是基础 Python 扩展),并在设置中确认python.languageServer为Pylance - Java 项目需安装
Language Support for Java(TM) by Red Hat,并确保根目录含pom.xml或build.gradle - 第三方库如
lodash悬停只有类型?运行npm install --save-dev @types/lodash补全.d.ts
光标位置和注释格式必须严格合规
VSCode 不会“猜”你想看哪部分的文档,它只响应精准语义锚点:
- 光标必须落在标识符字母上(比如
fetch的f或h),不能停在括号、分号、空格或字符串字面量里 - JSDoc 必须紧贴函数定义,中间不能有空行;必须用
/** */,不用// - Python docstring 要用标准风格(Google/NumPy/Sphinx),含
Args:和Returns:字段才被 Pylance 解析 - Markdown 中图片路径需是相对路径(如
./assets/logo.png),且文件真实存在于当前工作区目录内
GitLens 和图像预览这类特殊悬停要单独开
它们不走原生 editor.hover.enabled 开关,而是各自控制:
- GitLens 悬停靠
gitlens.showCurrentLineBlame控制,默认true;但前提是文件被 Git 跟踪,且状态栏右下角显示仓库信息 - 图像预览依赖
editor.hover.enabled和markdown.preview.imagePreview(后者仅限 Markdown);HTML/CSS 中的img标签需路径静态可解析(不支持import icon from这类动态导入) - Image Preview 扩展(kisstkondor33 版)可增强非 Markdown 场景支持,安装后无需额外配置
最常被忽略的一点:修改了 JSDoc 或 docstring 后,必须保存文件,悬停内容才会刷新——它不监听未保存的编辑缓冲区。











