เป็นกลุ่ม: แทนที่ตัวละครทั้งหมดจนจบบรรทัด


30

บางทีฉันอาจบ้าคลั่ง แต่คุณสามารถแทนที่ตัวละครทั้งหมดจากที่ที่เคอร์เซอร์อยู่ที่ท้ายบรรทัดด้วยคำสั่งเดียวได้หรือไม่? จากนั้นใช้.เพื่อทำสิ่งเดียวกันแทนที่ในบรรทัดถัดไปเป็นต้น

คำตอบ:


49

หากฉันเข้าใจคำถามของคุณถูกต้องลองสิ่งนี้:

C(นั่นคือตัวใหญ่ C) จะลบทุกอย่างจากเคอร์เซอร์จนถึงจุดสิ้นสุดของบรรทัดและนำคุณเข้าสู่โหมดINSERTจากนั้นคุณเขียนการแทนที่ออกจากโหมด INSERT ใช้.เพื่อทำกระบวนการซ้ำที่อื่น


ละเอียด. :)ไม่เป็นไร
sr_

16
ถ้าใครสงสัยว่ามันเป็นทุน C :)
ดาวิดซิลวาสมิ ธ

1
จะเป็นการดีถ้าได้รับคำตอบให้อัปเดตว่านี่คือเมืองหลวง C
fraxture

14

การเพิ่มคำตอบของ sr_:

หากเคอร์เซอร์ของคุณเริ่มต้นที่ตำแหน่งเดียวกันในแต่ละบรรทัดคุณอาจสนใจฟีเจอร์Visual Block

พิมพ์คำสั่งต่อไปนี้โดยที่เคอร์เซอร์อยู่ในตำแหน่งเริ่มต้น:

  • Ctrl+ v: เข้าสู่โหมดบล็อกภาพ
  • $: ไปที่ท้ายบรรทัด
  • [X]j: แทนที่ X ด้วยจำนวนบรรทัดที่คุณต้องการลง

สิ่งนี้ควรสร้างการเลือกรูปสี่เหลี่ยมผืนผ้าจากเคอร์เซอร์ของคุณในบรรทัดแรกไปยังจุดสิ้นสุดของบรรทัด [X] บรรทัดด้านล่าง

จากนั้นคุณสามารถแทนที่การเลือกทั้งหมดของคุณ:

  • c: ลบ selction และไปที่โหมดแทรก
  • แทรกข้อความใหม่
  • Esc: ออกจากโหมดแทรก; Vim จะทำซ้ำขั้นตอนโดยอัตโนมัติในแต่ละบรรทัดที่เลือก

ฉันใช้บล็อกภาพทุกครั้งที่ฉันทำได้ฉันคิดว่าฉันจะแบ่งปัน


+1 คำตอบที่ดีแน่นอน แต่ไม่ใช่สิ่งที่ฉันต้องการเพราะบางครั้งรหัสของฉันไม่ได้จัดรูปแบบอย่างนั้น ^ _ ~
Sardathrion - Reinstate Monica

@sardathrion; ความคิดเห็น RE 'จัดรูปแบบเป็นอย่างดี' การสร้างตารางในMarkdownฉันสามารถเติมช่องว่างในn+1บรรทัดโดยอัตโนมัติหลังจากสร้าง line nโดย Visual Block เลือกย้อนหลัง ! กล่าวอีกนัยหนึ่งรูปร่างคล้ายกับย้อนหลัง 7 หรือพลิกแนวตั้ง L หรือ 'ไม่ได้จัดรูปแบบเป็นอย่างดี' ฮ่า ๆ.
xtian

3

Cหรือc$สำหรับ "เปลี่ยน" และRสำหรับ "แทนที่"

สองพฤติกรรมที่คล้ายกันเกือบ อดีตจะได้รับการลบบรรทัดก่อนที่คุณจะเริ่มพิมพ์; ในขณะที่ตัวหลังจะให้คุณพิมพ์อักขระและอาจเกินขีด จำกัด ของอักขระบรรทัดเก่าที่แสดง


1

เพียงกด 'C' เช่นตัวพิมพ์ใหญ่ C ในโหมดคำสั่งและพิมพ์ข้อความแทน


0

คำตอบอื่น ๆ ที่พลาดเหล่านี้พวกเขาไม่ได้เข้าสู่โหมดแทรก

  • D ลบไปยังจุดสิ้นสุดของบรรทัด
  • d$ ลบออกจากเคอร์เซอร์จนถึงท้ายบรรทัด

จากนั้นใช้แน่นอน .


-1 สำหรับการไม่เข้าสู่โหมดแทรกเนื่องจากเป็นสิ่งที่ฉันถามโดยเฉพาะ +1 เพื่อความสมบูรณ์
Sardathrion - Reinstate Monica

0

มันจะมีประโยชน์เมื่อเราพยายามเปลี่ยนจนถึงจุดสิ้นสุด ฉันได้สร้างการแมปแทรกเพื่อทำงานนี้มันไม่ได้ใช้Dเพราะในโหมดแทรกปุ่มนี้ใช้เพื่อลดการเยื้อง ดังนั้นจึงเป็นCtrl-k

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