vscode补全失效主因是语言模式错误、pylance未启用或缺失jsconfig/tsconfig配置,需手动切换语言模式、启用pylance并配置编译选项及路径别名,同时确保editor.suggestontriggercharacters开启。

补全不弹出来?先看右下角语言模式对不对
VSCode 不按文件后缀自动识别语言,它只认右下角状态栏显示的 language mode。如果显示的是 Plain Text 或 Unknown,哪怕你正在编辑 index.ts,editor.quickSuggestions 开成 true 也完全没用。
- 常见现象:
console.没提示、pathlib.Path().只列出__class__这类基础属性、import后模块名不补全 - 修复方式:按
Ctrl + Shift + P→ 输入Change Language Mode→ 手动选TypeScript/Python/JavaScript - Vue 单文件组件中
<script></script>块默认可能是HTML,必须点击右下角切换为TypeScript或JavaScript
Python 补全失效,大概率是 Pylance 没跑起来
装了十几个“Python”扩展?真正起作用的是 ms-python.python,且必须启用内置的 Pylance 语言服务器。Jedi 已停更,参数提示、类型推断、自动导入能力弱得多。
- 打开命令面板 →
Python: Select Interpreter→ 选一个真实存在的 Python 环境(路径不能为空或无效) - 检查设置中
python.languageServer值是否为"Pylance"(不是"Jedi",也不是空) - 重启 VSCode 后,随便写一行
pathlib.Path().,看是否列出完整方法;若只有__class____doc__,说明 Pylance 没加载成功 - 打开输出面板(
Ctrl + Shift + U)→ 切换到Python日志 → 搜Starting或error
JS/TS 补全跨不了文件?缺 jsconfig.json 或 tsconfig.json
没有这个配置文件,VSCode 就把整个项目当单个 JS 文件处理:路径别名(如 @/utils)、第三方库类型定义、import 模块解析全部失效。补全是“盲猜”,跳转是“摆设”。
- 在项目根目录新建
jsconfig.json(JS 项目)或tsconfig.json(TS 项目) - 最简内容至少含:
{"compilerOptions": {"module": "nodenext", "target": "es2020", "allowJs": true, "checkJs": true, "moduleResolution": "nodenext"}} - 用了别名(如
@/components)?必须加baseUrl和paths,例如:"@/*": ["src/*"] - 改完立刻执行
Ctrl + Shift + P→TypeScript: Restart TS server,不重启等于没改
. 后不自动弹框?editor.suggestOnTriggerCharacters 被关了
这个开关控制是否在输入 .、:、(、[ 等符号后自动触发建议。很多人调了 quickSuggestions 却忘了它。
- 默认值是
true,但某些插件(比如旧版 ESLint 或自定义 snippets 插件)可能悄悄把它设为false - 手动确认:打开设置 → 搜
editor.suggestOnTriggerCharacters→ 确保勾选 - 它和
editor.quickSuggestions是两套逻辑:quickSuggestions控制“在哪种上下文里弹”,suggestOnTriggerCharacters控制“哪些字符能触发” - 如果只想要手动唤起,按
Ctrl + Space(Windows/Linux)或Cmd + Space(macOS)即可,不用等点号
import 是否正确解析、jsconfig.json 是否声明了路径别名、Path() 这种对象有没有被 Pylance 实际加载进符号表。这些环节漏掉任意一环,补全就退化成拼写联想。











