VS Code One Dark Pro主题如何仅修改自定义Python变量的颜色?
问题根源
你之前的配置选择了source.python作为生效范围,相当于给所有Python语法相关的标记都应用了红色样式,自然会出现大面积不符合预期的着色。
解决步骤
- 先确认自定义变量对应的TextMate作用域
- 打开VS Code命令面板(快捷键
Ctrl+Shift+P,macOS系统为Cmd+Shift+P) - 搜索并执行
Developer: Inspect Editor Tokens and Scopes - 点击你自己声明的普通变量,查看弹出面板中「textmate scopes」区域的层级,Python场景下自定义普通变量的核心作用域通常为
variable.other.readwrite.python
- 编写针对性的着色配置,只命中目标变量,排除其他不需要生效的场景:
"editor.tokenColorCustomizations": { "[One Dark Pro]": { // 限定仅在One Dark Pro主题下生效,不影响其他主题 "textMateRules": [ { // 作用域选择自定义变量,同时排除不需要着色的场景 "scope": "variable.other.readwrite.python - variable.other.property.python - variable.parameter.python - variable.language.python", "settings": { "foreground": "#E06C75" } } ] } }
- 可选调整
- 如果需要保留函数形参的着色效果,删除配置中的
- variable.parameter.python即可 - 如果需要排除
for循环、列表推导式中的临时变量,可在scope中追加- variable.other.loop.python - 如果还有其他不需要着色的场景命中了规则,可通过第一步的作用域检查工具,拿到对应标记的scope后,用
- 作用域名的格式追加到scope列表排除即可
内容的提问来源于stack exchange,提问作者Roux
相关产品推荐
相关产品推荐

