ในบทความนี้ เราจะอธิบายคุณลักษณะที่มีประโยชน์มากที่สุดอย่างหนึ่งคือการค้นหาและแทนที่ ด้วยการกำหนดค่าจำนวนหนึ่ง คุณสามารถค้นหาสิ่งที่คุณต้องการด้วยความเร็วที่เห็นได้ชัดและมีความละเอียดที่ละเอียดยิ่งขึ้น
วิธีที่ # 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 ครั้งหนึ่งอาจดูเหมือนยากและซับซ้อน แต่เมื่อคุณเริ่มฝึก คุณจะพบว่ามีประโยชน์อย่างมากในหลาย ๆ สถานการณ์