ฉันต้องการเพิ่ม*ที่ส่วนท้ายของแต่ละบรรทัดใน Vim
ฉันลองใช้รหัสไม่สำเร็จ
:%s/\n/*\n/g
ฉันต้องการเพิ่ม*ที่ส่วนท้ายของแต่ละบรรทัดใน Vim
ฉันลองใช้รหัสไม่สำเร็จ
:%s/\n/*\n/g
คำตอบ:
:%s/$/\*/g
ควรทำงาน. ดังนั้นควร:%s/$/*/gเป็นMrWigglesชี้ให้เห็นอย่างถูกต้อง
gตั้งค่าสถานะจึงไม่จำเป็น
แม้สั้นกว่าคำสั่ง: การค้นหา:
:%norm A*
นี่คือความหมาย:
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
:สิ่งนี้จะเติมคำสั่งล่วงหน้า:'<,'>ที่คุณสามารถทำได้:'<,'>norm A*
Iแทน -:%norm I*
นอกจากนี้:
:g/$/norm A*
นอกจากนี้:
gg<Ctrl-v>G$A*<Esc>
gเป็นglobalคำสั่งที่ทำบางสิ่งบางอย่างกับทุกบรรทัดที่ตรงกัน $ตรงกับทุกบรรทัด มันอาจจะยังหรือ^ .*norm ดำเนินการคำสั่งที่ปกติคุณใช้ในโหมดคำสั่ง ดังนั้นA*หมายถึงผนวก*ท้ายบรรทัด
ฉันคิดว่าการใช้โหมดบล็อกภาพเป็นวิธีที่ดีกว่าและหลากหลายกว่าสำหรับการจัดการกับสิ่งประเภทนี้ นี่คือตัวอย่าง:
This is the First line.
This is the second.
The third.
ในการแทรก "Hello world" (space + clipboard) ที่ท้ายแต่ละบรรทัดเหล่านี้:
ผลลัพธ์คือ:
This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.
(ตัวอย่างจากVim.Wikia.com )
jjหนึ่งสามารถกดGเพื่อย้ายไปยังบรรทัดสุดท้าย สิ่งนี้มีประโยชน์ในไฟล์ขนาดใหญ่โดยที่การกดjจนกว่าคุณจะกดบรรทัดสุดท้ายก็ใช้ไม่ได้
หากคุณต้องการเพิ่ม Hello world ในตอนท้ายของแต่ละบรรทัด:
:%s/$/HelloWorld/
หากคุณต้องการทำสิ่งนี้สำหรับจำนวนบรรทัดที่ระบุจาก 20 ถึง 30 ใช้:
:20,30s/$/HelloWorld/
หากคุณต้องการทำสิ่งนี้ในตอนเริ่มต้นของแต่ละบรรทัดให้ใช้:
:20,30s/^/HelloWorld/
คุณไม่ต้องการจริงๆgในตอนท้าย ดังนั้นมันจะกลายเป็น:
:%s/$/*
หรือถ้าคุณแค่อยากให้*พูดบรรทัดที่ 14-18:
:14,18s/$/*
หรือ
:14,18norm A*
ทางเลือกหนึ่งคือ:
:g/$/s//*
*นี้จะได้พบกับทุกสมอปลายสายและแทนด้วย ฉันพูดว่า "ตัวแทน" แต่อันที่จริงแล้วมันเป็นเรื่องที่เพิ่มเติมเนื่องจากสมอเป็นสิ่งพิเศษมากกว่าตัวละครปกติ สำหรับข้อมูลเพิ่มเติมโปรดดูที่พลังของกรัม - ตัวอย่าง
:% s / \ n / * \ r / g
คนแรกของคุณถูกต้องที่อื่น แต่ Vim ต้องมีการจัดการขึ้นบรรทัดใหม่ที่แตกต่างกันด้วยเหตุผลบางประการ
%s/\s*$/\*/g
นี่จะเป็นการหลอกลวงและทำให้แน่ใจว่าไม่มีการเว้นวรรคนำหน้า
:s///,\nสอดคล้องกับตัวละครโมฆะ ส่วนที่:help sub-replace-specialเกี่ยวข้อง