
Sublime Text 默认不识别 {% %} 和 {{ }},装完插件也不高亮,大概率是语法没手动指定,不是插件没装对。
怎么确认当前文件用了 Django 模板语法
右下角显示的语法名称必须是 HTML (Django)、Django > HTML (Django) 或 HTML (Django Templates) 之一。如果显示的是 HTML 或 Plain Text,说明高亮根本没启用。
- 快捷键
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Set Syntax: HTML (Django)回车,立刻生效 - 菜单操作:View → Syntax → 找到带 “Django” 字样的选项(注意不是 “HTML (Django)” 后面还跟着括号里写 “(legacy)” 的旧版)
- 如果列表里没有,说明插件没装成功,或者装的是已停更的
SublimeDjango(它在 Sublime Text 4 下基本不可用)
该装哪个插件:Djaneiro 还是 HTML (Django Templates)
Djaneiro 是目前最成熟的选择,支持标签补全、变量作用域细分(比如 {{ user.name }} 中 name 能单独着色),且持续维护;HTML (Django Templates) 更轻量,但对 {% load static %} 后的 {% static %} 不高亮,补全也弱。
- 装
Djaneiro:通过 Package Control 安装后,在命令面板输Set Syntax: Django > HTML (Django) - 装
HTML (Django Templates):Package Control 搜索安装,语法名是HTML (Django Templates),路径为Packages/HTML/HTML (Django Templates).sublime-syntax - 别装
SublimeDjango:它不兼容 Sublime Text 4,装了可能导致.html文件全局错乱,甚至影响括号匹配
怎么让所有模板文件自动用 Django 语法
不能直接把所有 .html 都设为 Django 语法——静态页、前端组件、生成的文档页会丢掉原生 HTML 补全和 Emmet 支持。
- 推荐按路径规则绑定:打开一个模板文件 → 设好语法 → 右键文件标签 →
Set Syntax for File Extension...→ 选templates/**/*.html(需 Sublime Text 4.4+) - 或手动编辑项目级配置:菜单栏 Preferences → Settings – Syntax Specific,加这段 JSON:
{"extensions": ["html"], "syntax": "Packages/Djaneiro/Syntaxes/HTML (Django).sublime-syntax"}
- 注意路径要和你实际安装的插件一致:
Djaneiro的语法路径含Djaneiro/Syntaxes/,HTML (Django Templates)则是HTML/HTML (Django Templates).sublime-syntax
为什么 {% load static %} 和 {% url %} 还是灰色
这不是配置错误,是语法高亮能力的天然边界。Sublime 的语法系统基于静态正则,无法解析 {% load %} 动态引入的标签库,所以 {% static %}、{% url %}、{% get_current_language %} 等都只能按普通 block 标签着色。
- 接受它:这类标签语义固定、拼写简单,不影响编码效率
- 别改
.sublime-syntax文件硬加规则:正则一写错就整块语法失效,且插件更新后会被覆盖 - 需要跳转或 lint 检查?那是
SublimeCodeIntel或SublimeLinter-django-html的事,和高亮无关
真正容易被忽略的是:即使装了插件,也得手动点一次右下角切换语法——这个动作不做,其他所有配置都是空谈。











