VSCode代码补全异常主因是语言服务未启用、文件类型识别错误或editor.quickSuggestions/editor.tabCompletion被关闭;需先确认右下角语言模式正确,再检查两项设置并重启语言服务器。

VSCode代码补全异常,90%不是插件坏了,而是语言服务没连上、文件没认对、或者两个关键开关被关了——editor.quickSuggestions 和 editor.tabCompletion。先查右下角语言模式,再动设置,多数问题三分钟内能定位。
右下角显示 Plain Text 或 Unknown 怎么办
这是最常见也最容易被忽略的起点。VSCode 不知道你在写什么语言,就不会启动任何语言服务器(比如 tsserver、Pylance、gopls),IntelliSense 完全静默。
- 点击右下角状态栏中显示的
Plain Text或Unknown,手动选成JavaScript、TypeScript、Python、Vue等正确语言模式 - 未保存的临时文件(如
Untitled-1)默认就是Plain Text,务必先保存为带后缀的文件(如index.ts)再测试 - 检查
files.associations配置是否误配:例如"*.js": "typescript"会让 JS 文件走 TS 解析,导致类型校验错乱、补全降级 -
.vue文件必须选Vue(不是Vue HTML或HTML),否则Volar不接管,defineProps、ref等补全全失效
editor.quickSuggestions 和 editor.tabCompletion 没开
这两个设置控制补全“弹不弹”和“Tab 键管不管用”。它们在部分语言里默认关闭,并非 bug,但极易被忽略。
- 打开设置(
Ctrl + ,),搜quick suggestions,确保editor.quickSuggestions在other、strings、comments三项都设为true;特别注意strings必须为true,否则import路径、HTML src属性里不提示 - 搜
tabCompletion,把editor.tabCompletion设为"onlySnippets"(推荐)或"on";设成"off"时,Tab 只缩进,不触发补全 - 这些开关在 UI 设置界面改,只影响当前工作区;要全局生效,得确认
settings.json里有对应项,且没被.vscode/settings.json覆盖 - 装了
Copilot、TabNine等插件时,它们可能劫持 Tab 事件;临时禁用验证是否恢复
tsserver / Pylance / gopls 卡死或没加载
补全空白、悬停无类型、跳转定义失效,大概率是语言服务器进程挂了、没启动、或加载失败——UI 上不报错,但日志里全是线索。
- 按
Ctrl + Shift + P,输入并执行TypeScript: Restart TS server(JS/TS)或Developer: Restart Language Server(Python 对应Pylance,Go 对应gopls) - 在
settings.json中添加日志配置:"typescript.tsserver.log": "verbose"或"python.analysis.logLevel": "Trace",然后打开「输出」面板 → 选TypeScript Server Log或Python Language Server - 常见日志线索:
Failed to load project(tsconfig.json路径错)、ENOENT: no such file(工作区根路径识别错误)、Cannot read property 'map' of undefined(插件版本不兼容) - Windows 用户可任务管理器杀掉残留的
node.exe进程;macOS/Linux 可执行pkill -f tsserver清理
AI 插件或多个语言扩展冲突
装了多个 AI 插件(如通义灵码、Copilot、CODEGEEX)或同类语言扩展(如 Python + Pylance + Jedi),会互相竞争补全控制权,导致建议忽高忽低、延迟、甚至消失。
- 输入时按
Ctrl + Space强制唤起补全,观察建议项旁的图标:✨= AI 插件,~= 语言服务,□= 代码片段;鼠标悬停可看具体来源 - 常见冲突组合:
Microsoft C/C+++clangd(争抢控制权)、Python 扩展+Pylance(Pylance 已内置 Jedi,同时启用会冲突)、多个 AI 插件共存 - 解决原则是只保留一个 AI 插件;禁用非官方 Python 相关插件,仅保留:
Python(Microsoft)、Pylance(Microsoft)、Jupyter(如需) - 若插件已安装但侧边栏转圈或报「登录失败」,检查
settings.json中 API Key、Base URL 是否配置正确;老版本 VSCode(低于 1.80)可能与新版插件不兼容,建议升级
真正容易被忽略的是:未保存的文件、files.associations 的隐式覆盖、以及工作区 .vscode/settings.json 对用户级设置的静默屏蔽——这些问题不会报错,但会让补全彻底失能。排查时优先看右下角、再查设置、最后翻日志,比重装插件快得多。











