YAMLのコメント:コメントの書き方とコメントアウト
YAMLのコメント
YAMLのコメント:構文、行末の規則、ブロックの回避策 | We.Inc
YAMLでのコメントの書き方を解説します。# の構文、行末コメントの空白の規則、ブロックコメントがない理由、そして多くの行をまとめてコメントアウトしたり元に戻したりできるツールを紹介します。
YAMLのコメントはハッシュ記号(#)で始まり、行末まで続きます。単独の行に置くことも、値の後に置くこともできますが、値との間に空白が必要です。YAMLにはブロックコメントの構文がないので、複数行をコメントアウトするには各行の先頭に # を付けます。
YAMLで # がコメントを始める場合と始めない場合
- port: 5432 # default
- はい
- # の前に空白がある
- url: https://x.example/#top
- いいえ
- # の前に空白がないので、値の一部になる
- color: "#4F98FB"
- いいえ
- 引用符で囲んだ文字列の中にある
- tag: #blue
- はい
- 値は空(null)になり、残りはコメントになる
設定ファイルにJSONではなくYAMLを選ぶ一番の理由はコメントですが、その規則はつまずきやすいものです。下のツールにファイルを貼り付けて範囲内の行をコメントアウトしたり元に戻したりし、# が知らないうちにデータの一部になってしまうケースをリファレンスで確認しましょう。
- YAMLをボックスに貼り付けるか、サンプルを編集します。
- 変更したい最初と最後の行番号を入力します。
- 「コメントアウト」を押すと各行のインデントの後に # が加わり、「コメント解除」を押すと取り除かれます。
- 結果をファイルにコピーして戻します。範囲内の空行はそのまま残ります。
- # は無効にするコードとそろえて置きましょう。同じインデントでコメントアウトした行は、後で元に戻すのがずっと楽です。
- 自分のメモでは # の後にスペースを入れましょう。必須ではありませんが、コメントアウトしたコードと注記を見分けやすくなります。
- 16進数の色など、残したい # を含む値は引用符で囲みましょう。後の編集でコメントに変わってしまうのを防げます。
- 多くのライブラリでは、ファイルを読み込んで保存し直すとコメントが消えることを覚えておきましょう。ツールが書き換えるファイルでは、重要な情報をコメントだけに残さないでください。
よくある質問
YAMLに複数行コメントやブロックコメントはありますか?
ありません。仕様が定義しているのは # で始まる行コメントだけです。ブロックを無効にするには、すべての行の先頭に # を付けます。多くのエディターは選択範囲に対してこれを1つのショートカットで行い、このページのツールも任意の範囲の行に対して行えます。
コメントが値の一部になってしまったのはなぜですか?
# がコメントを始めるのは、前に空白があるときだけです。url: https://site.example/#faq では # がスラッシュの直後にあるので、文字列の中にとどまります。コメントのつもりなら、# の前にスペースを入れましょう。
YAMLをJSONに変換するとコメントは残りますか?
残りません。コメントはデータではなく表現上の要素で、JSONにはそれを置く場所がありません。RFC 9512 も、YAMLをJSONとしてシリアライズするとコメントは破棄されると記しています。
ブロックスカラーの中にコメントを書けますか?
書けません。| や > のブロックの中では、# で始まる行は普通のテキストとして文字列の一部になります。コメントが機能するのは、ブロックの内容の行の外側だけです。
エディターでYAMLをコメントにするショートカットは?
それはYAMLではなくエディターの機能です。Visual Studio Code では、Toggle Line Comment コマンドが Windows と Linux では Ctrl+/、macOS では Cmd+/ です。他のエディターはそれぞれ独自のキーを設定しています。
行末コメントと空白の規則
- YAMLの仕様では、コメントは他のトークンと空白で区切られていなければなりません。この1つの規則で、意外な挙動のほとんどが説明できます。前のテキストにくっついた # はデータで、スペースの後の # はメモの始まりです。
- ここではタブも空白として数えられますが、タブはインデントに使えないので、どこでもスペースを使うほうが簡単です。
設定ファイルを上手に文書化する
- キー名を見ればわかることではなく、なぜその値に設定したのかをコメントに書きましょう。# 5 retries because the payment API times out under load のような1行があれば、次の人が履歴を探し回らずに済みます。
- 先頭には、どのプログラムがファイルを読むのか、全オプションはどこに文書化されているのかを書いた短いヘッダーコメントを置きましょう。
よく使うコメントのパターン
行全体のコメントと行末コメント
行全体のコメントはセクションを説明し、行末コメントには # の前に少なくとも1つのスペースが必要です。
ブロックを一時的に無効にする
無効にしたサービスのすべての行がそれぞれ # を持ち、元のインデントを保っているので、きれいに元に戻せます。
YAMLの行をコメントアウトする
YAMLを貼り付け、行の範囲を選び、その行を有効な状態とコメントアウトした状態の間で切り替えます。インデントは保たれるので、構造は読みやすいままです。
あなたのYAML
開始行
終了行
コメントアウト
コメント解除
サンプルに戻す
結果
{n} 行
無料で始める · クレジットカード不要
関連: ガイド|Webマーケティングと集客を学ぶ
製品
ご利用いただける方
機能
リソース
会社情報
サイトマップを見る