1. ホーム
  2. string

[解決済み] YAML の文字列を複数行に渡って分割するには?

2022-03-15 17:31:18

質問

YAMLで、非常に長い文字列があります。これをエディタの80カラム(くらい)のビュー内に収めたいので、文字列を分割したいと思います。このための構文は何ですか?

つまり、こんな感じです。

Key: 'this is my very very very very very very long string'

とか、こんなの欲しいなー(笑)とか。

Key: 'this is my very very very ' +
     'long string'

上記のように引用符を使いたいので、文字列の中で何かをエスケープする必要はない。

どのように解決するのですか?

yamlの折りたたみスタイルを使用する。各行のインデントは無視されます。行末に改行が入る。

Key: >
  This is a very long sentence
  that spans several lines in the YAML
  but which will be rendered as a string
  with only a single carriage return appended to the end.

http://symfony.com/doc/current/components/yaml/yaml_format.html

以下のように、"block chomping indicator"を使用すると、末尾の改行がなくなります。

Key: >-
  This is a very long sentence
  that spans several lines in the YAML
  but which will be rendered as a string
  with NO carriage returns.

いずれの場合も、各改行はスペースに置き換えられます。

また、他の制御ツールもあります(例えばインデントを制御する場合)。

参照 https://yaml-multiline.info/