Как прокомментировать блок строк в YAML?
Как вы блокируете комментарии в YAML?
Ответы (12)
YAML поддерживает встроенные комментарии, но не поддерживает блочные комментарии.
Из Википедии:
Комментарии начинаются со знака числа (
#
), могут начинаться в любом месте строки и продолжаться до конца строки.
Сравнение с JSON, также из Википедии:
Различия в синтаксисе тонкие и редко возникают на практике: JSON допускает расширенные наборы символов, такие как UTF-32, YAML требует пробела после разделителей, таких как запятая, равно и двоеточие, в то время как JSON этого не делает, а некоторые нестандартные реализации JSON расширяют грамматику до включать
/* ... */
комментарии Javascript. Обработка таких крайних случаев может потребовать легкой предварительной обработки JSON перед синтаксическим анализом как встроенного YAML.
# If you want to write
# a block-commented Haiku
# you'll need three pound signs
spec описывает только один способ пометки комментариев:
Явный комментарий отмечен знаком «#».
Это все. Комментариев к блоку нет.
Не пытаюсь быть умным, но если вы используете Sublime Text для своего редактора, шаги следующие:
- Выберите блок
- cmd + / на Mac или ctrl + / в Linux и Windows
- Выгода
Я предполагаю, что другие редакторы тоже имеют аналогичную функциональность. Какой вы используете? Я был бы счастлив покопаться.
В Vim вы можете сделать одно из следующего:
- Прокомментируйте все строки:
:%s/^/#
- Строки комментариев 10–15:
:10,15s/^/#
- Строка комментария 10 к текущей строке:
:10,.s/^/#
- Строка комментария 10 до конца:
:10,$s/^/#
или используя визуальный блок:
- После ввода визуального блока с помощью Ctrl + v выберите многострочный столбец.
- Нажмите r, а затем #, чтобы закомментировать многострочный блок, заменяющий выделение, или Shift + i # Esc, чтобы вставить символы комментария перед выделением.
"Vim, I did a thing. do it here, and here and here and here and here..."
- person Conrad.Dean; 14.07.2014
:
и ввести s/^/#
, чтобы прокомментировать текущий выбор.
- person hakunin; 28.03.2015
qqI#<esc>jq
, затем @Q@Q@Q@Q@Q@Q
(потому что быстрее не отпускать клавишу Shift), это привычка, которую вы можете распространить на гораздо более сложные задачи. Начни с малого. Часто тренируйтесь. Вскоре вы будете идеально создавать очень сложные макросы с первой попытки. Если вы очистите регистр первым qqq
, вы можете включить @q
перед последним q
, чтобы получить рекурсию (но только до конца файла).
- person Bruno Bronosky; 17.11.2017
@q
, вы можете просто сделать 6@q
или 10000@q
, если хотите.
- person bodo; 26.04.2018
:h count
. Но для меня визуально все больше 6, и я должен делать это вручную, потому что я не могу достоверно угадать это. Исключением является то, что я знаю, что у меня на моем терминале более 60 строк, поэтому я буду использовать это для оценки очень больших воспроизведений Marco. В качестве бонуса я предлагаю всем узнать о :h gn
, которые упрощают .
повторение результатов поиска. См. vimcasts.org/episodes/operating-on-search-matches- using-gn
- person Bruno Bronosky; 26.04.2018
Альтернативный подход:
If
- ваша структура YAML имеет четко определенные поля, которые будут использоваться вашим приложением
- И вы можете свободно добавлять дополнительные поля, которые не испортят ваше приложение
тогда
- на любом уровне вы можете добавить новое текстовое поле блока с названием «Описание», «Комментарий», «Примечания» или что-то еще.
Пример:
Вместо того
# This comment
# is too long
использовать
Description: >
This comment
is too long
or
Comment: >
This comment is also too long
and newlines survive from parsing!
Дополнительные преимущества:
- Если комментарии становятся большими и сложными и имеют повторяющийся узор, вы можете преобразовать их из текстовых блоков в объекты.
- Ваше приложение может в будущем прочитать или обновить эти комментарии
var comment = 'this code does stuff'
- person mTvare; 10.02.2021
Один из способов заблокировать комментирование в YAML - использовать текстовый редактор, например Notepad ++, чтобы добавить тег # (комментарий) сразу к нескольким строкам.
В Notepad ++ это можно сделать, щелкнув правой кнопкой мыши параметр «Заблокировать комментарий» для выделенного текста.
В Emacs есть comment-dwim (Делайте то, что я имею в виду) - просто выберите блок и выполните:
M-;
Это переключатель - используйте его, чтобы комментировать И раскомментировать блоки.
Если у вас не установлен yaml-mode, вам нужно будет указать Emacs использовать символ решетки (#).
Если вы используете Eclipse с плагином yedit (редактор для файлов .yaml), вы можете закомментировать несколько строк:
- выбор строк для комментирования, а затем
- Ctrl + Shift + C
Чтобы отменить комментарий, выполните те же действия.
Для пользователей Visual Studio Code (VSCode) ярлык для комментирования нескольких строк состоит в том, чтобы выделить строки, которые вы хотите прокомментировать, и затем нажать:
ctrl + /
Повторное нажатие ctrl + / также можно использовать для отключения комментариев для одной или нескольких выбранных строк.
Для пользователей Ruby Mine в Windows:
Открыть файл в редакторе. Выберите блок и нажмите Ctrl + косую черту, у вас будет выбран блок, начинающийся с #.
Теперь, если вы хотите не комментировать прокомментированный блок, снова нажмите ту же комбинацию клавиш Ctrl + косая черта.
В браузере Azure Devops (редактор yaml конвейера)
Ctrl + K + C Блок комментариев
Ctrl + K + U Раскомментировать блок
Также есть опция «Переключить блокировку комментариев», но у меня она не сработала.
Есть и другие "странные" способы: щелкните правой кнопкой мыши, чтобы увидеть "Командную палитру" или F1
Затем выберите вариант курсора.
Теперь осталось всего лишь #
или даже умнее [Ctrl + k] + [Ctrl + c]
В файле .gitlab-ci.yml следующие работы:
Чтобы закомментировать блок (многострочный): выделите всю секцию блока ›Ctrl K C
Чтобы раскомментировать уже закомментированный блок (многострочный): выделите весь раздел блока ›Ctrl K U