vs code 默认支持 js、ts、html、css、json、markdown 等文件后缀的基础语法高亮,依赖内置 textmate 语法定义;python、java、rust、go、ruby 等需安装对应官方扩展才能启用完整语言功能,如不安装则识别为“plain text”。

VS Code 默认支持 JavaScript、TypeScript、HTML、CSS、JSON、Markdown 等主流语言的语法高亮,但真正开箱即用且带完整语义能力(比如跳转定义、错误提示)的语言,必须依赖对应扩展。没装插件时看到的“高亮”只是基础文本着色,不是真正的语言支持。
哪些语言靠默认就能高亮?
VS Code 内置了对以下语言的语法解析器,打开对应后缀文件即可获得基础高亮(无需安装插件):
-
js、ts、jsx、tsx -
html、htm -
css、scss、less -
json、jsonc -
md(Markdown) -
gitignore、dockerfile、makefile
这些语言的高亮规则由 VS Code 自带 TextMate 语法定义提供,但缺少类型检查、补全、重构等高级功能——那得靠扩展。
Python / Java / Rust 等语言必须装什么插件?
不装扩展,.py 或 .java 文件只会被识别为“Plain Text”,连括号匹配和注释着色都可能出错。关键插件如下:
- Python:装
Python(Microsoft 官方扩展),它内置Pylance语言服务器,提供类型推导和智能补全 - Java:必须装
Java Extension Pack(含Language Support for Java™ by Red Hat),否则.java文件无法解析类结构 - Rust:装
Rust Analyzer(官方推荐),别用已停更的Rust扩展;它依赖本地cargo和rustc - Go:装
Go(Go Team 官方扩展),会自动下载gopls语言服务器 - Ruby:装
Ruby Solargraph(需先gem install solargraph)
注意:Language Support for Java™ by Red Hat 要求系统已安装 JDK 17+,且 JAVA_HOME 配置正确,否则状态栏始终显示 “Starting Java Language Server…”。
文件扩展名识别错了怎么办?
常见现象:打开 config.yaml 显示为 “Plain Text”,没有缩进高亮;或 index.vue 里 template 部分不识别 HTML 标签。
- 点击右下角当前语言模式(如 “Plain Text”),选 “Configure File Association for ‘yaml’”,再选 “YAML”
- 若要全局绑定,直接在
settings.json加:"files.associations": { "*.yaml": "yaml", "*.vue": "vue" } - Vue 单文件组件需要额外装
Volar(非Vetur,后者已弃用),否则 script setup 语法无法高亮 - 自定义后缀(如
.conf当作 ini 处理)也走同样流程,关联到ini语言即可
语法高亮颜色能自己调吗?
可以,但别直接改主题文件——用 editor.tokenColorCustomizations 更安全、可复用。
- 打开设置(
Ctrl + ,),搜tokenColorCustomizations,点 “Edit in settings.json” - 添加针对某语言的规则,例如让 Python 的函数名变蓝:
"textMateRules": [ { "scope": "support.function.python", "settings": { "foreground": "#2196F3" } } ] - scope 名称取决于语言扩展的 TextMate 语法定义,可用命令
Developer: Inspect Editor Tokens and Scopes(Ctrl+Shift+P输入)实时查看光标处的 scope 链 - 修改后无需重启,保存即生效;但 scope 写错(比如拼成
function.python缺support.)会导致无效
真正容易被忽略的是:高亮颜色是否生效,不仅取决于 token 规则,还依赖语言扩展是否正确加载语法定义——如果扩展崩溃或未启动,textMateRules 再准也没用。建议先确认状态栏有对应语言服务器运行中(如 “Python Language Server is ready”)。











