Jak blokujesz komentarze w YAML?

1372

Jak skomentować blok wierszy w YAML?

Thierry Lam
źródło
pytanie nie ma wskazówek, jak to zrobić za pomocą określonego edytora tekstów, dlatego prosimy o udzielenie odpowiedzi w zakresie reguł i wolności składni yaml.
Alexander Stohr,

Odpowiedzi:

2005

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

Z Wikipedii :

Komentarze zaczynają się od znaku liczbowego ( #), mogą zaczynać się w dowolnym miejscu wiersza i kontynuować do końca wiersza

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

Różnice w składni są subtelne i rzadko pojawiają się w praktyce: JSON dopuszcza rozszerzone zestawy znaków, takie jak UTF-32, YAML wymaga spacji po separatorach, takich jak przecinek, znak równości i dwukropek, podczas gdy JSON nie, a niektóre niestandardowe implementacje JSON rozszerzają gramatykę na dołącz /* ... */komentarze Javascript . Obsługa takich przypadków na krawędziach może wymagać wstępnego przetworzenia JSON przed parsowaniem jako wbudowanego YAML.

# If you want to write
# a block-commented Haiku
# you'll need three pound signs
Dolph
źródło
49
niesamowite haiku (sylaby 5/7/5)
Scott Pelak
224

Specyfikacja opisuje tylko jeden sposób znakowania komentarzy:

Wyraźny komentarz jest oznaczony wskaźnikiem „#”.

To wszystko. Brak komentarzy blokowych.

Eugene Yarmash
źródło
137

Nie próbujesz być mądry, ale jeśli używasz Sublime Text w swoim edytorze, kroki są następujące:

  1. Wybierz blok
  2. cmd+ /na Mac lub ctrl+ /na Linux i Windows
  3. Zysk

Wyobrażam sobie, że inne edytory również mają podobną funkcjonalność. Z którego korzystasz? Byłbym szczęśliwy, mogąc trochę kopać.

Kyle Carlson
źródło
8
Działa również w Atomie
mndrix
3
Jeśli korzystasz z Eclipse z wtyczką YEdit, standardowy przełącznik blokowania komentarzy Eclipse ctrl- / przełączy komentarze blokowe w plikach yaml.
Matt Gibson,
1
niektóre kombinacje działają w środowisku Eclipse> 4.6 z wbudowaną obsługą YAML
Faraz,
3
Działa w JetBrains IDE: RubyMine i Gogland
Rich Sutton
3
Działa również w VSCode.
Zain Patel
67

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

  • Skomentuj wszystkie linie: :%s/^/#
  • Linie komentarza 10–15: :10,15s/^/#
  • Linia komentarza 10 do bieżącej linii: :10,.s/^/#
  • Linia komentarza 10 do końca: :10,$s/^/#

lub używając bloku wizualnego:

  1. Wybierz kolumnę z wieloma wierszami po wprowadzeniu bloku wizualnego za pomocą Ctrl+v.
  2. Naciśnij, ra następnie, #aby skomentować blok wielowierszowy zastępujący wybór lub Shift+i#Escwstawić znaki komentarza przed wyborem.
znane
źródło
8
najmniejsze możliwe myślenie;). "Vim, I did a thing. do it here, and here and here and here and here..."
Conrad.Dean
4
Możesz także nacisnąć :i wpisać, s/^/#aby skomentować bieżący wybór.
hakunin
1
@ Conrad.Dean spróbuj nauczyć się myśleć w makrach . Chociaż praktycznie to samo w przypadku tego zadania, qqI#<esc>jqto @Q@Q@Q@Q@Q@Q(ponieważ szybciej nie można zwolnić klawisza Shift), jest to nawyk, który można rozszerzyć na znacznie bardziej złożone zadania. Zacznij od małego. Ćwicz często. Wkrótce stworzysz bardzo złożone makra idealnie, najpierw spróbuj. Jeśli wyczyścisz rejestr jako pierwszy qqq, możesz dołączyć @qprzed ostatnim, qaby uzyskać rekursję (ale tylko do końca pliku).
Bruno Bronosky,
@BrunoBronosky: zamiast tych wszystkich @q, możesz po prostu zrobić 6@qlub 10000@qjeśli chcesz.
Bod
2
@ Bodo możesz rzeczywiście. Większość poleceń vima akceptuje :h countmnożniki. Ale dla mnie wizualnie wszystko powyżej 6 lat i muszę to zrobić ręcznie, ponieważ nie mogę wiarygodnie zgadnąć. Wyjątkiem jest to, że wiem, że mam ponad 60 wierszy na moim terminalu, więc użyję tego do oszacowania bardzo dużych odtworzeń marco. Jako bonus proponuję wszystkim dowiedzieć się, :h gnktóre z nich ułatwiają .powtarzanie wyników wyszukiwania. Zobacz vimcasts.org/episodes/operating-on-search-matches-using-gn
Bruno Bronosky
29

