คุณจะปิดกั้นความคิดเห็นใน YAML ได้อย่างไร


1372

ฉันจะแสดงความคิดเห็นบล็อกของบรรทัดใน YAML ได้อย่างไร


คำถามไม่มีข้อบ่งชี้ว่าจะทำอย่างไรกับโปรแกรมแก้ไขข้อความบางตัวดังนั้นโปรดติดตอบในแง่ของกฎไวยากรณ์ yaml และเสรีภาพ
Alexander Stohr

คำตอบ:


2006

YAML สนับสนุนความคิดเห็นแบบอินไลน์ แต่ไม่รองรับความคิดเห็นแบบบล็อก

จากWikipedia :

ความคิดเห็นเริ่มต้นด้วยเครื่องหมายหมายเลข ( #) สามารถเริ่มที่ใดก็ได้ในบรรทัดและดำเนินการต่อไปจนถึงจุดสิ้นสุดของบรรทัด

การเปรียบเทียบกับ JSON จากWikipedia :

ความแตกต่างทางไวยากรณ์นั้นบอบบางและไม่ค่อยเกิดขึ้นในทางปฏิบัติ: JSON อนุญาตให้มีชุดอักขระเพิ่มเติมเช่น UTF-32, YAML ต้องการช่องว่างหลังจากตัวคั่นเช่นเครื่องหมายจุลภาค, เท่ากับ, และโคลอนในขณะที่ JSON ไม่ใช้และการใช้งานที่ไม่ได้มาตรฐาน รวม/* ... */ความคิดเห็นของ Javascript การจัดการเคสขอบดังกล่าวอาจต้องใช้การประมวลผลล่วงหน้าของ JSON แบบเบาก่อนที่จะแยกวิเคราะห์เป็น YAML ในบรรทัด

# If you want to write
# a block-commented Haiku
# you'll need three pound signs

49
ไฮกุที่น่ากลัว (5/7/5 พยางค์)
Scott Pelak

224

ข้อมูลจำเพาะเพียงอธิบายวิธีหนึ่งในการทำเครื่องหมายความคิดเห็น:

ความคิดเห็นที่ชัดเจนถูกทำเครื่องหมายด้วยตัวบ่งชี้“ #”

นั่นคือทั้งหมดที่ ไม่มีความคิดเห็นบล็อก


137

ไม่พยายามฉลาดเกี่ยวกับเรื่องนี้ แต่ถ้าคุณใช้ Sublime Text สำหรับบรรณาธิการของคุณขั้นตอนคือ:

  1. เลือกบล็อก
  2. cmd+ /บน Mac หรือctrl+ /บน Linux และ Windows
  3. กำไร

ฉันคิดว่าตัวแก้ไขอื่น ๆ มีฟังก์ชันการทำงานที่คล้ายกัน คุณใช้อันไหน ฉันยินดีที่จะขุด


8
ทำงานใน Atom ด้วย
mndrix

3
หากคุณอยู่ใน Eclipse ด้วยปลั๊กอิน YEdit Eclipse block-comment-toggler มาตรฐานของ ctrl- / จะสลับบล็อกความคิดเห็นในไฟล์ yaml
Matt Gibson

1
ชุดค่าผสมบางตัวทำงานใน eclipse> 4.6 พร้อมการสนับสนุน YAML
Faraz

3
ทำงานใน JetBrains IDEs: RubyMine และ Gogland
Rich Sutton

3
ทำงานใน VSCode ด้วย
Zain Patel

67

ในกลุ่มคุณสามารถทำอย่างใดอย่างหนึ่งต่อไปนี้:

  • แสดงความคิดเห็นทุกบรรทัด: :%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/^/#เพื่อแสดงความคิดเห็นการเลือกปัจจุบัน
hakunin

1
@ Conrad.Dean พยายามที่จะเรียนรู้ที่จะคิดว่าในแมโคร แม้ว่าจะเหมือนกันสำหรับงานนี้จริง ๆqqI#<esc>jqแล้ว@Q@Q@Q@Q@Q@Q(เพราะเร็วกว่าที่จะไม่ปล่อยปุ่ม Shift) เป็นนิสัยที่คุณสามารถขยายไปสู่งานที่ซับซ้อนมากขึ้น เริ่มต้นเล็ก ๆ ฝึกฝนบ่อยๆ ในไม่ช้าคุณจะสร้างมาโครที่ซับซ้อนมาก ๆ ให้ลองก่อน หากคุณล้างการลงทะเบียนก่อนqqqคุณสามารถรวม@qก่อนที่qจะได้รับการสอบถามซ้ำ (แต่จะอยู่ที่ท้ายไฟล์)
Bruno Bronosky

@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
Bruno Bronosky

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. แอปของคุณอาจเป็นในอนาคตอ่านหรืออัปเดตความคิดเห็นเหล่านั้น

ฉลาด! ขอบคุณ.
Justin Krause

ฉันเดาว่านี่เป็นคำตอบสำหรับคำถามที่ศักดิ์สิทธิ์ โดยเฉพาะอย่างยิ่งหากต้องการให้ความคิดเห็นเหล่านี้ปรากฏใน JSON หรือ XML หากต้องการเปลี่ยนจาก YAML เป็นสองสิ่งนี้
Mohd

7

วิธีหนึ่งในการบล็อกความคิดเห็นใน YAML คือการใช้โปรแกรมแก้ไขข้อความเช่น Notepad ++ เพื่อเพิ่มแท็ก # (ความคิดเห็น) ในหลาย ๆ บรรทัดพร้อมกัน

ใน Notepad ++ คุณสามารถทำได้โดยใช้ตัวเลือก "บล็อกความคิดเห็น" คลิกขวาสำหรับข้อความที่เลือก

จีบรูปภาพ!


18
นี้ไม่ได้เป็นเพียงวิธีเดียว
Charlie Egan

และ FWIW แป้นพิมพ์ลัดสำหรับนั้น (ใน np ++) จะเป็น ctrl-shift-Q (บน windows สำหรับแพลตฟอร์มอื่น ๆ ให้ดูเมนูแก้ไข> ข้อคิดเห็น / uncomment)
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 ได้เช่นกัน
Edgar Martinez

5

Emacs มี comment-dwim (ทำในสิ่งที่ฉันหมายถึง) - เพียงแค่เลือกบล็อกและทำ:

M-;

มันเป็นสลับ - ใช้เพื่อแสดงความคิดเห็นและยกเลิกการใส่ข้อคิดเห็นบล็อก

หากคุณไม่ได้ติดตั้งโหมด yaml คุณจะต้องแจ้งให้ Emacs ใช้อักขระแฮช (#)


5

สำหรับผู้ใช้ Visual Studio Code (VSCode) ทางลัดในการคอมเม้นต์หลายบรรทัดคือการเน้นบรรทัดที่คุณต้องการคอมเม้นต์แล้วกด:

ctrl + /

การกดctrl+ /อีกครั้งสามารถใช้เพื่อสลับความคิดเห็นสำหรับหนึ่งบรรทัดที่เลือกหรือมากกว่า


1

ในเบราว์เซอร์ Azure Devops (ไปป์ไลน์ yaml editor)

Ctrl+ K+ Cบล็อกความคิดเห็น

Ctrl+ K+ UUncomment Block

นอกจากนี้ยังมีตัวเลือก 'สลับบล็อกความคิดเห็น' แต่สิ่งนี้ไม่ได้ผลสำหรับฉัน ป้อนคำอธิบายรูปภาพที่นี่

มีวิธี 'แปลก' อื่น ๆ เช่นกัน: คลิกขวาเพื่อดู 'Command Palette' หรือ F1

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นเลือกตัวเลือกเคอร์เซอร์ ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้มันเป็นเพียงเรื่องของ #

หรือแม้กระทั่งอย่างชาญฉลาด [ Ctrl+ k] + [ Ctrl+ c]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.