Vim 如何在YAML文件中一次将同一行插入多行

Vim 如何在YAML文件中一次将同一行插入多行,vim,Vim,有没有办法在YAML文件的多行中插入同一行。例如,YAML: fields: id: label: ID disabled: true full_name: label: Full Name shipping_address: label: Shipping Address 应成为: fields: id: label: ID disabled: true

有没有办法在YAML文件的多行中插入同一行。例如,YAML:

fields:
    id:
        label: ID
        disabled: true
    full_name:
        label: Full Name
    shipping_address:
        label: Shipping Address
应成为:

fields:
    id:
        label: ID
        disabled: true
        span: auto
    full_name:
        label: Full Name
        span: auto
    shipping_address:
        label: Shipping Address
        span: auto
尝试一下:

:g/\v^(\s{4})\S+:/exe "norm! YpAfoo: bar\<esc>^df:>>>>"
您应该将{4}更改为右边的缩进,这取决于新项目位于哪个级别之下。 这将在第一个位置插入新条目。 以你的例子:


近乎完美的东西:

g/label:/ put='        span: auto'

唯一的问题发生在ID块上,或者如何将最后一行作为模式用于全局命令。

请参阅,这不是唯一的问题。如果某个项目不包含键标签怎么办?如果其他级别下的键也被称为标签?