Sublime Text 4 中 docker-compose.yml 显示 Plain Text 是因未绑定专用语法;需安装 Dockerfile Syntax Highlighting 插件,手动将 .yml/.yaml 扩展名关联至 YAML (Docker Compose) 语法,并确保缩进统一为 2 空格、禁用冲突插件。

Docker Compose 文件在 Sublime Text 4 里显示 Plain Text,不是你写错了,是它根本没加载任何语法定义——装插件不等于自动高亮,必须手动绑定或配置扩展名规则。
docker-compose.yml 为什么还是 Plain Text?
Sublime Text 默认只认 .yml 和 .yaml 后缀为 YAML,但不会自动识别 docker-compose.yml 是 Docker Compose 类型。右下角显示 Plain Text 就说明:它连基础 YAML 语法都没触发,更别说 Docker Compose 特有关键字(如 services、deploy、healthcheck)的着色了。
- 别指望靠文件内容(比如出现
version: "3.9")自动推断语言——Sublime 不做内容分析 - 直接点右下角选
YAML虽快,但会把项目里所有.yml(比如logback.yml、config.yml)都套上同一套高亮,容易误伤 - 真正安全的做法是让
docker-compose.yml用专用语法,而非泛用 YAML
安装并启用 YAML (Docker Compose) 专用语法
官方推荐组合:先装 YAML Language Support(增强校验),再装 Dockerfile Syntax Highlighting(附带 YAML (Docker Compose) 语法)。后者才是关键——它提供专属作用域(如 source.docker-compose),支持 depends_on 箭头、端口映射格式 "8080:80"、build.context 路径等识别。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入Package Control: Install Package回车 - 依次安装:
YAML Language Support和Dockerfile Syntax Highlighting(作者 austinhappel,注意拼写,别选已弃用的老版本) - 安装后重启 Sublime Text 4,或执行
PackageResourceViewer: Open Resource强制加载资源 - 打开任意
docker-compose.yml→ 点右下角 →Open all with current extension as…→ 找到并选择YAML (Docker Compose)
让 docker-compose.override.yml 等变体也高亮
Sublime 不支持通配符,"docker-compose.*.yml" 这种写法完全无效。必须显式列出每个文件名后缀——但注意:这里填的是“扩展名”,不是完整文件名。
- 进
Preferences → Settings – Syntax Specific - 在右侧用户设置中添加:
{"extensions": ["yml", "yaml"]}
- 然后点右下角 →
Open all with current extension as…→ 再选一次YAML (Docker Compose) - 对
docker-compose.override.yml、docker-compose.prod.yml等,只需确保它们后缀是.yml或.yaml,且已绑定到该语法即可 - 如果用了
.yml以外的后缀(比如.compose),就得单独加进extensions数组里
高亮有了但 services 缩进错位、冒号不着色?
YAML 对缩进极其敏感。一旦某行空格数突变、混用 Tab 和空格、或缩进层级逻辑断裂(比如 environment: 下漏了空格),Sublime 的语法解析器会直接放弃后续所有行的着色——全变白不是 bug,是它主动退出解析。
- 底部状态栏应显示
Tab Width: 2(YAML 推荐)和Spaces(非 Tab);执行View → Indentation → Convert Indentation to Spaces再设宽度为 2 - 用
Ctrl+Alt+Shift+P(Win/Linux)或Cmd+Alt+Shift+P(Mac)悬停光标,确认作用域含source.docker-compose;若只有source.yaml,说明没走专用语法 - 老旧主题(如默认
Default)常忽略source.docker-compose作用域,建议换Monokai Pro或ayu - 避免在
docker-compose.yml里混用不同缩进风格,尤其不要在build:块里突然用 4 空格
最易被忽略的一点:插件装了、语法选了、缩进也对,但高亮仍异常——大概率是 ApplySyntax 或 Enhanced Dockerfile 这类插件在后台劫持语法检测逻辑,导致 services 关键字被错误归类。关掉它们再试。


















