Sublime Text 不内置 YAML 校验,仅支持基础高亮;YAMLNav 已停止维护、不兼容现代版本且无校验能力,应改用 YAML Formatter + yamllint 等外部工具链实现语法与格式校验。

Sublime Text 本身不内置 YAML 校验(语法+语义),只支持基础高亮;YAMLNav 是一个已停止维护的旧插件,不能用于现代 Sublime(v4+)且不提供校验能力——你需要的是 YAML Formatter + 手动关联 + 可选外部工具链。
为什么 YAMLNav 不该用(且大概率装不上)
YAMLNav 是 Sublime Text 2/3 时代的插件,依赖过时的 API 和 Python 2 运行时。当前 Sublime Text(Build 4143+)强制使用 Python 3.8+,安装后会报错:ImportError: No module named 'yaml' 或直接在控制台显示 plugin_host has exited unexpectedly。它也不做 Schema 校验,仅提供极简折叠和跳转,功能已被更成熟的方案全面替代。
- 它不检查
key: value后是否缺空格、缩进是否混用 Tab、布尔值是否写成YES等常见 YAML 解析错误 - 无法识别
.actrc、secrets.yml等非标准后缀,需手动配置 - 无更新记录(GitHub 最后提交在 2018 年),与 Sublime Package Control 的现代依赖管理不兼容
正确配置 YAML 高亮 + 基础格式化(零依赖)
Sublime 自带 YAML 语法定义,但默认不识别 .yml 以外的扩展名(如 .actrc、.github/workflows/ci.yml)。你需要显式绑定:
- 打开任意 YAML 文件(如
config.yml),点击右下角当前语法名称(如YAML) - 选择
Open all with current extension as… → YAML - 对非标准后缀(如
.actrc),需编辑语法文件:进入Packages/YAML/YAML.sublime-syntax,在file_extensions列表末尾添加- actrc(注意缩进对齐)
保存后重启 Sublime 或运行命令面板(Ctrl+Shift+P)→ Reload Syntax Definitions 即可生效。
启用真实 YAML 校验:靠外部工具 + 插件桥接
Sublime 无法原生校验字段是否存在或类型是否合法(例如 GitHub Actions 中 on.push.branches 是否为数组),必须借助外部 CLI 工具并由插件调用。推荐组合:
- 安装
yamllint:pip install yamllint
(确保系统PATH可访问) - 安装插件
SublimeLinter-contrib-yamllint(通过 Package Control) - 在
Preferences → Package Settings → SublimeLinter → Settings中确认路径:"paths": {"linux": [], "osx": [], "windows": []}留空即可自动探测,或填入yamllint绝对路径 - 保存 YAML 文件时,错误会实时出现在行号旁,悬停提示如:
error: wrong indentation: expected 2 but found 4 (indentation)
⚠️ 注意:yamllint 默认不校验 Schema(比如 GitHub Actions 字段合法性),如需此能力,得搭配 pre-commit + actionlint 或在终端单独运行:
actionlint -f github-actions .github/workflows/*.yml
容易被忽略的关键点
很多人配完以为“能高亮=能校验”,结果 CI 失败才发现 YAML 语法看似正确实则解析失败。真正要盯住的三个层次是:
-
YAML syntax(Sublime 内置):只管结构(冒号、缩进、引号),不关心字段含义 -
yamllint(推荐必装):检查格式规范(空格、换行、重复 key),但仍是静态文本分析 -
runtime validator(如actionlint、kubeval):必须按目标平台执行,Sublime 无法替代 —— 它们才是你上线前最后一道防线
别省略 yamllint 这步。一个缩进空格不对,就可能让整个 GitHub Action 流水线静默失败。










