vue插件仅负责.vue文件区块分割,不控制颜色;改标签色需调整html配色规则,改中defineprops等api色需调整typescript配色规则。

Vue Component 语法不支持直接改标签颜色
Sublime Text 的 Vue Syntax Highlight 插件本身不提供「单独高亮 <template></template> 或 <script setup></script> 标签」的配置项。它只负责把 .vue 文件切分成区块,并把每个区块交给对应语言(HTML/JS/TS/CSS)的语法解析器处理。所以你看到的标签颜色,实际来自 HTML 或 TypeScript 插件的配色方案,不是 Vue 插件自己画的。
改 <template></template> 标签颜色 → 调 HTML 配色规则
Vue 文件里的 <template></template> 块本质是嵌入的 HTML,它的标签名(如 <div>、<code><button></button>)颜色由当前启用的 HTML 语法高亮规则决定。想改这些标签颜色,得改 HTML 的 scope 颜色:
- 打开
Preferences → Color Scheme…,选一个可编辑的主题(比如Monokai.sublime-color-scheme) - 在主题文件里找
"scope": "meta.tag.structure.any.html"或"scope": "entity.name.tag.html" - 添加或修改
"foreground"值,例如:"foreground": "var(--green)" - 保存后,所有 HTML 标签名(包括
<template></template>内部的)都会变色
注意:这个改动会影响所有 HTML 文件,不只是 .vue 里的 template。
改 <script setup lang="ts"></script> 中的 defineProps 等 API 颜色 → 调 TypeScript scope
defineProps、defineEmits、withDefaults 这些不是 HTML 标签,而是 TypeScript 的全局函数调用。它们的颜色取决于 TypeScript 插件是否识别这些标识符,以及当前 color scheme 是否为 support.function.builtin.ts 或类似 scope 设了颜色。
审查 Vue 管理后台的变更请求(Vue 2 + Element UI,Vue 3 + Element Plus)。重点关注最小化变更实现、上线风险检查以及回归检查清单生成。
- 确认已安装并启用了 TypeScript 支持插件(如官方
TypeScript或JavaScriptNext - ES6 Syntax) - 检查 color scheme 文件中是否存在
"scope": "support.function.builtin.ts"条目 - 如果没有,可以手动加一条,指定 foreground;如果有但颜色不对,改它的值即可
- 改完保存,重启 Sublime 或切换一次 color scheme 生效
别试图在 Vue.sublime-syntax 里硬加 rule —— 它不负责语义识别,只做区块分隔,改了反而可能让整个语法解析失败。
为什么不能只给 <script setup></script> 块单独配色?
Sublime 的语法高亮机制是「按 scope 分层染色」,不是「按标签名条件染色」。Vue 插件把 <script setup></script> 块标记为 source.ts.embedded.vue,然后交给 TS 插件处理;它不会给这个块额外加一层「vue-script」scope。所以你没法写一条规则说「只对嵌在 vue 里的 TS 函数生效」——Sublime 没这能力,也不推荐 hack 实现。
真正容易被忽略的是:很多人以为改了 Vue 插件设置就能调颜色,结果翻遍 Vue Syntax Highlight 的 Settings 也没找到 color 相关字段。这不是遗漏,是设计如此 —— 它只管“怎么切”,不管“怎么染”。染色全靠上层语言插件 + 主题配合。










