Jak zablokować komentarze w YAML?

Jak skomentować blok wierszy w YAML?

 1010
Author: Peter Mortensen, 2010-02-17

9 answers

YAML obsługuje komentarze inline, ale nie obsługuje komentarzy blokowych.

From Wikipedia :

Komentarze zaczynają się od znaku liczby (#), mogą zaczynać się w dowolnym miejscu linii i trwać do końca linii

Porównanie z JSON, również z Wikipedii :

Różnice w składni są subtelne i rzadko pojawiają się w praktyce: JSON pozwala na rozszerzone zestawy znaków, takie jak UTF-32, YAML wymaga spacji po separatorach, takich jak przecinki, równe i dwukropki, podczas gdy JSON nie, a niektóre niestandardowe implementacje JSON rozszerzają gramatykę o komentarze Javascript /* ... */. Obsługa takich przypadków brzegowych może wymagać lekkiego wstępnego przetwarzania JSON przed parsowaniem jako IN-line YAML.

# If you want to write
# a block-commented Haiku
# you'll need three pound signs
 1541
Author: Dolph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-18 00:15:10

Spec opisuje tylko jeden sposób oznaczania komentarzy:

Komentarz jawny jest oznaczany wskaźnikiem"#".

To wszystko. Nie ma komentarzy blokowych.

 155
Author: Eugene Yarmash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-21 17:51:18

Nie staram się być mądry, ale jeśli używasz Sublime Text dla swojego edytora, kroki są następujące:

  1. Wybierz blok
  2. CMD + / na Macu lub CTRL + / na Linuksie i Windows
  3. zysk

Wyobrażam sobie, że inne edytory też mają podobną funkcjonalność. Którego używasz? Chętnie poszperam.

 86
Author: Kyle Carlson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-07 11:53:28

W Vimie możesz wykonać jedną z następujących czynności:

  • Skomentuj wszystkie wiersze: :%s/^/#
  • Skomentuj wiersze 10 - 15: :10,15s/^/#
  • komentarz linii 10 do bieżącej linii: :10,.s/^/#
  • komentarz linii 10 do końca: :10,$s/^/#

Lub za pomocą wizualnego bloku:

  1. Wybierz wielowierszową kolumnę po wprowadzeniu wizualnego bloku za pomocą Ctrl + v.
  2. Naciśnij r następnie # aby skomentować wielowierszowy blok zastępujący zaznaczenie, lub Shift + i#Esc aby wstawić znaki komentarza przed zaznaczeniem.
 50
Author: knownasilya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-06 20:07:00

Jeśli używasz Eclipse z wtyczką yedit (edytor dla .pliki yaml), możesz komentować wiele linii przez:

  1. wybór linii do komentowania, a następnie
  2. Ctrl + Shift + C

I aby anulować komentarz, wykonaj te same kroki.

 6
Author: theBestIsYetToCome,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-13 14:46:42

Emacs ma komentarz-dwim (Do What I Mean) - wystarczy wybrać Blok i zrobić:

M -;

To przełącznik-używaj go do komentowania i odkomentowania bloków.

Jeśli nie masz zainstalowanego yaml-mode, musisz powiedzieć Emacsowi, aby używał znaku skrótu (#).

 5
Author: Lester Cheung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-18 13:13:41

Podejście alternatywne:

If

  • twoja struktura YAML ma dobrze zdefiniowane pola do wykorzystania przez Twoją aplikację
  • i możesz dowolnie dodawać dodatkowe pola, które nie zepsują Twojej aplikacji

Then

  • na dowolnym poziomie możesz dodać nowe pole tekstowe o nazwie "opis" lub "komentarz" lub "notatki" lub cokolwiek

Przykład:

Zamiast z

# This comment
# is too long

Użyj

Description: >
  This comment
  is too long

Lub

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

Więcej zalet:

  1. jeśli komentarze stają się duże i złożone i mają powtarzający się Wzorzec, Możesz promować je od bloków zwykłego tekstu do obiektów
  2. Twoja aplikacja może - w przyszłości-czytać lub aktualizować te komentarze
 5
Author: Dimitrios Tsalkakis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-26 07:45:39

Dla użytkowników Ruby Mine Na Windows:

Otwórz plik w edytorze Wybierz blok i naciśnij Ctrl+ukośnik do przodu , zostanie wybrany blok zaczynający się od #.

Teraz jeśli chcesz anulować komentarz komentowanego bloku, naciśnij tę samą kombinację klawiszy Ctrl+forward slash again

 4
Author: paul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-25 18:13:50

Jedynym sposobem zablokowania komentarza w YAML jest użycie innej aplikacji do dodania znacznika # (comment) do wielu linii naraz. Przykładem tego jest opcja" Zablokuj komentarz " dla zaznaczonego tekstu w Notepad++.

Woo Images!

 1
Author: Nathan Meyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-04 00:10:02