วิธีการแทนที่ในหลายบรรทัด?


10

ฉันต้องการแทรกคำในหลายบรรทัดมีคำสั่งใด ๆ ไหม

:[2,3,5,7,11]s/^/word\ /g

ซึ่งจะแทรกwordที่จุดเริ่มต้นของบรรทัด 2, 3 บรรทัด, 5 บรรทัด, 7 และ 11

ที่นี่มีหลายบรรทัดไม่ต่อเนื่องกัน

คำตอบ:


16

การทำการทดแทนหลายบรรทัดติดต่อกันนั้นค่อนข้างง่าย:

:2,11s/^/word /

แต่ช่วงไม่สามารถครอบคลุมบรรทัดที่ไม่ต่อเนื่องกันได้

ด้วยความคิดสร้างสรรค์เล็กน้อยมันเป็นไปได้ที่จะหลีกเลี่ยง "ข้อ จำกัด " นั้น

อันที่จริงคุณสามารถทำซ้ำการเปลี่ยนตัวครั้งล่าสุดด้วย:&หรือ:&&(อดีตจะไม่เก็บธงเดิมไว้ตามหลัง) เพื่อให้คุณสามารถแทนที่การโยงได้ง่าย ๆ :

2s/^/word /|3&|5&|7&|11&

ดูและเลื่อนรอบ:help :&:&&

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