必须重启Sublime Text才能使EJS插件生效,否则语法菜单不显示EJS选项;安装后需手动点击右下角语言名并选择EJS,才能正确绑定.ejs后缀并启用高亮。

EJS 文件在 Sublime Text 里不亮、右下角显示 HTML 或 Plain Text,不是插件没装,而是语法没绑定到 .ejs 后缀——必须手动建立映射,否则永远只是“看起来像 HTML”的纯文本。
为什么装了 EJS Syntax Highlighting 还是不亮?
插件只提供 .sublime-syntax 定义,不自动注册后缀。常见错误现象包括:右下角始终显示 HTML(说明被当普通 HTML 渲染)、 块全无颜色、注释和转义符也不高亮。
- Sublime Text 3/4 要求重启才能完成新语法注册,不重启 = 语言菜单里根本不会出现
EJS - macOS 用户若从 Dock 启动 Sublime,PATH 缺失可能导致 Package Control 加载失败,连插件列表都看不到
- 曾手动改过
Packages/HTML/HTML.tmLanguage或User/HTML.sublime-settings,会覆盖默认行为,且升级后易被重置 -
ignored_packages设置里误加了 EJS 插件名(如"EJS Syntax Highlighting"),会导致语法包被禁用
怎么让右下角出现 EJS 并成功切换?
只有先看到并能点选 EJS,才说明插件已加载成功。操作路径唯一:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package回车 - 搜索
EJS Syntax Highlighting(作者 mrmartineau),回车安装 - 关闭并重启 Sublime Text(跳过这步,后续全无效)
- 打开任意
index.ejs,点击右下角当前语言名(比如HTML),在弹出菜单中找EJS并点击 - 此时应立刻看到
变橙色、<code> 变灰色等区分效果;若仍无变化,先检查 <code>ignored_packages设置
如何让所有 .ejs 文件默认用 EJS 语法?
手动选一次只作用于当前文件。永久绑定靠的是 Packages/User/EJS.sublime-settings 文件,内容必须严格符合格式:
立即学习“前端免费学习笔记(深入)”;
- 打开一个已确认能点出
EJS的.ejs文件 - 点击右下角语言名 → 选择
Open all with current extension as…→ 再选EJS - 该操作自动生成
Packages/User/EJS.sublime-settings,内容应为:{"extensions": ["ejs"]} - 不能写成
"extensions": "ejs"(字符串)、"extensions": [".ejs"](带点号)、或漏掉方括号 - 不要去改
HTML.sublime-settings加"extensions": ["ejs"]—— 这会让 Sublime 把.ejs当纯 HTML 解析,全变普通文本
常见踩坑点:语法配置 vs 文件后缀的混淆
Sublime 的配置是按「语法名」生效,不是按后缀名。例如:.cjs 和 .mjs 若绑定了 JavaScript 语法,它们就共用 JavaScript.sublime-settings;而 .ejs 若没绑定 EJS 语法,哪怕文件名再标准,也只会读 Plain Text.sublime-settings。
- 改完
EJS.sublime-settings后,已打开的.ejs文件不会自动重载语法,需关闭再重开,或手动Ctrl+Shift+P→Set Syntax: Detect Syntax - 如果项目里混用
.html和.ejs,且都走 Express 的EJS.config({ ext: '.html' }),那 Sublime 里就该统一用HTML语法,而不是硬配EJS—— 否则模板逻辑反而被高亮干扰 - 多个插件(如 Babel + EJS2 + EJS Syntax Highlighting)同时启用时可能冲突,导致右下角语言菜单异常或命令失效
最易被忽略的是:语法绑定和语法专属配置是两层事。你得先让 Sublime 认出这是 EJS 文件,它才会去读 EJS.sublime-settings;否则无论你怎么写配置,它都看不见。


















