YAML每个缩进多少个空格?

Ane*_*lou 26 ruby yaml amazon-elastic-beanstalk

如果我在YAML中每个缩进级别使用一个空格,两个或四个空格,有什么区别吗?

每种结构类型的空间编号是否有任何特定规则?

例如4位为嵌套的地图,1个每空间列表项等??

我正在为弹性beanstalk .ebextensions编写一个yaml配置文件,我很难正确地构建它.虽然我在YAML Validator中有有效的yaml 弹性beanstalk似乎理解不同的结构.

fly*_*lyx 35

YAML没有要求缩进任何具体数量的空格.也没有要求保持一致.例如,这是有效的YAML:

a:
 b:
     - c
     -  d
     - e
f:
    "ghi"
Run Code Online (Sandbox Code Playgroud)

有些规则可能会引起关注:

  • 流内容(即以{or 开头的所有内容[)可以跨越多行,但必须至少缩进与周围当前块级别一样多的空间.
  • 阻止列表项可以(但不需要)与周围的块级具有相同的缩进,因为它-被视为缩进的一部分:
a:    # top-level key
- b   # value of that key, which is a list
- c
c:    # next top-level key
 d    # non-list value which must be more indented
Run Code Online (Sandbox Code Playgroud)

  • 只有我一个人难以定义键是否嵌套吗?即使上面的小例子也需要我仔细观察“f”是在“a”级别还是“b”级别。我真的不喜欢这种语法。 (8认同)

小智 9

v 1.2YAML 规范只是说

在 YAML 块样式中,结构由缩进决定。通常,缩进被定义为行首的零个或多个空格字符。

为了保持可移植性,不能在缩进中使用制表符,因为不同的系统对制表符的处理方式不同。请注意,大多数现代编辑器可能被配置为按下 Tab 键会导致插入适当数量的空格。

缩进的数量是表示细节,不得用于传达内容信息。

因此,只要您使用空格而不是制表符,您就可以根据自己的喜好设置缩进深度。有趣的是,IntelliJ 默认使用 2 个空格。

  • “不同的系统以不同的方式对待选项卡”,再加上“缩进量是表示细节”这一事实,是**使用选项卡作为缩进的确切原因。理性思维的发展状况绝对是可怕的。 (7认同)
  • @flyx 你所描述的绝对是可怕的;一场永远不应该成为现实的噩梦 (3认同)

小智 5

缩进 YAML 文件的建议语法是使用 2 个空格进行缩进,但 YAML 将遵循单个文件使用的任何缩进系统。考虑到数据是统一的且没有深度嵌套的事实,两个空格的缩进对于 SLS 文件非常有效。

嵌套字典 当字典嵌套在其他数据结构(特别是列表)中时,缩进逻辑有时会发生变化。可能发生这种情况的示例包括来自 file.managed 状态的上下文和默认选项:

/etc/http/conf/http.conf:
file:
  - managed
  - source: salt://apache/http.conf
  - user: root
  - group: root
  - mode: 644
  - template: jinja
  - context:
      custom_var: "override"
  - defaults:
      custom_var: "default value"
      other_var: 123
Run Code Online (Sandbox Code Playgroud)

请注意,虽然每级缩进两个空格,但对于上下文和默认选项下的值,缩进有四个空格。如果仅使用两个空格来缩进,那么这些键将被视为包含上下文键的同一字典的一部分,因此数据将无法正确加载。如果不希望使用双缩进,那么可以使用花括号声明深度嵌套的 dict:

/etc/http/conf/http.conf:
file:
  - managed
  - source: salt://apache/http.conf
  - user: root
  - group: root
  - mode: 644
  - template: jinja
  - context: {
    custom_var: "override" }
  - defaults: {
    custom_var: "default value",
    other_var: 123 }
Run Code Online (Sandbox Code Playgroud)

您可以从此链接阅读更多信息