Sublime未识别语言类型时右下角显示Plain Text,需手动点击切换语法;.jsx/.tsx文件需绑定Babel/TypeScript语法并启用tsx支持;.env等小众后缀应通过Open all with current extension as…或ShellScript.sublime-settings绑定;高亮颜色由color_scheme决定,非语法文件。

Plain Text 出现在右下角,基本就说明 Sublime 没识别出语言类型——这不是 bug,是它默认只认后缀和 shebang,没做“智能猜语言”这回事。手动指定是最直接、最可靠的起点。
点击右下角语言名切换语法
这是最快生效的操作,不改配置、不装插件,立刻让高亮回来:
– 右下角显示 Plain Text、Text 或错误的语法(比如 Shell-Unix-Generic 打开 .env 文件)时,直接点击它
– 在弹出菜单里选对的语言,如 JavaScript、Vue Component、YAML
– 选完当前文件立即重绘,关键字、字符串、注释全上色
– 注意:语法名称大小写敏感,javascript 或 Js 不会匹配,必须输 JavaScript
让 .jsx / .tsx 文件自动高亮
装了 Babel 或 TypeScript 插件 ≠ 自动接管对应后缀,这是最常见的“以为装了就完事”陷阱:
– 打开一个 .jsx 文件,右下角点语言名 → 看菜单里有没有 JavaScript (Babel);没有?插件可能被禁用或没加载成功
– 有但不默认应用?用 View → Syntax → Open all with current extension as…,把 .jsx 绑给 JavaScript (Babel),.tsx 绑给 TypeScript
– TypeScript 插件默认不处理 .tsx:进 Preferences → Package Settings → TypeScript → Settings,加一行 "enable_tsx": true
– 验证是否生效:打开 .tsx 文件,光标放在 const x: React.FC = () => {} 里,按 Ctrl+Shift+P 输入 Show Scope Name,应看到类似 support.class.react 的 scope,而不是纯 source.ts
自定义后缀(如 .conf、.env)绑定语法
Sublime 对无标准后缀或小众配置文件极不友好,.env 常被当成 Shell 却不识别 = 左右空格规则,.conf 直接变 Plain Text:
– 先手动切一次语法:打开 .env → 右下角点 → 选 Shell-Unix-Generic 或 INI
– 再点右下角 → Open all with current extension as… → 选刚才选的语法
– 更稳妥的方式(尤其多后缀共用一语法):在 Packages/User/ 下新建 ShellScript.sublime-settings,内容为:
{
"extensions": ["env", "conf", "cfg"]
}– 不要写通配符(如 "*"),否则可能覆盖其他语言的默认绑定
高亮颜色不对?别改语法文件,改 color_scheme
语法高亮失效和颜色难看是两码事:
– .sublime-syntax 文件只负责“把哪段文字标成什么 scope”,比如把 if 标为 keyword.control
– 真正决定颜色的是当前 color_scheme(配色方案)文件里对 keyword.control 的 foreground 定义
– 查当前 scope:光标放关键字上 → Ctrl+Shift+P → Show Scope Name,状态栏会显示完整 scope 链
– 改颜色:复制一份当前主题到 Packages/User/,在 rules 里加或改对应 scope 的条目,例如:
{"scope": "keyword.control", "foreground": "#ff6b6b"}– 改完保存,再进 Preferences → Color Scheme 重新选一遍才生效
真正卡住人的不是“怎么设”,而是设完发现下次打开又回退——那八成是扩展名没绑牢,或者插件语法没启用。检查 View → Syntax 菜单里有没有你要的选项,没有就重启 Sublime 或运行 Reload Syntaxes。

















