ฉันจะบล็อกการค้นหาและแทนที่ด้วย Vim ได้อย่างไร?


8

ฉันมีข้อความเป็นกลุ่ม

  1. กดCtrl+Vเพื่อใส่ VIm ในโหมดบล็อก
  2. เน้นข้อความที่ฉันต้องการ
  3. พิมพ์:นี้ให้พรอมต์นี้:'<,'>
  4. ฉันจะเพิ่มไปยังพร้อมท์ s/ /*/gregex สิ่งนี้ทำให้ฉันด้วย:'<,'>s/ /*/gและข้อความที่เน้น
  5. ฉันกด Enter

น่าเสียดายที่มันทำงานได้ทั้งสายสำหรับบล็อกไม่ใช่เฉพาะบล็อก มีอยู่แล้วเพื่อทำการค้นหาบล็อกและแทนที่?

คำตอบ:


12

เมื่อใช้คำสั่ง ex ในโหมดบล็อกภาพคำสั่ง:เหล่านั้นจะทำงานตลอดทั้งบรรทัด มีสองวิธีรอบนี้:

  1. \%Vอะตอมจะตรงกับเฉพาะภายในพื้นที่ภาพ ลอง

    :'<,'>s/\%V /*/g
    

    ดู :help %V

  2. มีคำสั่งบางคำในเวอร์ชันเสมือนจริง v_s หรือ v_r ดู:help visual-operators

ฉันไม่สามารถหาวิธีการทำงานนี้ได้
Evan Carroll

อะตอม \% V จะ จำกัด รูปแบบเพื่อให้ตรงกับเฉพาะในการเลือกภาพ ลอง:'<,'>s/\%V /*/g
DaveParillo

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