vs code右下角显示“plain text”说明未识别文件类型,语法高亮不会触发;应点击切换为python等正确语言模式,或在settings.json中配置"files.associations"强制关联扩展名与语言。

语言扩展没生效,右下角显示“Plain Text”
这说明 VS Code 根本没识别出文件类型,语法高亮自然不会触发。不是插件装错了,而是文件和语言之间没建立关联。
- 打开任意一个目标文件(比如
main.py),看右下角状态栏——如果显示的是Plain Text或其他错误语言名,就点它 - 选择
Configure File Association for '.py'(或对应扩展名),再选Python - 更一劳永逸的方式:在
settings.json里加一条映射,避免每个文件都手动切:"files.associations": { "*.py": "python", "*.rs": "rust", "*.vue": "vue" } - 注意:这个配置只对当前用户生效;若想项目级统一,可在项目根目录放
.vscode/settings.json,内容一样
装了插件但关键字/字符串颜色不对
默认主题或插件自带的高亮规则可能覆盖了你期望的效果,尤其是小众语言或自定义 DSL。这时候不能只靠换插件,得查作用域。
- 把光标停在想调色的代码上(比如一个函数名),按
Ctrl+Shift+P→ 输入Developer: Inspect Editor Tokens,弹窗里会显示当前 token 的scope(如support.function.builtin.python) - 复制这个 scope,在
settings.json的editor.tokenColorCustomizations里写规则:"editor.tokenColorCustomizations": { "textMateRules": [{ "scope": "support.function.builtin.python", "settings": { "foreground": "#268bd2" } }] } - 别直接改
keyword这种泛 scope,容易误伤其他语言;优先用带语言前缀的精确 scope - 如果插件没提供足够细的 scope(比如某些老旧插件),就得换更活跃维护的替代品,比如用
Pylance替代老版 Python 插件
Remote-SSH 环境下高亮失效
远程开发时,插件默认只在本地运行,而语法高亮依赖的语言服务器(LSP)必须部署在远程机器上才能解析代码。本地装了插件,远程没装,等于白搭。
- 确认远程机器已安装对应解释器/编译器(如
python3、rustc),且在$PATH中可执行 - 在 Remote-SSH 连接建立后,点击左下角绿色远程按钮 →
Install Extensions on SSH: [hostname],再搜装一次同名插件(如Python) - 某些插件(如
Volar)需额外在远程启用:检查远程~/.vscode-server/extensions/下是否有对应目录,没有就重装 - 远程插件日志藏在
Output面板 → 切换到Log (Remote Server),看有没有Failed to start language server类报错
自定义语言无法高亮,tmLanguage.json 不生效
自己写 TextMate 语法文件时,最常卡在路径或 scope name 对不上。VS Code 不报错,只是静默忽略。
-
package.json里的grammars段中path必须是相对于插件根目录的相对路径,且文件名必须带.json后缀(不能写成.tmLanguage) -
scopeName值(如source.mylang)必须和languages段中定义的id严格一致 - 测试时别只看单个文件:用
Developer: Inspect Editor Tokens确认实际生效的 scope 是不是你写的那个;如果显示source.plain,说明语法文件根本没加载 - VS Code 缓存顽固,改完语法文件后务必重启窗口(
Developer: Reload Window),不要只刷新
Inspect Editor Tokens 是唯一能验证的手段,其他都是猜。











