¿Cómo se bloquean los comentarios en YAML?

1373

¿Cómo comento un bloque de líneas en YAML?

Thierry Lam
fuente
la pregunta no tiene indicaciones sobre cómo hacerlo con un editor de texto determinado, por lo tanto, responda en términos de reglas y libertades de sintaxis yaml.
Alexander Stohr el

Respuestas:

2008

YAML admite comentarios en línea, pero no admite comentarios de bloque.

De Wikipedia :

Los comentarios comienzan con el signo de número ( #), pueden comenzar en cualquier parte de una línea y continuar hasta el final de la línea.

Una comparación con JSON, también de Wikipedia :

Las diferencias de sintaxis son sutiles y rara vez surgen en la práctica: JSON permite caracteres extendidos como UTF-32, YAML requiere un espacio después de separadores como coma, igual y dos puntos, mientras que JSON no lo hace, y algunas implementaciones no estándar de JSON extienden la gramática a incluir los /* ... */comentarios de Javascript . El manejo de estos casos extremos puede requerir un preprocesamiento ligero del JSON antes de analizarlo como YAML en línea.

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

La especificación solo describe una forma de marcar comentarios:

Un comentario explícito está marcado con un indicador "#".

Eso es todo. No hay comentarios de bloque.

Eugene Yarmash
fuente
137

No trato de ser inteligente al respecto, pero si usa Sublime Text para su editor, los pasos son:

  1. Selecciona el bloque
  2. cmd+ /en Mac o ctrl+ /en Linux y Windows
  3. Lucro

Me imagino que otros editores también tienen una funcionalidad similar. Cual estas usando? Me encantaría hacer algunas excavaciones.

Kyle Carlson
fuente
8
También funciona en Atom
mndrix
3
Si está en Eclipse con el complemento YEdit, el estándar Eclipse block-comment-toggler de ctrl- / alternará los comentarios de bloque en archivos yaml.
Matt Gibson
1
alguna combinación funciona en eclipse> 4.6 con soporte integrado para YAML
Faraz
3
Funciona en IDB de JetBrains: RubyMine y Gogland
Rich Sutton
3
Funciona en VSCode también.
Zain Patel
67

En Vim puedes hacer uno de los siguientes:

  • Comenta todas las líneas: :%s/^/#
  • Líneas de comentarios 10-15: :10,15s/^/#
  • Comente la línea 10 a la línea actual: :10,.s/^/#
  • Comenta la línea 10 hasta el final: :10,$s/^/#

o usando bloque visual:

  1. Seleccione una columna de varias líneas después de ingresar al bloque visual a través de Ctrl+v.
  2. Presione rseguido de #para comentar el bloque de líneas múltiples que reemplaza la selección, o Shift+i#Escpara insertar caracteres de comentario antes de la selección.
conocidaasilya
fuente
99
La menor cantidad de pensamiento posible;). "Vim, I did a thing. do it here, and here and here and here and here..."
Conrad
44
También puede presionar :y escribir s/^/#para comentar la selección actual.
Hakunin
1
@ Conrad.Dean intenta aprender a pensar en macros . Aunque es prácticamente lo mismo para esta tarea, qqI#<esc>jqentonces @Q@Q@Q@Q@Q@Q(porque es más rápido no soltar la tecla shift), es un hábito que puede extender a tareas mucho más complejas. Empieza pequeño. Practica a menudo. Pronto creará macros muy complejas perfectamente primer intento. Si borra el registro primero qqq, puede incluir @qantes del último qpara obtener la recursividad (pero solo hasta el final del archivo).
Bruno Bronosky
@BrunoBronosky: en lugar de todo eso @q, simplemente puedes hacerlo 6@qo 10000@qsi quieres.
bodo
2
@bodo puedes de hecho. La mayoría de los comandos vim aceptan :h countmultiplicadores. Pero para mí, visualmente cualquier cosa mayor de 6 y tengo que hacerlo a mano porque no puedo adivinarlo de manera confiable. La excepción es que sé que tengo más de 60 filas en mi terminal, así que lo usaré para estimar las reproducciones de marco muy grandes. Como beneficio adicional, voy a sugerir a todos que aprendan sobre :h gnlo que facilita la .repetición en las coincidencias de búsqueda. Ver vimcasts.org/episodes/operating-on-search-matches-using-gn
Bruno Bronosky el
29

