vscode右下角显示plain text说明文件未被识别为目标语言,需点击状态栏手动切换语言模式、检查后缀名是否标准、确认files.associations无错误映射,再排查远程环境、语义高亮兼容性及插件冲突。

VSCode右下角显示Plain Text,插件装了也不高亮
这不是插件没生效,而是VSCode根本没把当前文件当目标语言处理。它不看内容,只认后缀名 + 状态栏手动设置 + files.associations 配置。
- 点击右下角灰色文字(如
Plain Text),输入python或php回车,强制切换语言模式 - 检查文件后缀:必须是
.py、.php、.scss等标准扩展名;.PY(大写)、.pyw、.py_可能被忽略 - 在设置中搜索
files.associations,确认没有错误映射,比如"*.py": "json"这种会直接让Python文件走JSON解析器 - 刚克隆的项目里,新建一个空
test.py试试——如果它能高亮,说明原文件因路径或workspace配置被误判了
装了插件但关键字还是灰的(比如def/import/echo)
语言模式已正确(状态栏显示绿色Python或PHP),但关键词没颜色,说明token生成卡在语义层,不是插件没装,而是主题或缓存不匹配。
- 按
Ctrl+Shift+P运行Developer: Inspect Editor Tokens and Scopes,把光标停在def上,看scope是否含keyword.control.python;若只有keyword,说明主题规则太简陋 - 临时禁用语义高亮:
"editor.semanticHighlighting.enabled": false,如果此时关键词恢复颜色,就是语义层和当前主题不兼容 - 删缓存目录:
$HOME/.vscode/Cache/semantic-tokens/(macOS/Linux)或%APPDATA%\Code\Cache\semantic-tokens\(Windows),**必须完全退出VS Code进程后再重开** - 检查
settings.json是否被插件注入了空的"editor.tokenColorCustomizations": {}——Bracket Pair Colorizer等插件常偷偷写这个,直接删掉整段
远程开发(Remote-SSH)时一半高亮一半不亮
本地关键词亮、变量/函数也亮,但importecho等基础关键字不亮,这是远程Pylance或Intelephense没启用的典型表现,不是插件没装,而是服务没启动。
- 远程连接后,按
Ctrl+Shift+P输入Preferences: Open Settings (JSON) - 分别检查
python.languageServer和php.suggest.basic是否在User、Remote、Workspace三个作用域都设为pylance或intelephense - 确认
python.defaultInterpreterPath指向远程有效解释器,例如/home/user/miniconda3/bin/python;路径错或不存在会导致语言服务器静默失败 - 远程端需单独安装对应插件(如Intelephense),仅本地装无效
插件选哪个?别装冲突的
同一语言装多个语言服务插件(比如PHP同时装PHP Intelephense和PHP Tools),VSCode会随机启用一个,导致高亮不稳定甚至失效。
- Python优先选
Pylance(微软官方,语义高亮强),不用装额外“Better Python Syntax”类插件 - PHP用
PHP Intelephense,它自带语法高亮+补全+诊断,比基础PHP Language Basics更可靠 - Sass/SCSS认准
Sass(Synerise出品),别混用SCSS或Live Sass Compiler——后者只负责编译,不提供语法解析 - React项目别只装
cjsx,它已过时;改用ES7+ React/Redux/React-Native snippets+ Pylance/Intelephense这类底层支持
files.associations,最后才动插件。











