Comment bloquez-vous les commentaires dans YAML?

1373

Comment commenter un bloc de lignes en YAML?

Thierry Lam
la source
la question n'a aucune indication sur la façon de le faire avec un certain éditeur de texte, veuillez donc y répondre en termes de règles de syntaxe yaml et de libertés.
Alexander Stohr

Réponses:

2009

YAML prend en charge les commentaires en ligne, mais ne prend pas en charge les commentaires de bloc.

De Wikipédia :

Les commentaires commencent par le signe numérique ( #), peuvent commencer n'importe où sur une ligne et se poursuivre jusqu'à la fin de la ligne

Une comparaison avec JSON, également de Wikipedia :

Les différences de syntaxe sont subtiles et surviennent rarement dans la pratique: JSON autorise les jeux de caractères étendus comme UTF-32, YAML nécessite un espace après les séparateurs comme les virgules, les égaux et les deux-points tandis que JSON ne le fait pas, et certaines implémentations non standard de JSON étendent la grammaire à inclure les /* ... */commentaires de Javascript . La gestion de ces cas limites peut nécessiter un prétraitement léger du JSON avant l'analyse en tant que YAML en ligne.

# If you want to write
# a block-commented Haiku
# you'll need three pound signs
Dolph
la source
49
haiku génial (5/7/5 syllabes)
Scott Pelak
224

La spécification ne décrit qu'une façon de marquer les commentaires:

Un commentaire explicite est marqué par un indicateur «#».

C'est tout. Il n'y a aucun commentaire de bloc.

Eugene Yarmash
la source
137

N'essayant pas d'être intelligent à ce sujet, mais si vous utilisez Sublime Text pour votre éditeur, les étapes sont les suivantes:

  1. Sélectionnez le bloc
  2. cmd+ /sur Mac ou ctrl+ /sur Linux & Windows
  3. Profit

J'imagine que d'autres éditeurs ont également des fonctionnalités similaires. Lequel utilisez-vous? Je serais heureux de creuser.

Kyle Carlson
la source
8
Fonctionne aussi dans Atom
mndrix
3
Si vous êtes dans Eclipse avec le plugin YEdit, le bloc-commentaire-bascule Eclipse standard de ctrl- / bascule les commentaires de bloc dans les fichiers yaml.
Matt Gibson
1
certaines combinaisons fonctionnent dans eclipse> 4.6 avec un support intégré pour YAML
Faraz
3
Fonctionne dans les IDE JetBrains: RubyMine et Gogland
Rich Sutton
3
Fonctionne également dans VSCode.
Zain Patel
67

Dans Vim, vous pouvez effectuer l'une des opérations suivantes:

  • Commentez toutes les lignes: :%s/^/#
  • Lignes de commentaires 10 à 15: :10,15s/^/#
  • Commentez la ligne 10 à la ligne actuelle: :10,.s/^/#
  • Ligne de commentaires 10 à la fin: :10,$s/^/#

ou en utilisant un bloc visuel:

  1. Sélectionnez une colonne de plusieurs lignes après avoir entré le bloc visuel via Ctrl+v.
  2. Appuyez sur rpuis sur #pour mettre en commentaire le bloc de plusieurs lignes remplaçant la sélection ou Shift+i#Escpour insérer des caractères de commentaire avant la sélection.
connuasilya
la source
9
moins de réflexion possible;). "Vim, I did a thing. do it here, and here and here and here and here..."
Conrad.Dean
4
Vous pouvez également appuyer :et taper s/^/#pour commenter la sélection actuelle.
hakunin
1
@ Conrad.Dean essayez d' apprendre à penser dans les macros . Bien que pratiquement la même chose pour cette tâche, qqI#<esc>jqalors @Q@Q@Q@Q@Q@Q(parce qu'il est plus rapide de ne pas laisser de la touche Maj enfoncée), est une habitude que vous pouvez étendre à des tâches beaucoup plus complexes. Commencer petit. Pratiquez souvent. Bientôt, vous créerez parfaitement des macros très complexes du premier coup. Si vous effacez d'abord le registre qqq, vous pouvez l'inclure @qavant le dernier qpour obtenir la récursivité (mais uniquement jusqu'à la fin du fichier).
Bruno Bronosky
@BrunoBronosky: au lieu de tout cela @q, vous pouvez simplement le faire 6@qou 10000@qsi vous le souhaitez.
bodo
2
@bodo vous pouvez en effet. La plupart des commandes vim acceptent les :h countmultiplicateurs. Mais pour moi, visuellement tout ce qui dépasse 6 et je dois le faire à la main car je ne peux pas le deviner de manière fiable. La seule exception étant que je sais que j'ai plus de 60 lignes sur mon terminal, je vais donc l'utiliser pour estimer les très grandes lectures marco. En prime, je vais suggérer à tout le monde de savoir :h gnce qui facilite la .répétition des correspondances de recherche. Voir vimcasts.org/episodes/operating-on-search-matches-using-gn
Bruno Bronosky
29

Une approche alternative:

Si

  • votre structure YAML a des champs bien définis à utiliser par votre application
  • ET vous pouvez librement ajouter des champs supplémentaires qui ne perturberont pas votre application

puis

  • à tout niveau, vous pouvez ajouter un nouveau champ de texte de bloc nommé comme "Description" ou "Commentaire" ou "Notes" ou autre

Exemple:

Au lieu de

# This comment
# is too long

utilisation

Description: >
  This comment
  is too long

ou

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

Plus d'avantages:

  1. Si les commentaires deviennent volumineux et complexes et ont un motif répétitif, vous pouvez les promouvoir de blocs de texte brut en objets
  2. Votre application peut, à l'avenir, lire ou mettre à jour ces commentaires
Dimitrios Tsalkakis
la source
Intelligent! Je vous remercie.
Justin Krause
Je suppose que c'est la réponse holly graal à la question; surtout si l'on veut que ces commentaires apparaissent en JSON ou XML si l'on veut passer de YAML à ces deux-là.
Mohd
7

Une façon de bloquer les commentaires dans YAML est d'utiliser un éditeur de texte comme Notepad ++ pour ajouter une balise # (comment) à plusieurs lignes à la fois.

Dans Notepad ++, vous pouvez le faire en utilisant l'option de clic droit "Bloquer les commentaires" pour le texte sélectionné.

Woo Images!

Nathan Meyer
la source
18
Ce n'est pas le seul moyen .
Charlie Egan
Et FWIW, le raccourci clavier pour cela (dans np ++) serait ctrl-shift-Q (sur Windows. Pour les autres plates-formes, voir le menu édition> commentaire / décommentation).
charlie arehart
6

Si vous utilisez Eclipse avec le plugin yedit (un éditeur pour les fichiers .yaml), vous pouvez commenter plusieurs lignes en:

  1. sélection des lignes à commenter, puis
  2. Ctrl+ Shift+C

Et pour annuler le commentaire, suivez les mêmes étapes.

le meilleur est à venir
la source
5

Pour les utilisateurs de Ruby Mine sous Windows:

Ouvrir le fichier dans l'éditeur Sélectionnez le bloc et appuyez sur Ctrl+ forward slash, vous aurez sélectionné le bloc commençant par #.

Maintenant, si vous souhaitez annuler le commentaire du bloc commenté, appuyez à nouveau sur la même combinaison de touches Ctrl+forward slash

Paul
la source
1
Je pense que cela fonctionne pour tous les IDE JetBrains. Je sais que cela fonctionne aussi pour PyCharm :) Fonctionne également sur Mac OSX.
Edgar Martinez
5