Alternatywne podejście:

Gdyby

  • Twoja struktura YAML ma dobrze zdefiniowane pola do użycia przez Twoją aplikację
  • ORAZ możesz swobodnie dodawać dodatkowe pola, które nie zepsują Twojej aplikacji

następnie

  • na dowolnym poziomie możesz dodać nowe pole tekstowe bloku o nazwie „Opis” lub „Komentarz” lub „Notatki” lub cokolwiek innego

Przykład:

Zamiast

# This comment
# is too long

posługiwać się

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 z bloków zwykłego tekstu do obiektów
  2. Twoja aplikacja może - w przyszłości - czytać lub aktualizować te komentarze
Dimitrios Tsalkakis
źródło
Mądry! Dziękuję Ci.
Justin Krause,
Myślę, że to odpowiedź świętego Graala na pytanie; szczególnie jeśli ktoś chce, aby te komentarze pojawiały się w JSON lub XML, jeśli chce się przekształcić z YAML w te dwa.
Mohd
7

Jednym ze sposobów blokowania komentowania w YAML jest użycie edytora tekstu, takiego jak Notepad ++, aby dodać znacznik # (komentarz) do wielu wierszy jednocześnie.

W Notepad ++ możesz to zrobić za pomocą opcji „Blokuj komentarz” prawym przyciskiem myszy dla zaznaczonego tekstu.

Woo Images!

Nathan Meyer
źródło
18
To nie jedyny sposób .
Charlie Egan,
I FWIW, skrótem klawiszowym do tego (w np. ++) byłby ctrl-shift-Q (w systemie Windows. W przypadku innych platform zobacz menu edycji> komentuj / usuwaj komentarze).
charlie arehart
6

Jeśli używasz Eclipse z wtyczką yedit (edytor plików .yaml), możesz skomentować wiele wierszy poprzez:

  1. wybieranie linii do skomentowania, a następnie
  2. Ctrl+ Shift+C

Aby anulować komentarz, wykonaj te same kroki.

theBestIsYetToCome
źródło
5

Dla użytkowników Ruby Mine w systemie Windows:

Otwórz plik w edytorze Wybierz blok i naciśnij Ctrl+ forward slash, wybierzesz blok zaczynający się od #.

Teraz, jeśli chcesz, aby cofnąć komentarzu komentowanym blok, połączenie naciśnij ten sam przycisk Ctrl+ forward slashponownie

Paweł
źródło
1
Myślę, że to działa dla wszystkich IDE JetBrain. Wiem, że to działa również w PyCharm :) Działa również w systemie Mac OSX.
Edgar Martinez
5

Emacs ma komentarz-dwim (Rób co mam na myśli) - po prostu zaznacz blok i wykonaj:

M-;

Jest to przełącznik - użyj go do komentowania ORAZ odkomentowania bloków.

Jeśli nie masz zainstalowanego trybu yaml, musisz powiedzieć Emacsowi, aby użył znaku krzyżyka (#).

Lester Cheung
źródło
5

Dla użytkowników Visual Studio Code (VSCode) skrót do komentowania wielu linii polega na zaznaczeniu linii, które chcesz skomentować, a następnie naciśnij:

ctrl + /

Ponowne naciśnięcie ctrl+ /może również służyć do wyłączania komentarzy dla jednego lub więcej wybranych wierszy.

Mark Wragg
źródło
1

W przeglądarce Azure Devops (edytor yaml potoku)

Ctrl+ K+ CBlok komentarzy

Ctrl+ K+ UUncomment Block

Istnieje również opcja „Przełącz blokowanie komentarza”, ale to nie działało dla mnie. wprowadź opis zdjęcia tutaj

Są też inne „dziwne” sposoby: kliknij prawym przyciskiem myszy, aby wyświetlić „Paletę poleceń” lub F1

wprowadź opis zdjęcia tutaj

Następnie wybierz opcję kursora. wprowadź opis zdjęcia tutaj

Teraz to tylko kwestia #

a nawet mądrzejszy [ Ctrl+ k] + [ Ctrl+ c]

Niebieskie chmury
źródło