装了插件.html文件仍纯灰,因Sublime默认按原生HTML处理,Djaneiro等仅提供语法定义而不自动启用;必须手动设为“Django > HTML (Django)”或“HTML (Django Templates)”,否则{{}}和{% %}不被解析。

为什么装了插件 .html 文件还是纯灰?
因为 Sublime Text 默认把所有 .html 文件当原生 HTML 处理,{{ user }} 和 {% if %} 不是“没高亮”,而是压根没被语法解析器捕获——Djaneiro 或 HTML (Django Templates) 只提供语法定义文件(.sublime-syntax),不等于自动启用。
- 打开一个模板文件(如
templates/base.html),点击右下角当前语法名(通常是HTML) - 在弹出菜单中选
Django > HTML (Django)(Djaneiro)或HTML (Django Templates)(轻量包) - 如果没看到这些选项,说明插件没装成功,或装的是已停更的
SublimeDjango(它不兼容 ST4,还会破坏括号匹配) - 确认后
{% extends %}、{{ }}应立刻变色;若无反应,按Ctrl+`查控制台是否有Unable to find syntax file报错
该装 Djaneiro 还是 HTML (Django Templates)?
两者都支持基础高亮,但补全能力、作用域细分和维护状态差异明显:
-
Djaneiro:目前最成熟,支持{{ user.profile.avatar }}中profile和avatar分层着色,带{% url %}、{% static %}补全,语法路径为Packages/Djaneiro/HTML (Django).sublime-syntax -
HTML (Django Templates):轻量稳定,官方仓库收录,但对{% load static %}后的{% static %}不高亮,也不补全自定义标签,路径为Packages/HTML/HTML (Django Templates).sublime-syntax - 别碰
SublimeDjango:不兼容 ST4,装了可能导致所有.html高亮错乱、Ctrl+Click跳转失效
怎么让 templates/ 下的 .html 自动用 Django 语法?
不能全局绑定所有 .html——静态页、前端组件、Markdown 导出页会丢掉 Emmet 和原生 HTML 补全。推荐两种安全做法:
- 右键已设好语法的模板文件标签 →
Set Syntax for File Extension→ 选templates/**/*.html(需 Sublime Text 4.4+;ST3 不支持此功能) - 手动配置项目级规则:菜单
Preferences → Settings – Syntax Specific,添加 JSON(注意路径必须和你实际插件一致):{"extensions": ["html"], "syntax": "Packages/Djaneiro/HTML (Django).sublime-syntax"} - 若混用 Jinja2 或纯静态页,别开全局绑定,否则
{% set %}会被当成错误解析
为什么 {% load static %} 和 {% url %} 还是灰色?
这不是配置错误,是 Sublime 语法系统的天然边界:它靠静态正则匹配,无法解析 {% load %} 动态引入的标签库,所以 {% static %}、{% url %}、{% get_current_language %} 全部被当作普通 block 标签处理,颜色和 {% if %} 一致。
- 接受它:这类标签语义简单,不影响运行,只是视觉提示弱
- 换插件:只有
Djaneiro对常见内置标签做了显式作用域定义,能实现基础高亮 - 别改
.sublime-syntax文件硬加规则:升级插件后会被覆盖,维护成本高
真正容易被忽略的是:语法高亮 ≠ 语义理解。变量嵌套着色再细,也验证不了 {{ user.profile.avatar }} 在运行时是否存在——调试还得靠实际启动服务看报错。


















