补全不弹出需先确认语言模式正确(如.py文件显示Python而非Plain Text)且对应官方扩展(如ms-python.python)已安装激活;再检查editor.suggestOnTriggerCharacters和editor.quickSuggestions是否启用,Python还需选对解释器路径并确保IntelliCode项目模型已配置。

补全不弹出?先看语言模式和扩展是否就位
VSCode 的补全不是“开关一开就灵”,它依赖两个硬性前提:当前文件被识别为正确语言(比如 .py 文件右下角显示 Python 而非 Plain Text),且对应语言的扩展已安装并激活。常见失效场景包括:
- 新建未保存的
Untitled-1文件,默认是Plain Text,补全完全不工作;必须先保存为.js或.py等后缀 - 装了
Pylance但没装ms-python.python主扩展,Pylance 不会启动 - 打开
.ts文件却看到状态栏写着TypeScript(老版 TS Server),而非TypeScript (Semantic)或Pylance (IntelliCode),说明 AI 增强未接管
验证方式:把光标停在任意变量上,看是否有悬浮类型提示;输入 . 后是否弹出成员列表;按 Ctrl+Space 是否有建议框。三者任一失败,优先检查这两项。
触发补全失败?查 editor.suggestOnTriggerCharacters 和 editor.quickSuggestions
VSCode 默认只在输入 .、[、( 等字符时自动弹建议,但这个行为受两个设置控制。若你发现敲字母没反应、敲点也不弹,大概率是它们被关了或配错了:
-
editor.suggestOnTriggerCharacters必须为true,否则.、:等不会触发 -
editor.quickSuggestions需按上下文启用:例如 JavaScript 项目里,"javascript": true比全局true更稳妥;Python 用户常忽略"python": true这一项 - 字符串内补全默认关闭,如需在
fetch("...")的引号里也提示路径或变量,得显式设"strings": true
修改位置:Cmd+Shift+P → Preferences: Open Settings (JSON),直接编辑 JSON,避免 GUI 设置覆盖语言专属配置。
Python 补全找不到 requests?八成是解释器没选对
第三方库补全缺失,90% 以上不是 VSCode 问题,而是 Python 扩展压根没连上你装了 requests 的那个环境。关键动作只有两步:
- 按 Cmd+Shift+P →
Python: Select Interpreter,路径必须指向虚拟环境内的python可执行文件(如./venv/bin/python或./.venv/Scripts/python.exe),不能是系统 Python - 选完后看右下角是否显示该路径;再打开命令面板运行
Python: Show Output,切换到Python面板,确认日志里有Starting Pylance language server且无ModuleNotFoundError - 如果用 Poetry,务必先终端执行
poetry shell,再从该 shell 启动 VSCode(code .),否则 VSCode 看不到 Poetry 环境里的包
注意:python.analysis.autoImportCompletions 设为 false 也会屏蔽 import 补全,这个开关常被误关。
IntelliCode 模型加载慢或不生效?别跳过 IntelliCode: Configure IntelliCode Model
装完 IntelliCode 扩展只是第一步,它默认用通用模型,对项目代码风格、自定义类型、团队约定几乎无感知。要真正“变聪明”,必须手动绑定模型:
- Cmd+Shift+P → 输入并运行
IntelliCode: Configure IntelliCode Model - 选择当前语言(如
TypeScript),再选Project-specific model(首次会下载缓存,耗时可能 1–2 分钟) - 成功后,VSCode 会在项目根目录生成
.vscode/intellicode.json,内容类似{"modelId": "typescript-project-xxx"} - 若状态栏仍只显示
Pylance而非Pylance (IntelliCode),重启窗口(Cmd+Shift+P →Developer: Reload Window)
这个步骤容易被跳过,导致你以为 IntelliCode “没用”——其实它根本没加载项目专属模型,还在用泛化程度极高的通用底模。


















