Bagaimana Anda memblokir komentar dalam YAML?

1372

Bagaimana cara saya mengomentari satu blok baris dalam YAML?

Thierry Lam
sumber
pertanyaan tidak memiliki indikasi tentang bagaimana melakukannya dengan editor teks tertentu, jadi harap tetap menjawabnya dalam hal aturan sintaks dan kebebasan yaml.
Alexander Stohr

Jawaban:

2007

YAML mendukung komentar sebaris, tetapi tidak mendukung komentar blokir.

Dari Wikipedia :

Komentar dimulai dengan tanda nomor ( #), dapat dimulai di mana saja pada suatu garis, dan berlanjut sampai akhir baris

Perbandingan dengan JSON, juga dari Wikipedia :

Perbedaan sintaksinya halus dan jarang muncul dalam praktiknya: JSON memungkinkan karakter diperluas seperti UTF-32, YAML membutuhkan ruang setelah pemisah seperti koma, sama, dan titik dua sedangkan JSON tidak, dan beberapa implementasi non-standar JSON memperluas tata bahasa ke termasuk /* ... */komentar Javascript . Menangani kasus tepi seperti itu mungkin memerlukan pra-pemrosesan ringan JSON sebelum diuraikan sebagai YAML in-line.

# If you want to write
# a block-commented Haiku
# you'll need three pound signs
Dolph
sumber
49
awesome haiku (5/7/5 syllables)
Scott Pelak
224

The spek hanya menjelaskan salah satu cara untuk menandai komentar:

Komentar eksplisit ditandai oleh indikator "#".

Itu saja. Tidak ada komentar blokir.

Eugene Yarmash
sumber
137

Tidak mencoba untuk menjadi pintar tentang itu, tetapi jika Anda menggunakan Teks Sublime untuk editor Anda, langkah-langkahnya adalah:

  1. Pilih blok
  2. cmd+ /di Mac atau ctrl+ /di Linux & Windows
  3. Keuntungan

Saya membayangkan bahwa editor lain juga memiliki fungsi serupa. Yang mana yang kamu gunakan? Saya akan senang melakukan penggalian.

Kyle Carlson
sumber
8
Bekerja di Atom juga
mndrix
3
Jika Anda berada di Eclipse dengan plugin YEdit, toggler blok-komentar-toggler standar Eclipse dari ctrl- / akan beralih memblokir komentar dalam file yaml.
Matt Gibson
1
beberapa kombinasi bekerja di gerhana> 4,6 dengan dukungan bawaan untuk YAML
Faraz
3
Bekerja di JetBrains IDE: RubyMine and Gogland
Rich Sutton
3
Bekerja di VSCode juga.
Zain Patel
67

Di Vim Anda dapat melakukan salah satu dari yang berikut:

  • Komentar semua baris: :%s/^/#
  • Baris komentar 10 - 15: :10,15s/^/#
  • Baris komentar 10 ke baris saat ini: :10,.s/^/#
  • Baris komentar 10 sampai akhir: :10,$s/^/#

atau menggunakan blok visual:

  1. Pilih kolom beberapa baris setelah memasukkan blok visual via Ctrl+v.
  2. Tekan rdiikuti oleh #untuk mengomentari blok multi-baris menggantikan pilihan, atau Shift+i#Escuntuk memasukkan karakter komentar sebelum seleksi.
diketahuiasilya
sumber
9
sesedikit mungkin pemikiran;). "Vim, I did a thing. do it here, and here and here and here and here..."
Conrad.Dean
4
Anda juga dapat menekan :dan mengetik s/^/#untuk mengomentari pilihan saat ini.
hakunin
1
@ Conrad.Dean mencoba belajar berpikir di makro . Meskipun hampir sama untuk tugas ini, qqI#<esc>jqmaka @Q@Q@Q@Q@Q@Q(karena lebih cepat untuk tidak melepaskan tombol shift), adalah kebiasaan yang dapat Anda lakukan untuk tugas yang jauh lebih kompleks. Mulai dari yang kecil. Sering berlatih. Anda akan segera membuat macro yang sangat kompleks dengan sempurna terlebih dahulu. Jika Anda menghapus register terlebih dahulu qqq, Anda dapat memasukkan @qsebelum yang terakhir quntuk mendapatkan rekursi (tetapi hanya sampai akhir file).
Bruno Bronosky
@ BrunoBronosky: alih-alih semua itu @q, Anda bisa melakukannya 6@qatau 10000@qjika Anda suka.
Bodo
2
@ Bodo Anda memang bisa. Sebagian besar perintah vim menerima :h countpengganda. Tetapi bagi saya, secara visual lebih dari 6 dan saya harus melakukannya karena saya tidak dapat menebaknya dengan andal. Pengecualiannya adalah saya tahu saya memiliki 60+ baris di terminal saya jadi saya akan menggunakannya untuk memperkirakan pemutaran marco yang sangat besar. Sebagai bonus, saya akan menyarankan semua orang belajar tentang :h gnyang membuatnya mudah untuk melakukan .pengulangan pada pertandingan pencarian. Lihat vimcasts.org/episodes/operating-on-search-matches-using-gn
Bruno Bronosky
29

