VS Code插件高亮主要来自语义高亮(如Pylance、TypeScript Server)或装饰器(如ESLint、auto-import),前者可通过"editor.semanticHighlighting": false关闭,后者需禁用对应插件配置;主题也可能干扰,需检查并覆盖workbench.colorCustomizations。

插件高亮显示来自哪些地方
VS Code 里所谓“插件的高亮显示”,通常不是插件自己画的高亮,而是插件通过 registerDocumentHighlightProvider 或 registerSemanticTokensProvider 向编辑器提供的语义高亮(比如 Pylance 给变量加背景色、ESLint 插件标记未使用变量)。这类高亮会覆盖默认的语法着色,且不受 "editor.semanticHighlighting": false 单一开关完全控制。
关闭语义高亮(最常用场景)
多数用户想关掉的是 Pylance、TypeScript Server 或 Rust Analyzer 自动加的背景色高亮。直接禁用语义高亮即可:
- 打开设置(
Ctrl+,或Cmd+,),搜索semantic highlighting - 把
Editor > Semantic Highlighting设为false - 或在
settings.json中添加:"editor.semanticHighlighting": false
注意:这仅影响语义层高亮,不影响基础语法着色(如字符串红色、关键字蓝色),也不会禁用错误波浪线或 ESLint 的 underline 提示。
禁用特定插件的高亮提供能力
有些插件(如 vscode-eslint、prettier、auto-import)会通过装饰器(decoration)手动插入高亮块,这类不能靠全局语义开关关掉:
-
vscode-eslint的未使用变量灰色背景:关掉eslint.options.enable或设置"eslint.rules.custom": {"no-unused-vars": "off"} -
auto-import的自动导入提示高亮:在设置中搜auto import,关闭Auto Import: Show Imports - 任何插件若提供
highlight相关配置项,优先查其文档里的highlight、decorations、gutter等关键词
检查是否被主题干扰
部分主题(尤其是暗色主题如 Nord、One Dark Pro)会主动强化某些 token 的背景色,看起来像插件高亮:
- 临时切换到默认主题(
File > Preferences > Color Theme > Default Dark+)验证是否消失 - 若消失,说明是主题定义了
editor.wordHighlightBackground或editor.selectionHighlightBackground等 token 颜色 - 可在
settings.json中覆盖:"workbench.colorCustomizations": { "editor.wordHighlightBackground": "#00000000", "editor.selectionHighlightBackground": "#00000000" }
真正难排查的是语义高亮和主题颜色叠加——比如 Pylance 开启 + Nord 主题强化,结果变量背景深得看不清文字。这时候得先关语义,再调主题,顺序错了容易白折腾。


















