Wie blockiert man Kommentare in YAML?


1372

Wie kommentiere ich einen Zeilenblock in YAML?


Die Frage enthält keinen Hinweis darauf, wie dies mit einem bestimmten Texteditor zu tun ist. Bitte bleiben Sie bei der Beantwortung dieser Frage in Bezug auf die Regeln und Freiheiten der Yaml-Syntax.
Alexander Stohr

Antworten:


2007

YAML unterstützt Inline-Kommentare, jedoch keine Blockkommentare.

Aus Wikipedia :

Kommentare beginnen mit dem Nummernzeichen ( #), können an einer beliebigen Stelle in einer Zeile beginnen und bis zum Ende der Zeile fortgesetzt werden

Ein Vergleich mit JSON, ebenfalls aus Wikipedia :

Die Syntaxunterschiede sind subtil und treten in der Praxis selten auf: JSON erlaubt erweiterte Zeichensätze wie UTF-32, YAML benötigt ein Leerzeichen nach Trennzeichen wie Komma, Gleich und Doppelpunkt, während JSON dies nicht tut, und einige nicht standardmäßige Implementierungen von JSON erweitern die Grammatik auf Fügen Sie die /* ... */Kommentare von Javascript hinzu . Die Behandlung solcher Randfälle erfordert möglicherweise eine leichte Vorverarbeitung des JSON, bevor es als Inline-YAML analysiert wird.

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

49
fantastisches Haiku (5/7/5 Silben)
Scott Pelak

224

Die Spezifikation beschreibt nur eine Möglichkeit, Kommentare zu markieren:

Ein expliziter Kommentar ist durch ein "#" gekennzeichnet.

Das ist alles. Es gibt keine Blockkommentare.


137

Versuchen Sie nicht, klug zu sein, aber wenn Sie Sublime Text für Ihren Editor verwenden, sind die Schritte:

  1. Wählen Sie den Block aus
  2. cmd+ /auf Mac oder ctrl+ /unter Linux & Windows
  3. Profitieren

Ich würde mir vorstellen, dass auch andere Editoren ähnliche Funktionen haben. Welches benutzt du? Ich würde gerne etwas graben.


8
Funktioniert auch in Atom
Mndrix

3
Wenn Sie mit dem YEdit-Plugin in Eclipse sind, schaltet der Standard-Eclipse-Blockkommentar-Togler von Strg- / Blockkommentare in Yaml-Dateien um.
Matt Gibson

1
Einige Kombinationen funktionieren in Eclipse> 4.6 mit integrierter Unterstützung für YAML
Faraz

3
Funktioniert in JetBrains IDEs: RubyMine und Gogland
Rich Sutton

3
Funktioniert auch in VSCode.
Zain Patel

67

In Vim können Sie einen der folgenden Schritte ausführen:

  • Alle Zeilen kommentieren: :%s/^/#
  • Kommentarzeilen 10 - 15: :10,15s/^/#
  • Kommentar Zeile 10 zur aktuellen Zeile: :10,.s/^/#
  • Kommentarzeile 10 bis Ende: :10,$s/^/#

oder mit visuellem Block:

  1. Wählen Sie nach Eingabe des visuellen Blocks über eine mehrzeilige Spalte aus Ctrl+v.
  2. Drücken Sie ranschließend #, um den mehrzeiligen Block zu kommentieren, der die Auswahl ersetzt, oder Shift+i#Escum Kommentarzeichen vor der Auswahl einzufügen.

8
geringstmögliches Denken möglich;). "Vim, I did a thing. do it here, and here and here and here and here..."
Conrad.Dean

4
Sie können auch drücken :und eingeben, s/^/#um die aktuelle Auswahl zu kommentieren.
Hakunin

1
@ Conrad.Dean versuchen zu lernen, in Makros zu denken . Obwohl dies für diese Aufgabe praktisch gleich qqI#<esc>jqist @Q@Q@Q@Q@Q@Q(weil es schneller ist, die Umschalttaste nicht loszulassen), ist es eine Gewohnheit, die Sie auf viel komplexere Aufgaben ausweiten können. Fangen Sie klein an. Übe oft. Bald werden Sie beim ersten Versuch sehr komplexe Makros perfekt erstellen. Wenn Sie das Register zuerst löschen qqq, können Sie @qvor dem letzten einschließen q, um eine Rekursion zu erhalten (jedoch nur bis zum Ende der Datei).
Bruno Bronosky

@BrunoBronosky: Anstelle all dieser @qkannst du es einfach machen 6@qoder 10000@qwenn du willst.
Bodo