Pendekatan alternatif:

Jika

  • struktur YAML Anda memiliki bidang yang telah ditentukan untuk digunakan oleh aplikasi Anda
  • DAN Anda dapat dengan bebas menambahkan bidang tambahan yang tidak akan mengacaukan aplikasi Anda

kemudian

  • pada tingkat apa pun Anda dapat menambahkan bidang teks blok baru bernama seperti "Deskripsi" atau "Komentar" atau "Catatan" atau apa pun

Contoh:

Dari pada

# This comment
# is too long

menggunakan

Description: >
  This comment
  is too long

atau

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

Lebih banyak keuntungan:

  1. Jika komentar menjadi besar dan kompleks dan memiliki pola berulang, Anda dapat mempromosikannya dari blok teks biasa ke objek
  2. Aplikasi Anda mungkin - di masa depan - membaca atau memperbarui komentar tersebut
Dimitrios Tsalkakis
sumber
Pintar! Terima kasih.
Justin Krause
Saya kira ini adalah jawaban holly grail untuk pertanyaan itu; terutama jika seseorang ingin komentar ini muncul dalam JSON atau XML jika seseorang ingin mengubah dari YAML ke dua.
Mohd
7

Salah satu cara untuk memblokir komentar dalam YAML adalah dengan menggunakan editor teks seperti Notepad ++ untuk menambahkan tag # (komentar) ke beberapa baris sekaligus.

Di Notepad ++ Anda dapat melakukannya dengan menggunakan opsi klik kanan "Blokir Komentar" untuk teks yang dipilih.

Woo Images!

Nathan Meyer
sumber
18
Ini bukan satu - satunya cara .
Charlie Egan
Dan FWIW, pintasan keyboard untuk itu (dalam np ++) adalah ctrl-shift-Q (di windows. Untuk platform lain, lihat menu edit> comment / uncomment).
charlie arehart
6

Jika Anda menggunakan Eclipse dengan plugin yedit (editor untuk file .yaml), Anda dapat mengomentari banyak baris dengan:

  1. memilih baris untuk dikomentari, dan kemudian
  2. Ctrl+ Shift+C

Dan untuk berhenti berkomentar, ikuti langkah yang sama.

theBestIsYetToCome
sumber
5

Untuk pengguna Ruby Mine di Windows:

Buka file di editor Pilih blok dan tekan Ctrl+ forward slash, Anda akan memilih blok yang dimulai dengan #.

Sekarang jika Anda ingin mengomentari blok komentar, tekan lagi kombinasi tombol yang sama Ctrl+forward slash

paul
sumber
1
Itu bekerja untuk semua JetBrains IDE, menurut saya. Saya tahu ini berfungsi untuk PyCharm juga :) Bekerja di Mac OSX juga.
Edgar Martinez
5

Emacs memiliki comment-dwim (Do What I Mean) - cukup pilih blok dan lakukan:

M-;

Ini toggle - gunakan untuk berkomentar DAN batalkan komentar pada blok.

Jika Anda belum menginstal mode yaml, Anda harus memberi tahu Emacs untuk menggunakan karakter hash (#).

Lester Cheung
sumber
5

Untuk pengguna Visual Studio Code (VSCode), pintasan untuk mengomentari banyak baris adalah dengan menyoroti baris yang ingin Anda komentari dan kemudian tekan:

ctrl + /

Menekan ctrl+ /lagi juga dapat digunakan untuk menonaktifkan komentar untuk satu atau beberapa baris yang dipilih.

Tandai Wragg
sumber
1

Di browser Azure Devops (editor saluran pipa),

Ctrl+ K+C Blok Komentar

Ctrl+ K+U Blok Uncomment

Ada juga opsi 'Toggle Block Comment' tetapi ini tidak berhasil untuk saya. masukkan deskripsi gambar di sini

Ada cara lain 'aneh' juga: klik kanan untuk melihat 'Command Palette' atau F1

masukkan deskripsi gambar di sini

Kemudian pilih opsi kursor. masukkan deskripsi gambar di sini

Sekarang tinggal masalah #

atau bahkan lebih pintar [ Ctrl+ k] + [ Ctrl+ c]

Awan Biru
sumber