VS Code高亮不生效主因是语言语法解析器未启动,右下角显示Plain Text即为证据;需检查文件后缀、files.associations配置或手动切换语言模式,并用Developer: Inspect Editor Tokens and Scopes验证scope是否正确。

高亮不生效,90% 是 VS Code 根本没启动对应语言的语法解析器——不是插件坏了,是它压根没被叫醒。 右下角显示 Plain Text 就是铁证,此时连 const、def、module 都不会打上任何 token,后续所有高亮、跳转、提示全失效。
右下角显示 Plain Text 怎么办
这是最常见也最容易被忽略的起点。VS Code 不靠文件内容猜语言,只认三样东西:文件后缀、files.associations 配置、以及你手动点选的结果。
- 点击右下角语言标识(哪怕它看起来是空白或灰色),输入
javascript、typescript、python、vue、systemverilog等真实 language ID,回车确认 - 若刚打开的是未保存文件(
Untitled-1),必须手动切换,否则永远是Plain Text - 检查后缀是否拼错:
.jss≠.js,.tsX(大写 X)可能被某些扩展忽略,统一用小写 - 对
.env、.blade.php、.sv这类非标后缀,仅靠手动切换不够,需在settings.json中补"files.associations": { "*.env": "shellscript", "*.sv": "systemverilog" }
切换后还是灰白?查 token 是否生成成功
语言模式对了但颜色没回来,说明 token 没生成,或生成了但主题没定义对应颜色。别急着换主题,先看底层发生了什么。
- 按
Ctrl+Shift+P(macOS 是Cmd+Shift+P),运行Developer: Inspect Editor Tokens and Scopes - 鼠标悬停在
function、import、class上,看面板里显示的 scope 是不是类似keyword.control.js或support.type.object.ts - 如果 scope 显示为
source.plain或空,说明语言服务根本没加载——回到上一步检查扩展是否启用、tsconfig.json是否存在 - 如果 scope 正确但显示
no color customizations,说明当前主题缺失该 scope 的配色规则,换回Default Dark+验证即可
为什么 Ctrl+K M 没反应
这个快捷键失效,基本不是快捷键本身问题,而是编辑器根本不认为你当前在“可切语言”的上下文中。
- 光标必须落在代码编辑区(不能在终端、搜索框、侧边栏),且文件已打开(哪怕内容为空)
- 新建的
Untitled-1文件可以触发;但已保存的.py文件通常已自动绑定,按快捷键反而无反馈 - 某些插件(如旧版 Vetur)会劫持语言服务,导致
Ctrl+K M弹出面板后瞬间消失——此时禁用可疑插件再试 - 工作区配置中若存在错误的
"files.associations"(比如把*.jsx指向typescript),也会让快捷键行为异常
真正卡住人的地方,往往不是“怎么开高亮”,而是“为什么明明点了 JavaScript,interface 还是白的”。这时候要盯住 Developer: Inspect Editor Tokens and Scopes 里那个 scope 字符串——它比任何报错都诚实。一旦 scope 错了,再换十个主题也没用。


















