Como você bloqueia comentários no YAML?

1372

Como faço para comentar um bloco de linhas no YAML?

Thierry Lam
fonte
a pergunta não tem indicação de como fazê-lo com um determinado editor de texto; portanto, atenda-a em termos de regras e liberdades de sintaxe yaml.
Alexander Stohr

Respostas:

2007

O YAML suporta comentários embutidos, mas não suporta comentários em bloco.

Da Wikipedia :

Os comentários começam com o sinal numérico ( #), podem começar em qualquer lugar da linha e continuar até o final da linha

Uma comparação com JSON, também da Wikipedia :

As diferenças de sintaxe são sutis e raramente surgem na prática: o JSON permite conjuntos de caracteres estendidos como UTF-32, o YAML requer um espaço após separadores como vírgula, iguais e dois pontos, enquanto o JSON não o faz, e algumas implementações não padrão do JSON estendem a gramática inclua os /* ... */comentários do Javascript . O tratamento de casos extremos pode exigir um pré-processamento leve do JSON antes da análise como YAML em linha.

# If you want to write
# a block-commented Haiku
# you'll need three pound signs
Dolph
fonte
49
haiku incrível (5/7/5 sílabas)
Scott Pelak
224

A especificação descreve apenas uma maneira de marcar comentários:

Um comentário explícito é marcado por um indicador "#".

Isso é tudo. Não há comentários em bloco.

Eugene Yarmash
fonte
137

Não tentando ser esperto, mas se você usar Sublime Text para o seu editor, as etapas são:

  1. Selecione o bloco
  2. cmd+ /no Mac ou ctrl+ /no Linux e Windows
  3. Lucro

Eu imagino que outros editores também tenham funcionalidades semelhantes. Qual deles você está usando? Eu ficaria feliz em fazer algumas escavações.

Kyle Carlson
fonte
8
Também funciona no Atom
mndrix
3
Se você estiver no Eclipse com o plug-in YEdit, o bloco-comentário-alternador padrão do Eclipse do ctrl- / alternará os comentários do bloco nos arquivos yaml.
Matt Gibson
1
alguma combinação funciona em eclipse> 4.6 com suporte embutido para YAML
Faraz
3
Funciona nos IDEs do JetBrains: RubyMine e Gogland
Rich Sutton
3
Também funciona em VSCode.
Zain Patel
67

No Vim, você pode executar um dos seguintes procedimentos:

  • Comente todas as linhas: :%s/^/#
  • Linhas de comentário 10 a 15: :10,15s/^/#
  • Linha de comentário 10 à linha atual: :10,.s/^/#
  • Linha de comentário 10 ao final: :10,$s/^/#

ou usando bloco visual:

  1. Selecione uma coluna de várias linhas após inserir o bloco visual via Ctrl+v.
  2. Pressione rseguido de #para comentar o bloco de várias linhas que substitui a seleção ou Shift+i#Escpara inserir caracteres de comentário antes da seleção.
knownasilya
fonte
9
menor quantidade de pensamento possível;). "Vim, I did a thing. do it here, and here and here and here and here..."
Conrad.Dean
4
Você também pode pressionar :e digitar s/^/#para comentar a seleção atual.
Hakunin
1
@ Conrad.Dean tenta aprender a pensar em macros . Embora seja praticamente o mesmo para esta tarefa, qqI#<esc>jqentão @Q@Q@Q@Q@Q@Q(porque é mais rápido não soltar a tecla Shift), é um hábito que você pode estender para tarefas muito mais complexas. Comece pequeno. Pratique frequentemente. Em breve, você criará macros muito complexas perfeitamente na primeira tentativa. Se você limpar o registro primeiro qqq, poderá incluir @qo anterior qpara obter recursão (mas apenas até o final do arquivo).
de Bruno Bronosky
@BrunoBronosky: em vez de tudo isso @q, você pode simplesmente fazer 6@qou 10000@qse quiser.
bodo
2
@bodo você pode realmente. A maioria dos comandos do vim aceita :h countmultiplicadores. Mas para mim, visualmente, qualquer coisa acima de 6 anos e eu tenho que fazê-lo em mãos, porque não posso adivinhar com segurança. A exceção é que eu sei que tenho mais de 60 linhas no meu terminal, então usarei isso para estimar reproduções de marcos muito grandes. Como bônus, sugiro que todos aprendam sobre o :h gnque facilita a .repetição nas correspondências de pesquisa. Veja vimcasts.org/episodes/operating-on-search-matches-using-gn
Bruno Bronosky
29

