Thierry Lam
Thierry Lam

Reputation: 46294

How do you do block comments in YAML?

How do I comment a block of lines in YAML?

Upvotes: 1479

Views: 1420646

Answers (11)

Kyle Carlson
Kyle Carlson

Reputation: 8173

I am not trying to be smart about it, but if you use Sublime Text or Visual Studio Code for your editor, the steps are:

  1. Select the block
  2. Cmd + / on Mac or Ctrl + / on Linux and Windows
  3. Profit

I'd imagine that other editors have similar functionality too. Which one are you using? I'd be happy to do some digging.

Upvotes: 248

paul
paul

Reputation: 4487

For RubyMine users on Windows:

  • Open the file in the editor.

  • Select the block and press:

    Ctrl + /,

  • And you will have the selected block starting with #.

Now if you want to uncomment the commented block, press the same key combination Ctrl + forward slash again.

Upvotes: -1

If you are using Eclipse with the YEdit plugin (an editor for .yaml files), you can comment-out multiple lines by:

  1. selecting lines to be commented, and then
  2. Ctrl + Shift + C

And to uncomment, follow the same steps.

Upvotes: -4

Nathan Meyer
Nathan Meyer

Reputation: 435

One way to block commenting in YAML is by using a text editor like Notepad++ to add a # (comment) tag to multiple lines at once.

In Notepad++ you can do that using the "Block Comment" right-click option for selected text.

Woo Images!

Upvotes: 1

Eugene Yarmash
Eugene Yarmash

Reputation: 150081

The specification only describes one way of marking comments:

An explicit comment is marked by a “#” indicator.

That's all. There aren't any block comments.

Upvotes: 367

Blue Clouds
Blue Clouds

Reputation: 8161

In the Azure DevOps browser (pipeline YAML editor),

Ctrl + K + C Comment Block

Ctrl + K + U Uncomment Block

There also a 'Toggle Block Comment' option, but this did not work for me.

Enter image description here

There are other 'weird' ways too: Right-click to see 'Command Palette' or F1

Enter image description here

Then choose a cursor option.

Enter image description here

Now it is just a matter of #.

Or even smarter [Ctrl + K] + [Ctrl + C]

Upvotes: -4

vinsinraw
vinsinraw

Reputation: 2135

In a .gitlab-ci.yml file, the following works:

To comment out a block (multiline): Select the whole block section > Ctrl K C

To uncomment already commented out block (multiline): Select the whole block section > Ctrl K U

Upvotes: -17

Dimitrios Tsalkakis
Dimitrios Tsalkakis

Reputation: 1102

An alternative approach:

If

  • your YAML structure has well defined fields to be used by your app
  • AND you may freely add additional fields that won't mess up with your app

then

  • at any level you may add a new block text field named like "Description" or "Comment" or "Notes" or whatever

Example:

Instead of

# This comment
# is too long

use

Description: >
  This comment
  is too long

or

Comment: >
    This comment is also too long
    and newlines survive from parsing!

More advantages:

  1. If the comments become large and complex and have a repeating pattern, you may promote them from plain text blocks to objects
  2. Your app may -in the future- read or update those comments

Upvotes: 85

Dolph
Dolph

Reputation: 50710

YAML supports inline comments, but does not support block comments.

From Wikipedia:

Comments begin with the number sign ( # ), can start anywhere on a line, and continue until the end of the line

A comparison with JSON, also from Wikipedia:

The syntax differences are subtle and seldom arise in practice: JSON allows extended charactersets like UTF-32, YAML requires a space after separators like comma, equals, and colon while JSON does not, and some non-standard implementations of JSON extend the grammar to include Javascript's /* ... */ comments. Handling such edge cases may require light pre-processing of the JSON before parsing as in-line YAML.

# If you want to write
# a block-commented Haiku
# you'll need three pound signs

Upvotes: 2616

Lester Cheung
Lester Cheung

Reputation: 2030

Emacs has comment-dwim (Do What I Mean) - just select the block and do a:

M-;

It's a toggle - use it to comment AND uncomment blocks.

If you don't have yaml-mode installed you will need to tell Emacs to use the hash character (#).

Upvotes: -1

knownasilya
knownasilya

Reputation: 6143

In Vim you can do one of the following:

  • Comment all lines: :%s/^/#
  • Comment lines 10 - 15: :10,15s/^/#
  • Comment line 10 to current line: :10,.s/^/#
  • Comment line 10 to end: :10,$s/^/#

or using visual block:

  1. Select a multiple-line column after entering visual block via Ctrl+v.
  2. Press r followed by # to comment out the multiple-line block replacing the selection, or Shift+i#Esc to insert comment characters before the selection.

Upvotes: 91

Related Questions