Un enfoque alternativo:

Si

  • su estructura YAML tiene campos bien definidos para ser utilizados por su aplicación
  • Y puede agregar libremente campos adicionales que no estropearán su aplicación

entonces

  • en cualquier nivel puede agregar un nuevo campo de texto de bloque llamado "Descripción" o "Comentario" o "Notas" o lo que sea

Ejemplo:

En vez de

# This comment
# is too long

utilizar

Description: >
  This comment
  is too long

o

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

Más ventajas:

  1. Si los comentarios se vuelven grandes y complejos y tienen un patrón repetitivo, puede promoverlos desde bloques de texto sin formato hasta objetos
  2. Su aplicación puede, en el futuro, leer o actualizar esos comentarios
Dimitrios Tsalkakis
fuente
¡Inteligente! Gracias.
Justin Krause
Supongo que esta es la respuesta acertada del grial a la pregunta; especialmente si uno quiere que estos comentarios aparezcan en JSON o XML si se va a transformar de YAML a estos dos.
Mohd
7

Una forma de bloquear comentarios en YAML es mediante el uso de un editor de texto como Notepad ++ para agregar una etiqueta # (comentario) a varias líneas a la vez.

En Notepad ++ puede hacerlo utilizando la opción de clic derecho "Bloquear comentario" para el texto seleccionado.

Woo Images!

Nathan Meyer
fuente
18
Este no es el único camino .
Charlie Egan
Y FWIW, el atajo de teclado para eso (en np ++) sería ctrl-shift-Q (en Windows. Para otras plataformas, vea el menú editar> comentar / descomentar).
charlie arehart
6

Si está utilizando Eclipse con el complemento yedit (un editor para archivos .yaml), puede comentar varias líneas de la siguiente manera:

  1. seleccionando líneas para ser comentadas, y luego
  2. Ctrl+ Shift+C

Y para dejar de comentar, siga los mismos pasos.

Lo mejor está por venir
fuente
5

Para usuarios de Ruby Mine en Windows:

Abrir archivo en el editor Seleccione el bloque y presione Ctrl+ forward slash, habrá seleccionado el bloque que comienza con #.

Ahora, si desea descomentar el bloque comentado, presione la misma combinación de teclas Ctrl+ forward slashnuevamente

Pablo
fuente
1
Eso funciona para todos los IDE de JetBrains, creo. Sé que también funciona para PyCharm :) También funciona en Mac OSX.
Edgar Martinez
5

Emacs tiene comment-dwim (Haz lo que quiero decir): solo selecciona el bloque y haz un:

METRO-;

Es una palanca: úsela para comentar y descomentar bloques.

Si no tiene instalado el modo yaml, deberá decirle a Emacs que use el carácter hash (#).

Lester Cheung
fuente
5

Para los usuarios de Visual Studio Code (VSCode), el atajo para comentar varias líneas es resaltar las líneas que desea comentar y luego presionar:

ctrl + /

Presionar ctrl+ /nuevamente también se puede usar para desactivar los comentarios de una o más líneas seleccionadas.

Mark Wragg
fuente
1

En el navegador Azure Devops (editor de canal yaml),

Ctrl+ K+ CBloque de comentarios

Ctrl+ K+ UBloque sin comentarios

También hay una opción de 'Alternar comentario de bloque' pero esto no funcionó para mí. ingrese la descripción de la imagen aquí

También hay otras formas 'extrañas': haga clic derecho para ver 'Paleta de comandos' o F1

ingrese la descripción de la imagen aquí

Luego elija una opción de cursor. ingrese la descripción de la imagen aquí

Ahora es solo cuestión de #

o incluso más inteligente [ Ctrl+ k] + [ Ctrl+ c]

Nubes azules
fuente