ลบบรรทัดที่ตรงกับรูปแบบจากบรรทัดที่กำหนดไปยังจุดสิ้นสุดของไฟล์


10

หากฉันมีไฟล์ที่มีความคิดเห็นจำนวนมากอยู่ในนั้นและฉันต้องการลบความคิดเห็นทั้งหมดจากคำพูดบรรทัดที่ 3 ถึงท้ายไฟล์วิธีที่ดีที่สุดในการทำคืออะไร

ฉันติดอยู่เนื่องจากสิ่งที่ฉันพยายามครั้งแรกดูเหมือนจะไม่ทำสิ่งที่ฉันต้องการ:

:3,$/^#/d

แทนที่จะมองหารูปแบบและการลบบรรทัดด้วยในช่วงจาก 3 ถึงจุดสิ้นสุดของไฟล์มันจะลบบรรทัดทั้งหมดจาก 3 ไปจนถึงบรรทัดที่ตรงกับรูปแบบแล้วหยุด

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

คำตอบ:


15

ใช้:globalคำสั่งเพื่อ:

:3,$g/^#/d

คุณสามารถนำไปใช้กับเส้นที่ไม่ตรงกับรูปแบบ:

:3,$g!/^#/d

คุณสามารถใช้กลไกแบบเต็มช่วงได้ (ดู:help :range):

:.,/#define/+3g/^#/d

และคุณสามารถใช้กับคำสั่งใด ๆ :

:3,$g/^#/s/foo/bar/g

มันเป็นหนึ่งในคำสั่งที่ทรงพลังที่สุดใน Vim โปรดดู:help :globalรายละเอียด


คุณสามารถใช้:3,$v/foo/dสำหรับบรรทัดที่ไม่ตรงกับรูปแบบ :h vglobal
vappolinario
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.