How do you do block comments in YAML?
CommentsYamlComments Problem Overview
How do I comment a block of lines in YAML?
Comments Solutions
Solution 1 - Comments
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
Solution 2 - Comments
The spec only describes one way of marking comments:
> An explicit comment is marked by a “#” indicator.
That's all. There are no block comments.
Solution 3 - Comments
Not trying to be smart about it, but if you use Sublime Text for your editor, the steps are:
- Select the block
- cmd+/ on Mac or ctrl+/ on Linux & Windows
- Profit
I'd imagine that other editors have similar functionality too. Which one are you using? I'd be happy to do some digging.
Solution 4 - Comments
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:
- Select a multiple-line column after entering visual block via Ctrl+v.
- 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.
Solution 5 - Comments
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:
- If the comments become large and complex and have a repeating pattern, you may promote them from plain text blocks to objects
- Your app may -in the future- read or update those comments
Solution 6 - Comments
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.
Solution 7 - Comments
For Visual Studio Code (VSCode) users, the shortcut to comment out multiple lines is to highlight the lines you want to comment and then press:
ctrl + /
Pressing ctrl + / again can also be used to toggle comments off for one or more selected lines.
Solution 8 - Comments
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 (#).
Solution 9 - Comments
If you are using Eclipse with the yedit plugin (an editor for .yaml files), you can comment-out multiple lines by:
- selecting lines to be commented, and then
- Ctrl + Shift + C
And to un-comment, follow the same steps.
Solution 10 - Comments
For Ruby Mine users on Windows:
Open file in editor Select the block and press Ctrl+forward slash, you will have selected block starting with #.
Now if you want to un-comment the commented block, press same key combination Ctrl+forward slash again
Solution 11 - Comments
In 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.
There are other 'wierd' ways too: right click to see 'Command Palette' or F1
Now it is just a matter of #
or even smarter [Ctrl + k] + [Ctrl + c]
Solution 12 - Comments
In .gitlab-ci.yml file 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