Emacs a comment-dwim (Do What I Mean) - il suffit de sélectionner le bloc et de faire un:

M-;

C'est une bascule - utilisez-la pour commenter ET décommenter des blocs.

Si vous n'avez pas installé le mode yaml, vous devrez dire à Emacs d'utiliser le caractère de hachage (#).

Lester Cheung
la source
5

Pour les utilisateurs de Visual Studio Code (VSCode), le raccourci pour mettre en commentaire plusieurs lignes consiste à mettre en surbrillance les lignes que vous souhaitez commenter, puis à appuyer sur:

ctrl + /

Une nouvelle pression sur ctrl+ /peut également être utilisée pour désactiver les commentaires pour une ou plusieurs lignes sélectionnées.

Mark Wragg
la source
1

Dans le navigateur Azure Devops (éditeur yaml de pipeline),

Ctrl+ K+ CBloc de commentaires

Ctrl+ K+ UBloquer la mise en commentaire

Il y avait aussi une option 'Toggle Block Comment' mais cela n'a pas fonctionné pour moi. entrez la description de l'image ici

Il y a aussi d'autres façons «bizarres»: faites un clic droit pour voir «Palette de commandes» ou F1

entrez la description de l'image ici

Choisissez ensuite une option de curseur. entrez la description de l'image ici

Maintenant, c'est juste une question de #

ou encore plus intelligent [ Ctrl+ k] + [ Ctrl+ c]

Nuages ​​bleus
la source