ค้นหาและแทนที่เป็นกลุ่ม

Vim Search Replace



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

ในบทความนี้ เราจะอธิบายคุณลักษณะที่มีประโยชน์มากที่สุดอย่างหนึ่งคือการค้นหาและแทนที่ ด้วยการกำหนดค่าจำนวนหนึ่ง คุณสามารถค้นหาสิ่งที่คุณต้องการด้วยความเร็วที่เห็นได้ชัดและมีความละเอียดที่ละเอียดยิ่งขึ้น







วิธีที่ # 1 ค้นหาและแทนที่หนึ่งรายการในแต่ละครั้ง (โดยใช้คำสั่ง slash and dot)

วิธีที่ง่ายที่สุดในการค้นหาและแทนที่คำใน Vim คือการใช้คำสั่ง slash and dot สามารถใช้เครื่องหมายทับ (/) เพื่อค้นหาคำในขณะที่จุด (.) สามารถใช้แทนคำนั้นได้



ทำตามขั้นตอนง่าย ๆ ด้านล่างเพื่อค้นหาและแทนที่คำใด ๆ ในตัวแก้ไข Vim:



  • เปิดไฟล์ใน Vim
  • กดปุ่มเครื่องหมายทับ (/) พร้อมกับคำค้นหา เช่น / search_term แล้วกด Enter มันจะเน้นคำที่เลือก
  • จากนั้นกดแป้นพิมพ์ cgn เพื่อแทนที่คำที่เน้นและป้อนreplace_term
  • กลับสู่โหมดปกติ ถัดไป กด n เพื่อเลื่อนไปยังคำค้นหาที่เกิดขึ้นถัดไป
  • จากนั้นกดจุด (.) หากคุณต้องการแทนที่การเกิดขึ้นครั้งต่อไปด้วยreplace_term เดียวกัน มิฉะนั้นให้กดปุ่ม n อีกครั้งเพื่อย้ายไปยังเหตุการณ์ถัดไป

เป็นวิธีที่เร็วและดีที่สุดสำหรับการค้นหาพื้นฐานและแทนที่ฟังก์ชัน เนื่องจากการกดแป้นเพียงไม่กี่ครั้งและการหยุดชะงักน้อยลงในการทำงานปัจจุบันของคุณ อย่างไรก็ตาม สำหรับการค้นหาคำที่เกิดขึ้นหลายครั้งเกินไป จะกลายเป็นงานที่ซ้ำซากและใช้เวลานาน





ด้วย Vim มีอีกวิธีที่ดีกว่าในการหลีกเลี่ยงงานที่ซ้ำซากซึ่งใช้คำสั่งทดแทน

วิธีที่ # 2 ค้นหาและแทนที่โดยใช้คำสั่งทดแทน

คำสั่งทดแทนสามารถใช้เพื่อดำเนินการค้นหาขั้นพื้นฐานถึงขั้นสูงและแทนที่ด้วยคำสั่งเดียว ไวยากรณ์สำหรับคำสั่งนี้คือ:



$:NS/<คำที่ต้องการค้นหา> /<แทนที่_term> /ตัวเลือก

โปรดทราบว่าคุณต้องป้อนคำสั่งนี้ในโหมดปกติ

ที่ไหน

  • S: ย่อมาจากแทน
  • search_term: คำที่คุณต้องการค้นหาและแทนที่
  • replace_term: คำที่คุณต้องการแทนที่ด้วย
  • ตัวเลือก: c (เพื่อยืนยัน), g (แทนที่เหตุการณ์ทั้งหมดในบรรทัดเดียว), i (สำหรับกรณีละเว้น)

ค้นหาและแทนที่

ในการค้นหาพื้นฐานและแทนที่โดยใช้คำสั่งทดแทน ให้ใช้ไวยากรณ์ต่อไปนี้:

:%NS/<คำที่ต้องการค้นหา> /<แทนที่_term> /NS

คำสั่งนี้จะแทนที่ทุกอินสแตนซ์ของ search_term ด้วย replace_term

ตัวอย่างเช่น นี่คือข้อความตัวอย่างของเรา:

Ubuntu เป็นหนึ่งในระบบปฏิบัติการ Linux ที่ใช้มากที่สุด Ubuntu มีโปรแกรมที่มีประโยชน์มากมาย ด้วยบรรทัดคำสั่งของ Ubuntu คุณสามารถทำงานเกือบทุกชนิดให้สำเร็จ

เพื่อแทนที่ Ubuntu แต่ละครั้งด้วย Debian ในข้อความต่อไปนี้ จะใช้คำสั่งต่อไปนี้:

:%NS/อูบุนตู/เดเบียน/NS

ค้นหาและแทนที่ในบรรทัดเดียว

