YAML Cheatsheet - YAML Syntax Reference

把 YAML 最常用的语法整理成速查表,写配置文件时对照查。

Config Formats·54 commands·Last updated 2026-07-21
Back to Config Formats

基础语法 Basic Syntax 8

key: value
键值对(冒号后必须有空格)
# 注释
单行注释
---
文档分隔符(多文档用)
...
文档结束符
string
字符串(默认不需要引号)
"string" / 'string'
双引号(支持转义)/ 单引号(不转义)
key: "value: with colon"
值含特殊字符(: # 等)需加引号
key with spaces: value
键名可含空格(无需引号)

数据类型 Data Types 8

null / ~
空值
true / false
布尔值
123 / 0x1A / 0o17 / 0b1010
整数(十进制/十六/八/二进制)
3.14 / .inf / -.inf / .nan
浮点数(无穷大/NaN)
2026-07-19
日期(ISO 8601)
2026-07-19T10:30:00Z
日期时间(UTC)
2026-07-19T10:30:00+08:00
带时区的日期时间
!!binary "aGVsbG8="
二进制数据(base64 编码)

列表 List / Array 6

- item1\n- item2
块风格列表
[item1, item2]
流风格列表(行内)
fruits:\n - apple\n - banana
嵌套列表
items: []
空列表
matrix:\n - [1, 2]\n - [3, 4]
列表中的列表
users:\n -\n name: tom\n age: 20
列表中放字典

字典 Dictionary / Object 6

key1: value1\nkey2: value2
块风格字典
{key1: value1, key2: value2}
流风格字典(行内)
person:\n name: tom\n age: 20
嵌套字典
person: {name: tom, age: 20}
流风格嵌套字典
config: {}
空字典
server:\n host: localhost\n ports:\n - 80\n - 443
字典与列表混合嵌套

多行字符串 Multiline String 7

text: |\n line1\n line2
保留换行(Literal 标量)
text: >\n line1\n line2
折叠换行为空格(Folded 标量)
text: "line1\nline2"
双引号内显式换行
text: |-\n line1\n line2
保留换行并去除末尾换行(- chomp)
text: |+\n line1\n line2
保留换行并保留末尾空行(+ chomp)
text: |2\n line1\n line2
指定缩进指示数字(2 个空格)
text: >-\n line1\n line2
折叠换行并去除末尾换行

锚点与引用 Anchor & Alias 6

default: &default\n key: value
定义锚点(&)
env: *default
引用锚点(*)
env:\n <<: *default\n extra: value
合并锚点到当前字典(<<)
list: &list [a, b, c]
为列表定义锚点
copy: *list
引用列表锚点
config:\n <<: [*base, *override]
合并多个锚点(后者覆盖前者)

类型强制转换 Type Conversion 8

key: !!str 123
将整数转为字符串 "123"
key: !!int "42"
将字符串转为整数 42
key: !!float "3.14"
将字符串转为浮点数
key: !!bool "yes"
将字符串转为布尔值
key: !!timestamp "2026-07-19"
将字符串转为时间戳
key: !!null ""
将空字符串转为 null
key: !!seq {}
显式声明为序列类型
key: !!map []
显式声明为映射类型

实用示例 Real-world Examples 5

services:\n web:\n image: nginx:latest\n ports:\n - "80:80"
Docker Compose 服务定义
steps:\n - name: Checkout\n uses: actions/checkout@v4
GitHub Actions 步骤
apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: my-app
Kubernetes 资源定义
---\ntitle: My Post\ndate: 2026-07-19\n---
Front Matter(文章元信息)
env:\n DATABASE_URL: postgres://localhost/mydb
环境变量配置

💡 Tips

  • YAML 对缩进敏感,必须用空格不能用 Tab,同一层级必须对齐。
  • 冒号后必须有空格(key: value),否则会被解析为字符串。
  • 多行字符串用 | 保留换行,用 > 折叠换行(适合长段落)。
  • 字符串含特殊字符(: # @ ` 等)时需加引号,避免解析歧义。
  • 锚点 & 定义、别名 * 引用、<< 合并键可减少重复配置。
  • 多文档用 --- 分隔,常见于 Front Matter 和 CI/CD 配置。