2
@ Bodo kannst du ja. Die meisten vim-Befehle akzeptieren :h countMultiplikatoren. Aber für mich ist visuell alles über 6 und ich muss es Hand sein, weil ich es nicht zuverlässig erraten kann. Die Ausnahme ist, dass ich weiß, dass ich mehr als 60 Zeilen auf meinem Terminal habe, also werde ich das verwenden, um für sehr große Marco-Wiedergaben zu schätzen. Als Bonus werde ich jedem vorschlagen, etwas darüber zu lernen, :h gnwas es einfach macht, .Wiederholungen bei Suchmatches durchzuführen. Siehe vimcasts.org/episodes/operating-on-search-matches-using-gn
Bruno Bronosky

29

Ein alternativer Ansatz:

Wenn

  • Ihre YAML-Struktur verfügt über genau definierte Felder, die von Ihrer App verwendet werden können
  • UND Sie können frei zusätzliche Felder hinzufügen, die Ihre App nicht durcheinander bringen

dann

  • Auf jeder Ebene können Sie ein neues Blocktextfeld mit dem Namen "Beschreibung" oder "Kommentar" oder "Notizen" oder was auch immer hinzufügen

Beispiel:

Anstatt

# This comment
# is too long

verwenden

Description: >
  This comment
  is too long

oder

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

Weitere Vorteile:

  1. Wenn die Kommentare groß und komplex werden und ein sich wiederholendes Muster aufweisen, können Sie sie von einfachen Textblöcken zu Objekten heraufstufen
  2. Ihre App kann diese Kommentare in Zukunft lesen oder aktualisieren

Clever! Vielen Dank.
Justin Krause

Ich denke, dies ist die Antwort des Stechpalmengrals auf die Frage. insbesondere, wenn diese Kommentare in JSON oder XML angezeigt werden sollen, wenn von YAML in diese beiden umgewandelt werden soll.
Mohd

7

Eine Möglichkeit, das Kommentieren in YAML zu blockieren, besteht darin, mit einem Texteditor wie Notepad ++ mehreren Zeilen gleichzeitig ein # (Kommentar) -Tag hinzuzufügen.

In Notepad ++ können Sie dies mit der Rechtsklickoption "Kommentar blockieren" für ausgewählten Text tun.

Woo Bilder!


18
Dies ist nicht der einzige Weg .
Charlie Egan

Und FWIW, die Tastenkombination dafür (in np ++) wäre Strg-Umschalt-Q (unter Windows. Für andere Plattformen siehe das Menü Bearbeiten> Kommentar / Kommentar).
Charlie Arehart

6

Wenn Sie Eclipse mit dem yedit-Plugin (einem Editor für .yaml-Dateien) verwenden, können Sie mehrere Zeilen auskommentieren, indem Sie:

  1. Wählen Sie die zu kommentierenden Zeilen aus und dann
  2. Ctrl+ Shift+C

Befolgen Sie zum Aufheben des Kommentars die gleichen Schritte.


5

Für Ruby Mine-Benutzer unter Windows:

Datei im Editor öffnen Wählen Sie den Block aus und drücken Sie Ctrl+ forward slash. Sie haben den Block beginnend mit # ausgewählt.

Wenn Sie nun den kommentierten Block auskommentieren möchten, drücken Sie dieselbe Tastenkombination Ctrl+ forward slasherneut


1
Das funktioniert für alle JetBrains-IDEs, denke ich. Ich weiß, dass es auch für PyCharm funktioniert :) Funktioniert auch unter Mac OSX.
Edgar Martinez

5

Emacs hat comment-dwim (Mach was ich meine) - wähle einfach den Block aus und mache ein:

M-;

Es ist ein Umschalter - verwenden Sie ihn, um Blöcke zu kommentieren UND zu kommentieren.

Wenn Sie den Yaml-Modus nicht installiert haben, müssen Sie Emacs anweisen, das Hash-Zeichen (#) zu verwenden.


5

Für Benutzer von Visual Studio Code (VSCode) besteht die Verknüpfung zum Auskommentieren mehrerer Zeilen darin, die zu kommentierenden Zeilen hervorzuheben und dann zu drücken:

ctrl + /

Durch erneutes Drücken von ctrl+ /können Sie auch Kommentare für eine oder mehrere ausgewählte Zeilen deaktivieren.


1

Im Azure Devops-Browser (Pipeline-Yaml-Editor)

Ctrl+ K+ CKommentarblock

Ctrl+ K+ UKommentarblock

Es gibt auch die Option "Blockkommentar umschalten", aber das hat bei mir nicht funktioniert. Geben Sie hier die Bildbeschreibung ein

Es gibt auch andere "seltsame" Möglichkeiten: Klicken Sie mit der rechten Maustaste, um "Befehlspalette" oder "Befehlspalette" anzuzeigen F1

Geben Sie hier die Bildbeschreibung ein

Wählen Sie dann eine Cursoroption. Geben Sie hier die Bildbeschreibung ein

Jetzt ist es nur noch eine Frage von #

oder noch schlauer [ Ctrl+ k] + [ Ctrl+ c]

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.