你如何在YAML中阻止评论?

Thi*_*Lam 1272 yaml comments

如何评论YAML中的一行线?

Dol*_*lph 1887

YAML支持内联注释,但不支持块注释.

来自维基百科:

注释以数字符号(#)开头,可以从一行的任何地方开始,并一直持续到行尾

维基百科的 JSON比较:

语法差异很微妙,在实践中很少出现:JSON允许扩展字符集,如UTF-32,YAML需要在分隔符之后的空格,如逗号,等号和冒号,而JSON不需要,而JSON的一些非标准实现将语法扩展为包括Javascript的/* ... */评论.在解析为内联YAML之前,处理此类边缘情况可能需要对JSON进行轻度预处理.

# If you want to write
# a block-commented Haiku
# you'll need three pound signs
Run Code Online (Sandbox Code Playgroud)

  • 很棒的句(5/7/5音节) (13认同)
  • 我认为你的意思是说 CTRL+/ 来发表评论而不是: (4认同)
  • 因此,在 VSCode 中,您可以突出显示要注释的行,然后按 Ctrl+:,所有行都将被注释。您可以用同样的方式取消注释。如果快捷方式不起作用,您可以通过“编辑菜单” (3认同)

Eug*_*ash 200

规范只描述标志着意见的一种方式:

明确的注释标有"#"指示符.

就这样.没有块评论.


Kyl*_*son 128

不要试图理解它,但如果你使用Sublime Text作为你的编辑器,那么步骤是:

  1. 选择块
  2. cmd+ /在Mac上或ctrl+ /在Linux和Windows上
  3. 利润

我想其他编辑器也有类似的功能.你在用哪一个?我很乐意做一些挖掘.

  • 也适用于 VSCode。 (13认同)
  • 也在Atom中工作 (8认同)
  • 也适用于 intellij。 (4认同)
  • 和webstorm一样 (3认同)
  • 如果您使用的是带有YEdit插件的Eclipse,则ctrl- /的标准Eclipse block-comment-toggler将在yaml文件中切换块注释。 (3认同)
  • 适用于JetBrains IDE:RubyMine和Gogland (3认同)
  • 在Windows的记事本中不起作用;) (3认同)
  • @大卫J。我知道我在这里很迂腐,但我认为事实恰恰相反:这个答案确实回答了“如何在 YAML 中注释一行块?”的问题。bc 它确实解释了如何将 YAML 块转换为注释,即使它不是我们期望的 /* */ 类型块注释。已接受且获得更多支持的答案“YAML 不支持块注释”实际上并没有回答问题。他们用“NA”类型的答案来回避它。 (3认同)
  • PhpStorm 这样做很有魅力 (2认同)
  • 这回答了一个与提出的问题不同的问题。这个问题询问的是 YAML 语法,而不是基于特定工具的实现/用户详细信息。(注意:StackOverflow UX 工作流程有些限制,但这是设计使然。它旨在促进对所问问题的直接答案,而不是讨论不必要的细节的数十个不同答案。) (2认同)

kno*_*lya 65

在Vim中,您可以执行以下操作之一:

  • 评论所有行: :%s/^/#
  • 评论专栏10 - 15: :10,15s/^/#
  • 评论第10行到当前行: :10,.s/^/#
  • 评论第10行到结尾: :10,$s/^/#

或使用视觉块:

  1. 输入visual block via后选择一个多行列Ctrl+v.
  2. 按,r然后#注释掉替换选择的多行块,或Shift+i#Esc在选择前插入注释字符.

  • 最少的思考可能;).""Vim,我做了一件事.在这里做,在这里,这里,这里和这里......" (6认同)
  • 您也可以点击`:`并输入`s/^/#`来评论当前选择. (4认同)
  • @bodo 你确实可以。大多数 vim 命令接受`:h count` 乘数。但对我来说,视觉上超过 6 的任何东西我都必须用手去做,因为我无法可靠地猜测它。唯一的例外是我知道我的终端上有 60 多行,所以我将使用它来估计非常大的 marco 播放。作为奖励,我将建议每个人学习`:h gn`,它可以很容易地在搜索匹配中进行`.` 重复。见 http://vimcasts.org/episodes/operating-on-search-matches-using-gn/ (2认同)

Dim*_*kis 21

另一种方法:

如果

  • 您的YAML结构具有明确定义的字段,供您的应用使用
  • 并且您可以自由添加其他不会弄乱您的应用的字段

然后

  • 在任何级别,您都可以添加一个名为"描述"或"注释"或"注释"等的新块文本字段

例:

代替

# This comment
# is too long
Run Code Online (Sandbox Code Playgroud)

使用

Description: >
  This comment
  is too long
Run Code Online (Sandbox Code Playgroud)

要么

Comment: >
    This comment is also too long
    and newlines survive from parsing!
Run Code Online (Sandbox Code Playgroud)

更多优势:

  1. 如果注释变得庞大而复杂且具有重复模式,则可以将它们从纯文本块提升为对象
  2. 您的应用可能 - 将来 - 阅读或更新这些评论

  • @mTvare 编程语言以与数据序列化语言不同的思维方式进行注释。在一个领域中看起来很愚蠢的特定模式,在另一个领域可能是最佳选择。 (4认同)
  • 我想这就是这个问题的终极答案;特别是如果希望这些注释出现在 JSON 或 XML 中(如果要从 YAML 转换为这两种格式)。 (3认同)
  • 这就像那些`var comment = '这段代码做了什么'` (2认同)

Nat*_*yer 10

在 YAML 中阻止注释的一种方法是使用 Notepad++ 等文本编辑器一次向多行添加 #(注释)标签。

在 Notepad++ 中,您可以使用选定文本的“块注释”右键单击选项来执行此操作。

哇图像!

  • 这不是_唯一的方法_。 (19认同)
  • 对于基于语法的问题,正确答案只需要讨论语法即可。有关特定工具(例如特定文本编辑器)的其他详细信息不必要具体,因此不适用于所提出的问题。 (3认同)

小智 6

如果您将Eclipse与yedit插件(.yaml文件的编辑器)一起使用,则可以通过以下方式注释掉多行:

  1. 选择要评论的行,然后
  2. Ctrl+ Shift+C

要取消评论,请按照相同的步骤操作.

  • 同样,OP 提出了一个 YAML *语法* 问题,而不是一个 *文本编辑器 * 问题。 (4认同)

Mar*_*agg 6

对于 Visual Studio Code (VSCode) 用户,注释掉多行的快捷方式是突出显示要注释的行,然后按:

ctrl + /

再次按ctrl+/也可用于关闭一个或多个选定行的注释。


Les*_*ung 5

Emacs有评论-dwim(Do Do I Mean) - 只需选择块并执行:

M-;

这是一个切换 - 用它来评论和取消注释块.

如果您没有安装yaml-mode,则需要告诉Emacs使用哈希字符(#).

  • 同样,OP 询问了一个简单的 YAML 语法问题,而不是文本编辑器问题。(想象一下,如果每个通用语言问题都包含与所有正在使用的编辑器相关的答案……也许有些人想要这样一个世界,但这不是 StackOverflow 的设计。) (2认同)