YAMLでコメントをどのようにブロックしますか?


1372

YAMLで行のブロックにコメントするにはどうすればよいですか?


質問には、特定のテキストエディターでそれを行う方法についての指示がないため、yaml構文規則と自由度の観点から答えるようにしてください。
Alexander Stohr

回答:


2007

YAMLはインラインコメントをサポートしますが、ブロックコメントはサポートしません。

ウィキペディアから:

コメントは番号記号(#)で始まり、行のどこからでも開始でき、行の終わりまで続きます

同じくWikipediaの JSONとの比較:

構文の違いはわずかで実際にはめったに発生しません。JSONはUTF-32などの拡張文字セットを許可し、YAMLはコンマ、等号、コロンなどの区切り文字の後にスペースを必要としますが、JSONはそうではありません。 JavaScriptの/* ... */コメントを含めます。このようなエッジケースを処理するには、インラインYAMLとして解析する前にJSONの軽い前処理が必要になる場合があります。

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

49
素晴らしい俳句(5/7/5音節)
Scott Pelak


137

スマートにしようとはしていませんが、エディターにSublime Textを使用する場合の手順は次のとおりです。

  1. ブロックを選択
  2. cmd+ /Macまたはctrl+ /LinuxおよびWindows
  3. 利益

他のエディターにも同様の機能があると思います。どちらを使用していますか?私はいくつかの掘り起こしをさせていただきます。


8
Atomでも動作
mndrix 2015年

3
YEditプラグインを使用してEclipseを使用している場合、ctrl- /の標準のEclipse block-comment-togglerは、yamlファイル内のブロックコメントを切り替えます。
Matt Gibson

1
一部の組み合わせはEclipse> 4.6で機能し、YAMLのサポートが組み込まれています
Faraz

3
JetBrains IDEで動作:RubyMineとGogland
Rich Sutton

3
VSCodeでも動作します。
Zain Patel、2018

67

Vimでは、次のいずれかを実行できます。

  • すべての行にコメント: :%s/^/#
  • コメント行10〜15: :10,15s/^/#
  • コメント行10から現在の行: :10,.s/^/#
  • 終了するコメント行10: :10,$s/^/#

またはビジュアルブロックを使用:

  1. を介してビジュアルブロックを入力した後、複数行の列を選択しCtrl+vます。
  2. r続けて#を押して、選択を置き換える複数行ブロックをコメント化するかShift+i#Esc、選択の前にコメント文字を挿入します。

9
考えられることの最小量;)。 "Vim, I did a thing. do it here, and here and here and here and here..."
Conrad.Dean

4
ヒット:して入力s/^/#して現在の選択にコメントを付けることもできます。
はくにん2015年

1
@ Conrad.Dean はマクロで考えること学ぼうとします。この作業のため、事実上同じものの、qqI#<esc>jqその後、@Q@Q@Q@Q@Q@Q(それはシフトキーをオフさせないために高速ですので)、あなたははるかに複雑なタスクに拡張することができる習慣です。小さなものから始めましょう。頻繁に練習してください。すぐに、非常に複雑なマクロを完全に最初に作成することになります。レジスタを最初qqqにクリアすると、再帰を取得するために@q最後の前に含めることができますq(ただし、ファイルの最後までのみ)。
Bruno Bronosky 2017年

@BrunoBronosky:これらすべての代わりに、@q単純に、6@qまたは必要に10000@q応じて実行できます。
bodo

2
@bodo確かにできます。ほとんどのvimコマンドは:h count乗数を受け入れます。しかし、私にとっては、視覚的に6を超えるものはすべて、確実に推測することができないため、手作業で行う必要があります。例外は、ターミナルに60行以上あることを知っているため、これを使用して非常に大規模なマルコ再生を推定します。おまけとして、検索マッチで繰り返しを:h gn簡単に実行できるようにする方法を誰もが学ぶことをお勧めします.vimcasts.org/episodes/operating-on-search-matches-using-gnを
Bruno Bronosky

29

別のアプローチ:

もし

  • YAML構造には、アプリで使用される明確に定義されたフィールドがあります
  • また、アプリを台無しにしない追加のフィールドを自由に追加できます

その後

  • どのレベルでも、「説明」、「コメント」、「メモ」などの名前の新しいブロックテキストフィールドを追加できます。

例:

の代わりに

# This comment
# is too long

使用する

Description: >
  This comment
  is too long

または

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

その他の利点:

  1. コメントが大きく複雑になり、繰り返しパターンがある場合は、プレーンテキストブロックからオブジェクトにコメントを昇格させることができます
  2. アプリはこれらのコメントを-将来的に読んだり更新したりする可能性があります

スマート!ありがとうございました。
Justin Krause

これは、質問に対する完全な答えだと思います。特に、YAMLからこれらの2つに変換する場合に、これらのコメントをJSONまたはXMLで表示したい場合。
Mohd

7

YAMLでコメントをブロックする1つの方法は、Notepad ++などのテキストエディターを使用して、#(コメント)タグを複数行に一度に追加することです。

Notepad ++では、選択したテキストの[コメントをブロック]右クリックオプションを使用してそれを行うことができます。

ウー画像!


18
これが唯一の方法ではありません。
チャーリーイーガン

FWIW、そのためのキーボードショートカット(np ++)はctrl-shift-Qです(Windowsの場合。他のプラットフォームについては、[編集]> [コメント/コメント解除]メニューを参照)。
チャーリーアハート

6

yeditプラグイン(.yamlファイルのエディター)でEclipseを使用している場合は、次のようにして複数の行をコメント化できます。

  1. コメントする行を選択し、次に
  2. Ctrl+ Shift+C

コメントを解除するには、同じ手順に従います。


5

Windows上のRuby Mineユーザーの場合:

エディターでファイルを開くブロックを選択してCtrl+ を押す forward slashと、#で始まるブロックが選択されます。

コメントされたブロックのコメントを解除する場合は、同じキーの組み合わせCtrl+をforward slashもう一度押します


1
それは私が思うすべてのJetBrains IDEで機能します。私はそれがPyCharmでも動作することを知っています:) Mac OSXでも動作します。
Edgar Martinez

5

Emacsにはcomment-dwim(Do What I Mean)があります-ブロックを選択して次の操作を行ってください:

M-;

これはトグルです-ブロックのコメントとコメント解除に使用します。

yaml-modeがインストールされていない場合は、ハッシュ文字(#)を使用するようにEmacsに指示する必要があります。


5

Visual Studio Code(VSCode)ユーザーの場合、複数の行をコメント化するショートカットは、コメント化したい行を強調表示して、次を押すことです:

ctrl + /

もう一度ctrl+を押すと/、選択した1つ以上の行のコメントをオフに切り替えることもできます。


1

Azure Devopsブラウザー(パイプラインyamlエディター)で、

Ctrl+ K+ Cコメントブロック

Ctrl+ K+ Uブロックのコメントを解除

「ブロックコメントの切り替え」オプションもありますが、これは私にはうまくいきませんでした。 ここに画像の説明を入力してください

他にも「奇妙な」方法があります。右クリックして「コマンドパレット」を表示するか、 F1

ここに画像の説明を入力してください

次に、カーソルオプションを選択します。 ここに画像の説明を入力してください

今それはただの問題です #

またはさらに賢い[ Ctrl+ k] + [ Ctrl+ c]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.