VSCode智能提示需语言服务器加载、路径可解析、类型信息可用三者齐备;须确认语言模式正确、配置jsconfig.json/tsconfig.json、启用Pylance并校准路径,且所有设置依赖项目级配置与服务重启。

VSCode 的智能提示(IntelliSense)不是装完插件就“开箱即用”的,它的真实能力取决于语言服务器是否加载、路径是否可解析、类型信息是否可用——三者缺一不可。默认配置下,你可能只拿到关键词补全或模糊变量名,而得不到函数参数签名、跨文件跳转、自动导入或路径别名提示。
确认语言服务器已正确加载并运行
这是所有增强的前提。很多用户调了一堆 editor.* 设置却没效果,根本原因是语言服务压根没启动。
- 看右下角状态栏:确保显示的是
TypeScript、Python或Vue等具体语言模式,而不是Plain Text或Unknown - 按
Ctrl+Shift+P→ 输入Change Language Mode→ 手动选对语言(尤其对.vue、.jsx、.pyi等非标后缀) - 写一行明显报错的代码,比如
const a: number = 'hello';,如果没有红色波浪线,说明 TypeScript 服务未启用;Python 项目中import numpy as np; np.arra不提示array,大概率是 Pylance 没接管 - 检查“输出”面板(
Ctrl+Shift+U)→ 切换到Python或TypeScript Server日志,看是否有Starting...或报错信息
配置 jsconfig.json 或 tsconfig.json 解决路径别名与模块解析
不配这个,@src/utils、~components 这类路径补全和 Ctrl+点击跳转会完全失效,IntelliSense 就是“半残”状态。
- 在项目根目录新建
jsconfig.json(JS 项目)或tsconfig.json(TS 项目) - 必须包含
compilerOptions.baseUrl和paths,否则 VSCode 不识别别名 - 务必设置
include明确源码范围,否则语言服务可能跳过关键目录
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@src/*": ["src/*"],
"@api/*": ["src/api/*"]
}
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
保存后,按 Ctrl+Shift+P → TypeScript: Restart TS server(JS 项目也需重启),否则改动不生效。
精细控制 IntelliSense 行为与建议来源
默认建议列表混杂关键字、文件路径、HTML 标签等,干扰核心逻辑。通过精准开关,能让提示聚焦在变量、函数、类上。
- 关闭冗余项:
"editor.suggest.showKeywords": false、"editor.suggest.showFiles": false - 开启关键项:
"editor.suggest.showVariables": true、"editor.suggest.showFunctions": true、"editor.suggest.showClasses": true - 让首项自动高亮:
"editor.suggestSelection": "first",避免每次按方向键选 - 禁用基于单词的模糊补全(易误触):
"editor.wordBasedSuggestions": false - 字符串/注释中不弹建议(防干扰):
"editor.quickSuggestions": { "other": true, "comments": false, "strings": false }
Python 项目必须启用 Pylance 并校准分析路径
Python 默认的 Jedi 引擎类型推断弱、不支持 __future__ 注解、无法识别虚拟环境中的第三方包——Pylance 是唯一能提供接近 IDE 级体验的语言服务器。
- 安装官方
Python扩展(含 Pylance)后,在settings.json中显式指定:"python.languageServer": "Pylance" - 若使用自定义包结构(如
src/下放模块),必须告诉 Pylance 去哪找:"python.analysis.extraPaths": ["./src"] - 启用类型检查:
"python.analysis.typeCheckingMode": "basic"(推荐),否则def foo(x: str)不会触发类型相关提示 - 确保 Python 解释器已正确选择(右下角点击 → “Select Interpreter”),否则 Pylance 读不到
site-packages
最容易被忽略的一点:所有配置都依赖“当前工作区”上下文。全局 settings.json 只影响新开文件夹,而项目级的 .vscode/settings.json 和 jsconfig.json 才决定真实行为。改完不重启 TS/Python 服务、不检查语言模式、不验证路径是否被 include —— 那么再细的配置也只是摆设。










