December 26, 2011

vi: ค้นหาข้อความในเอกสาร

ในตอนที่ผ่านๆ มา เรารู้แล้วว่าสามารถค้นหาตัวอักษรในบรรทัดได้ด้วย [f] และ [t] ส่วนการค้นหาข้อความทั้งเอกสาร สามารถทำได้โดยเอา cursor ไปวางไว้ที่คำที่ต้องการค้นหา แล้วกด [*] หรือ [#]



สำหรับการค้นหาโดยคำที่ต้องการ จะใช้คำสั่งใน last line mode คือ /text [Enter] ครับ

การเลื่อนไปหาคำถัดไปทำได้โดยปุ่ม [n] ส่วนค้นหาย้อนกลับก็ใช้ [N]

สิ่งที่ต้องระวังคือ ข้อความที่ค้นหานี้ถือเป็น regex ครับ ซึ่ง
  • ., *, \, [, ], ^, $ ถือว่าเป็นอักขระ regex ถ้าต้องการใช้แทนอักขระทั่วไปให้ใส่ \ นำหน้า
  • +, ?, |, {, }, (, ) ถือว่าเป็นอักขระทั่วไป ถ้าต้องการใช้แบบ regex ให้ใส่ \ นำหน้า


การ wrap ข้อความที่จะค้นหาใช้ \< และ \> (ซึ่งจะเหมือนกับการใช้ [*] ครับ)

นอกจาก /text [Enter] แล้ว ยังมี ?text [Enter] อีก ซึ่งจะหาในทิศทางกลับกันนั่นเอง



การ replace คำจะใช้คำสั่ง last line mode คือ :s/find/replace/option เช่น


แต่ทั้งหมดนี้ จะเป็นการกระทำบนบรรทัดที่เราอยู่เพียงบรรทัดเดียวเท่านั้น การสั่งให้ทำกับส่วนต่างๆ ของเอกสารต้องเพิ่ม line modifier เข้าไปด้วย คือ

No comments:

Post a Comment