Как вы блокируете комментарии в YAML?

Как мне закомментировать блок строк в YAML?

12 ответов

Решение

YAML поддерживает встроенные комментарии, но не поддерживает блочные комментарии.

Из Википедии:

Комментарии начинаются со знака числа (#), может начинаться в любом месте строки и продолжаться до конца строки

Сравнение с JSON, также из Википедии:

Различия в синтаксисе незначительны и редко возникают на практике: JSON допускает расширенные наборы символов, такие как UTF-32, YAML требует пробел после разделителей, таких как запятая, равно и двоеточие, в то время как JSON этого не делает, а некоторые нестандартные реализации JSON расширяют грамматику до включить Javascript's /* ... */ Комментарии. Обработка таких крайних случаев может потребовать легкой предварительной обработки JSON перед синтаксическим анализом в виде встроенного YAML.

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

Спецификация описывает только один способ маркировки комментариев:

Явный комментарий помечается знаком "#".

Это все. Там нет блочных комментариев.

Не пытаясь быть умным об этом, но если вы используете Sublime Text для своего редактора, выполните следующие шаги:

  1. Выберите блок
  2. CMD + / на Mac или CTRL + / в Linux и Windows
  3. прибыль

Я полагаю, что другие редакторы также имеют подобную функциональность. Какой вы используете? Я был бы рад покопаться.

В Vim вы можете выполнить одно из следующих действий:

  • Комментарий всех строк: :%s/^/#
  • Строки комментариев 10 - 15: :10,15s/^/#
  • Строка комментария 10 к текущей строке: :10,.s/^/#
  • Строка комментария 10 до конца: :10,$s/^/#

или используя визуальный блок:

  1. Выберите многострочный столбец после ввода визуального блока с помощью Ctrl + v.
  2. Нажмите r, затем #, чтобы закомментировать многострочный блок, заменяющий выделение, или Shift + i#Esc, чтобы вставить символы комментария перед выделением.

Альтернативный подход:

Если

  • ваша структура 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. Ваше приложение может - в будущем - прочитать или обновить эти комментарии

Единственный способ заблокировать комментарий в YAML - использовать другое приложение для добавления тега # (comment) к нескольким строкам одновременно. Примером этого является опция "Block Comment", щелкающая правой кнопкой мыши для выделенного текста в Notepad++.

Ву Изображения

Для пользователей кода Visual Studio (VSCode) ярлык, чтобы закомментировать несколько строк, должен выделить строки, которые вы хотите закомментировать, а затем нажать:

Ctrl + /

Повторное нажатие ctrl + / может также использоваться для отключения комментариев для одной или нескольких выбранных строк.

В Emacs есть comment-dwim (Do What I Mean) - просто выберите блок и выполните:

M-;

Это переключатель - используйте его для комментирования и раскомментирования блоков.

Если у вас не установлен yaml-режим, вам нужно указать Emacs использовать хеш-символ (#).

Если вы используете Eclipse с плагином yedit (редактор для файлов.yaml), вы можете закомментировать несколько строк:

  1. выбирая строки для комментариев, а затем
  2. Ctrl + Shift + C

И чтобы оставить комментарий, выполните те же шаги.

Для пользователей Ruby Mine в Windows:

Откройте файл в редакторе. Выберите блок и нажмитеCtrl+косая черта, вы выберете блок, начинающийся с #.

Теперь, если вы хотите откомментировать комментируемый блок, снова нажмите ту же комбинацию клавиш Ctrl+косая черта

В браузере Azure Devops (редактор yaml конвейера)

Ctrl+ K+ C Блок комментариев

Ctrl+ K+ U Раскомментировать блок

Также есть опция "Переключить блокировку комментария", но у меня она не сработала.

Есть и другие "странные" способы: щелкните правой кнопкой мыши, чтобы увидеть "Палитру команд" или F1

Затем выберите вариант курсора.

Теперь это просто вопрос #

или даже умнее [ Ctrl+ k] + [ Ctrl+ c]

В файле .gitlab-ci.yml работает следующее:

Чтобы закомментировать блок (многострочный): выберите всю секцию блока > Ctrl KC

Чтобы раскомментировать уже закомментированный блок (многострочный): Выделите всю секцию блока > Ctrl KU

Другие вопросы по тегам