หากต้องการค้นหาและแทนที่การเกิดขึ้นของคำในบรรทัดเดียวแทนที่จะเป็นทั้งไฟล์ ให้ใช้ไวยากรณ์ต่อไปนี้:

:NS/<คำที่ต้องการค้นหา> /แทนที่_term/NS

ตัวอย่างเช่น หากต้องการแทนที่ Ubuntu ด้วย Debian ในข้อความตัวอย่างด้านบน คำสั่งต่อไปนี้ที่ไม่มีสัญลักษณ์ % จะถูกนำมาใช้:

:NS/อูบุนตู/เดเบียน/NS

ค้นหาและแทนที่ด้วยการยืนยัน

หากคุณต้องการให้ยืนยันก่อนแทนที่คำค้นหา ให้ใช้ c ต่อท้ายคำสั่งค้นหาดังนี้:

:NS/<คำที่ต้องการค้นหา> /<แทนที่_term> /gc

คำสั่งดังกล่าวจะขอการยืนยันก่อนการแทนที่แต่ละครั้ง (ป้อน y สำหรับใช่ ในขณะที่ n สำหรับไม่ใช่)

การค้นหาและแทนที่โดยคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

เมื่อคุณทำการค้นหาและแทนที่ใน Vim โดยค่าเริ่มต้น จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ คุณสามารถดำเนินการค้นหาแบบไม่คำนึงถึงขนาดตัวพิมพ์โดยเพิ่ม i ที่ท้ายคำสั่งดังนี้:

:NS/<คำที่ต้องการค้นหา> /<แทนที่_term> /ให้

ตัวอย่างเช่น หากต้องการค้นหาคำว่า Ubuntu โดยไม่คำนึงถึงกรณี (UBUNTU, Ubuntu, ubuntu, uBuntu) จะใช้คำสั่งต่อไปนี้:

:NS/อูบุนตู/เดเบียน/ให้

ค้นหาและแทนที่ทั้งคำ

โดยค่าเริ่มต้น คำสั่งทดแทนจะค้นหารายการที่ตรงกันไม่ว่าจะเป็นบางส่วนหรือทั้งหมด เพื่อให้ตรงกับ search_term ทุกประการ จากนั้นแทนที่ด้วย replace_term ให้ใส่คำค้นหา _term ไว้ในไฟล์ .

ตัวอย่างเช่น ในเอกสารบางฉบับ คุณต้องการค้นหาและแทนที่คำที่ตรงกับฉัน ในกรณีนั้น จะใช้คำสั่งต่อไปนี้:

:NS/<คุณ> /ผม/

มันจะค้นหาคำว่าคุณและแทนที่ด้วยฉัน อย่างไรก็ตาม จะไม่แทนที่คำเช่นคุณ

ค้นหาและแทนที่คำระหว่างบรรทัดโดยเฉพาะ

ในการค้นหาคำในบรรทัดใดบรรทัดหนึ่ง แทนที่จะใช้เพียงบรรทัดเดียวหรือทั้งไฟล์ คุณสามารถใช้ไวยากรณ์ต่อไปนี้ได้:

:<start_line>,<end_line>NS/<คำที่ต้องการค้นหา> /<แทนที่_term> /NS

ตัวอย่างเช่น ในการค้นหาและแทนที่การเกิดขึ้นของ Ubuntu ด้วย Debian จากบรรทัดต่างๆ ตั้งแต่ 3 ถึง 8 ในบางไฟล์ คำสั่งจะเป็น:

:1,10วินาที/อูบุนตู/เดเบียน/NS

ในการค้นหาและแทนที่การเกิดขึ้นของคำจากบรรทัดปัจจุบันเป็นจำนวน x ถัดไป ไวยากรณ์ต่อไปนี้จะถูกใช้:

:NS/คำที่ต้องการค้นหา/แทนที่_term/ก. x

ในทำนองเดียวกัน ในการค้นหาและแทนที่การเกิดขึ้นของคำจากบรรทัดปัจจุบันเป็นบรรทัดสุดท้าย: ไวยากรณ์ต่อไปนี้จะถูกใช้:

:.,$s/คำที่ต้องการค้นหา/แทนที่_term/NS

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีค้นหาและแทนที่คำใดๆ ในโปรแกรมแก้ไข Vim โดยใช้บรรทัดคำสั่ง คำสั่งแรกที่ใช้เครื่องหมายทับและจุดเป็นวิธีที่ง่ายและสะดวกที่สุด แต่กลับกลายเป็นว่าซ้ำกันเมื่อคุณค้นหาและแทนที่คำที่เกิดขึ้นหลายครั้งเกินไป คำสั่งอื่นที่เป็นคำสั่ง substitution ครั้งหนึ่งอาจดูเหมือนยากและซับซ้อน แต่เมื่อคุณเริ่มฝึก คุณจะพบว่ามีประโยชน์อย่างมากในหลาย ๆ สถานการณ์