如何使用Ruby编辑YAML文件而不更改注释和缩进

如何使用Ruby编辑YAML文件而不更改注释和缩进,ruby,yaml,Ruby,Yaml,我试图编辑一个YAML文件键/值,但它没有保留实际文件中存在的缩进和注释 如何修复它?将YAML文件解析为对象时,注释无法保留,因为Ruby中的对象(数组或散列)本身没有内部注释的方式。注释仅存在于支持注释的源代码或数据文件中,但在任何一种情况下,解释器都会忽略它们: require 'yaml' hash = YAML.load(<<EOT) --- #foo bar foo: bar EOT hash # => {"foo"=>"bar"} 需要“yaml” ha

我试图编辑一个YAML文件键/值,但它没有保留实际文件中存在的缩进和注释


如何修复它?

将YAML文件解析为对象时,注释无法保留,因为Ruby中的对象(数组或散列)本身没有内部注释的方式。注释仅存在于支持注释的源代码或数据文件中,但在任何一种情况下,解释器都会忽略它们:

require 'yaml'
hash = YAML.load(<<EOT)
---
#foo bar
foo: bar
EOT

hash
# => {"foo"=>"bar"}
需要“yaml”
hash=YAML.load(“bar”}

类似地,YAML文件中的缩进也不能保留,因为对象无法知道文件中的缩进是什么。

为什么不将其修改为纯文本文件?声称这是不可能的