Як ви блокуєте коментарі в YAML?


1372

Як я коментую блок рядків у YAML?


питання не вказує на те, як це зробити з певним текстовим редактором, тому, будь ласка, дотримуйтесь відповіді на нього з точки зору правил і свобод синтаксису yaml.
Олександр Стор

Відповіді:


2005

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

49
дивовижний хайку (5/7/5 складів)
Скотт

224

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

Явний коментар позначений індикатором "#".

Це все. Немає коментарів щодо блоку.


137

Не намагайтесь бути розумним до цього, але якщо ви використовуєте Sublime Text для свого редактора, такі дії:

  1. Виберіть блок
  2. cmd+ /на Mac або ctrl+ /в Linux та Windows
  3. Прибуток

Я б міг уявити, що й інші редактори мають подібну функціональність. Який ви використовуєте? Я був би радий викопати копання.


8
Працює і в Атомі
mndrix

3
Якщо ви знаходитесь у Eclipse із плагіном YEdit, стандартний блок Eclipse-коментар-перемикач ctrl- / перемикає блокові коментарі у файлах yaml.
Метт Гібсон

1
деяка комбінація працює в затемненні> 4.6 із вбудованою підтримкою YAML
Faraz

3
Працює в IDE JetBrains: RubyMine and Gogland
Rich Sutton

3
Працює і в VSCode.
Zain Patel

67

У Vim ви можете виконати одну з наступних дій:

  • Прокоментувати всі рядки: :%s/^/#
  • Рядки коментарів 10 - 15: :10,15s/^/#
  • Рядок коментування 10 до поточного рядка: :10,.s/^/#
  • Рядок коментарів 10 до кінця: :10,$s/^/#

або за допомогою візуального блоку:

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

8
мінімально можлива кількість мислення;). "Vim, I did a thing. do it here, and here and here and here and here..."
Conrad.Dean

4
Ви також можете натиснути :та набрати, s/^/#щоб коментувати поточний вибір.
хакунін

1
@ Conrad.Dean намагайся навчитися думати в макросах . Хоча практично те ж саме для цього завдання, qqI#<esc>jqто @Q@Q@Q@Q@Q@Q(бо це швидше , щоб не відпускати клавішу зміни), звичка ви можете розширити до більш складних завдань. Почніть з малого. Тренуйтеся часто. Незабаром ви спершу спробуєте створити дуже складні макроси. Якщо ви очистите реєстр спочатку qqq, його можна включити @qдо останнього, qщоб отримати рекурсію (але лише до кінця файлу).
Бруно Броноський

@BrunoBronosky: замість усіх тих @q, що ви можете, ви можете просто зробити 6@qабо 10000@qякщо вам подобається.
BODO

2
@bodo ви дійсно можете. Більшість команд vim приймає :h countмножники. Але для мене візуально все, що перевищує 6 років, і я повинен це зробити вручну, тому що я не можу достовірно здогадатися. Винятком є ​​те, що я знаю, що у мене на терміналі 60+ рядків, і я буду використовувати це для оцінки дуже великих відтворень marco. Як бонус я запропоную всім дізнатися про :h gnте, що полегшує .повторення в пошукових матчах. Дивіться vimcasts.org/episodes/operating-on-search-matches-using-gn
Бруно Броноскі,

29

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

Якщо

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

Розумний! Дякую.
Джастін Краузе

Я здогадуюсь, це відповідь холі-грааля на питання; особливо, якщо хочеться, щоб ці коментарі з'являлися в JSON або XML, якщо потрібно перетворити з YAML на ці два.
Мохд

7

Один із способів блокувати коментування в YAML - за допомогою текстового редактора, наприклад Notepad ++, щоб додати тег # (коментар) до декількох рядків одночасно.

У Блокноті ++ ви можете це зробити, використовуючи опцію "Блокувати коментар" правою кнопкою миші для вибраного тексту.

Woo зображення!


18
Це не єдиний спосіб .
Чарлі Еган

І FWIW, комбінація клавіш для цього (в np ++) буде ctrl-shift-Q (для Windows. Для інших платформ див. Меню редагування> коментар / коментар).
charlie arehart

6

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

  1. вибір рядків для коментування, а потім
  2. Ctrl+ Shift+C

І щоб не коментувати, виконайте ті ж самі кроки.


5

Для користувачів Ruby Mine в Windows:

Відкрити файл у редакторі Виберіть блок і натисніть Ctrl+ forward slash, ви вибрали блок, починаючи з #.

Тепер, якщо ви хочете відмінити коментар від коментованого блоку, натисніть цю ж комбінацію клавіш Ctrl+ forward slashще раз


1
Це працює для всіх JetBrains IDE, я думаю. Я знаю, що він працює і для PyCharm :) Працює і на Mac OSX.
Едгар Мартінес

5

У Emacs є коментар-dwim (Do What I mean) - просто виберіть блок і зробіть:

М-;

Це перемикач - використовуйте його для коментування та блокування коментарів.

Якщо у вас не встановлений режим yaml, вам потрібно буде сказати Emacs використовувати хеш-символ (#).


5

Для користувачів Visual Studio Code (VSCode) ярлик для коментування кількох рядків - це виділення ліній, які ви хочете коментувати, а потім натисніть:

ctrl + /

Повторне натискання ctrl+ /також можна використовувати для вимкнення коментарів для однієї або декількох вибраних рядків.


1

У браузері Azure Devops (редактор конвеєрних ямлів),

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

Ctrl+ K+ UБлок без коментарів

Існує також варіант "Коментувати блокування коментарів", але це не спрацювало для мене. введіть тут опис зображення

Є й інші "wierd" способи: клацніть правою кнопкою миші, щоб побачити "Палітра команд" або F1

введіть тут опис зображення

Потім виберіть варіант курсору. введіть тут опис зображення

Тепер це лише питання #

або навіть розумніші [ Ctrl+ k] + [ Ctrl+ c]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.