key-start
将数组项插入原列表开头。
插入列表开头.yaml
key-start 结果 diff.yaml
key-start 无效类型.yaml
mixed-port 是标量、dns 是对象,因此不会产生列表插入。
key-end
将数组项追加到原列表末尾。对于 rules,原配置中的终端 MATCH 段会保留在新增内容之后;新增内容内部顺序不变。
追加列表末尾.yaml
key-end 结果 diff.yaml
key-end 无效类型.yaml
mode 是标量,mode-end 不会把它变成列表,也不会覆盖 mode。
key-merge
key-merge 对不同字段类型有不同结果:
列表追加
key-merge 列表.yaml
key-merge 列表结果 diff.yaml
映射合并
key-merge 映射.yaml
key-merge 映射结果 diff.yaml
key-merge 标量.yaml
mixed-port 是标量,key-merge 会被忽略,不会把端口变成对象。
key-force
key-force 直接替换整个字段,并跳过字段类型处理。它适用于清空原列表、替换整个对象或覆盖未知结构。
key-force 列表.yaml
key-force 结果 diff.yaml
force 优先:
force 优先.yaml
MATCH,PROXY,rules-start 不会继续执行。
简写
这两个写法是列表操作的简写:列表简写.yaml
列表简写结果 diff.yaml
简写用于标量.yaml
+mode 和 mode+ 只会被识别为列表操作,标量 mode 不会被修改。
null 列表项
列表修饰符的值可以是单个值、数组或 null:
null 列表项.yaml
DOMAIN-SUFFIX,example.com,DIRECT。
多个操作的顺序
同一个 YAML 文件可以同时使用多个操作。列表字段的顺序是:多个列表操作.yaml
多个列表操作结果 diff.yaml
key-force,上面的所有操作都会被跳过。
MATCH 规则
只有原列表中的字符串且逗号分隔后的第一段是 MATCH(不区分大小写)时,才会被识别为终端规则。对象、数字和其他规则不会触发移动;覆写文件新增的规则不会再次扫描。
终端规则判断.yaml