Uma abordagem alternativa:

E se

  • sua estrutura YAML possui campos bem definidos para serem usados ​​pelo seu aplicativo
  • E você pode adicionar livremente campos adicionais que não atrapalharão seu aplicativo

então

  • em qualquer nível, você pode adicionar um novo campo de texto em bloco com o nome "Descrição" ou "Comentário" ou "Notas" ou qualquer outra coisa

Exemplo:

Ao invés de

# This comment
# is too long

usar

Description: >
  This comment
  is too long

ou

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

Mais vantagens:

  1. Se os comentários se tornarem grandes e complexos e tiverem um padrão repetitivo, você poderá promovê-los de blocos de texto sem formatação a objetos
  2. Seu aplicativo pode, no futuro, ler ou atualizar esses comentários
Dimitrios Tsalkakis
fonte
Inteligente! Obrigado.
Justin Krause
Eu acho que essa é a resposta do azevinho para a pergunta; especialmente se alguém quiser que esses comentários apareçam em JSON ou XML, se for necessário transformar do YAML para esses dois.
Mohd
7

Uma maneira de bloquear os comentários no YAML é usar um editor de texto como o Notepad ++ para adicionar uma marca # (comment) a várias linhas ao mesmo tempo.

No Notepad ++, você pode fazer isso usando a opção de clique com o botão direito do mouse em "Bloquear comentário" para o texto selecionado.

Woo Images!

Nathan Meyer
fonte
18
Este não é o único caminho .
Charlie Egan
E FWIW, o atalho de teclado para isso (em np ++) seria ctrl-shift-Q (no Windows. Para outras plataformas, consulte o menu editar> comentar / descomentar).
Charlie arehart
6

Se você estiver usando o Eclipse com o plug-in yedit (um editor para arquivos .yaml), poderá comentar várias linhas:

  1. selecionando linhas a serem comentadas e depois
  2. Ctrl+ Shift+C

E para cancelar o comentário, siga os mesmos passos.

o melhor está por vir
fonte
5

Para usuários do Ruby Mine no Windows:

Abrir arquivo no editor Selecione o bloco e pressione Ctrl+ forward slash, você selecionará o bloco começando com #.

Agora, se você deseja cancelar o comentário do bloco comentado, pressione a mesma combinação de teclas Ctrl+ forward slashnovamente

Paulo
fonte
1
Isso funciona para todos os IDE do JetBrains, eu acho. Eu sei que funciona para PyCharm também :) Funciona também no Mac OSX.
Edgar Martinez
5

O Emacs tem comment-dwim (Faça o que eu quero dizer) - basta selecionar o bloco e fazer um:

M-;

É uma alternância - use-a para comentar E descomentar blocos.

Se você não possui o modo yaml instalado, precisará informar ao Emacs para usar o caractere de hash (#).

Lester Cheung
fonte
5

Para usuários do Visual Studio Code (VSCode), o atalho para comentar várias linhas é destacar as linhas que você deseja comentar e pressione:

ctrl + /

Pressionar ctrl+ /novamente também pode ser usado para desativar os comentários de uma ou mais linhas selecionadas.

Mark Wragg
fonte
1

No navegador Azure Devops (editor yaml de pipeline),

Ctrl+ K+ CBloco de comentários

Ctrl+ K+ UBloco de comentário

Também existe a opção 'Alternar comentário do bloco', mas isso não funcionou para mim. insira a descrição da imagem aqui

Também existem outras maneiras 'estranhas': clique com o botão direito do mouse para ver 'Paleta de comandos' ou F1

insira a descrição da imagem aqui

Depois escolha uma opção de cursor. insira a descrição da imagem aqui

Agora é só uma questão de #

ou ainda mais inteligente [ Ctrl+ k] + [ Ctrl+ c]

Nuvens azuis
fonte