什么是 YAML 格式化工具?
YAML 格式化工具会以统一的缩进和间距重写 YAML 文件,同时保持数据不变。由于缩进是 YAML 语法的一部分,手工编辑的文件很容易变得杂乱:一个块用 4 个空格缩进,下一个用 2 个,列表项时而缩进时而不缩进。格式化工具会把这些全部规范化,让文件更便于审阅,diff 也更干净。本工具基于完整的 YAML 1.2 解析器,能保留注释,而简单的“YAML 转数据再转回 YAML”会丢失注释。
如何格式化 YAML
- 粘贴 YAML或打开
.yaml/.yml文件,输入时会自动检查。 - 选择 2 或 4 个空格,并决定是否按字母顺序对键排序。
- 点击“格式化”。复制或下载结果,或用“转为 JSON”进行转换。
示例
缩进混乱并带有注释的输入:
services:
web: # public entry point
image: nginx:1.27
ports:
- "80:80"
db:
image: postgres:16
以 2 个空格格式化后:
services:
web: # public entry point
image: nginx:1.27
ports:
- "80:80"
db:
image: postgres:16
格式化会改变什么、保留什么
| 会改变 | 会保留 |
|---|---|
| 映射和序列的缩进 | 注释,包括行内注释 |
| 冒号和短横线后的空格 | 锚点、别名、标签和合并键 |
| 键的顺序(仅在勾选“键排序”时) | 字符串的引号风格、块标量 |
| 流式集合保持原样,仅规范空格 | 多文档文件中的文档分隔符(---) |
YAML 不合法时
格式化要求文档能够被解析。如果无法解析,问题列表会显示每个错误的行号和列号,并附上通俗的解释:用制表符缩进、键的冒号后缺少空格、某行的缩进层级对不上任何父级、括号或引号未闭合、键重复等。YAML 校验器页面会详细解释每一种情况。格式化工具还会对 YAML 1.1 工具解读不同的值发出警告,例如未加引号的 no 或 0755。
需要把同样的数据转成其他格式?请用 YAML 转 JSON。要比较两个版本?请用 YAML 对比。