
ด้วยฟีเจอร์แมโครของ Vim คุณสามารถบันทึกและเล่นลำดับการกระทำภายในเอดิเตอร์ได้
บทความนี้อธิบายวิธีการบันทึกและเล่นภายในเอดิเตอร์ Vi และ Vim โดยใช้สองตัวอย่างโดยละเอียด
ขั้นตอนระดับสูงสำหรับการบันทึกและเล่นใน Vim
- เริ่มบันทึกโดยกด q ตามด้วยตัวอักษรพิมพ์เล็กเพื่อตั้งชื่อแมโคร
- ทำการแก้ไขหรือการกระทำทั่วไปภายใน Vim ซึ่งจะถูกบันทึก
- หยุดบันทึกโดยกด q
- เล่นแมโครที่บันทึกโดยกด @ ตามด้วยชื่อแมโคร
- เพื่อเล่นแมโครหลายครั้ง กด : NN @ ชื่อแมโคร NN คือตัวเลข
ตัวอย่างที่ 1: สร้างลำดับหมายเลขในไฟล์ด้วยแมโคร Vim
1. เริ่มไฟล์ sequence-test.txt เพื่อสร้างลำดับ
$ vim sequence-test.txt
2. เข้าสู่โหมดแทรกและพิมพ์ "1 ." ตามด้านล่าง
พิมพ์: Esc i ตามด้วย 1
$ vim sequence-test.txt 1.
3. เริ่มบันทึกและเก็บในรีจิสเตอร์ a
พิมพ์: Esc q ตามด้วย a
- q หมายถึงเริ่มบันทึก
- a หมายถึงเก็บการบันทึกในรีจิสเตอร์ a
- เมื่อทำ q a จะแสดง "recording" ที่ด้านล่างของ vi
4. คัดลอกบรรทัดที่ 1 ไปเป็นบรรทัดที่ 2 เพื่อมีสองบรรทัดที่มี 1 . ตามด้านล่าง
พิมพ์: Esc yy ตามด้วย p
- yy จะคัดลอกบรรทัดปัจจุบัน
- p จะวางบรรทัดที่เพิ่งคัดลอก
$ vim sequence-test.txt 1. 1.
หมายเหตุ: Vim ยังคงแสดง recording ที่ด้านล่างตามด้านล่าง

รูป: Vim แสดงข้อความ recording ที่ด้านล่าง
5. เพิ่มตัวเลข
พิมพ์: Control a
โดยวางเคอร์เซอร์ที่บรรทัดที่ 2 กด Ctrl+a ซึ่งจะเพิ่มตัวเลขเป็น 2 ตามด้านล่าง
$ vim sequence-test.txt 1. 2.
หมายเหตุ: vim ยังคงแสดง recording ที่ด้านล่าง
6. หยุดการบันทึก
พิมพ์: q
กด q เพื่อหยุดบันทึก คุณจะสังเกตว่าข้อความ recording ที่ด้านล่างของ vim หายไปแล้ว
7. ทำซ้ำการบันทึก 98 ครั้ง
พิมพ์: 98@a
- ตอนนี้ทำซ้ำงานนี้ โดยพิมพ์ 98 @ a
- @a เล่นแมโคร "a" หนึ่งครั้ง
- 98@a เล่นแมโคร "a" 98 ครั้ง สร้างลำดับหมายเลข 1 – 100 ตามด้านล่างโดยใช้แมโคร

รูป: สร้างลำดับหมายเลขใน Vim ด้วยแมโคร
ตัวอย่างที่ 2: เล่นแมโคร Vim ด้วยอาร์กิวเมนต์ที่ต่างกัน
ตัวอย่างนี้อธิบายวิธีการรันคำสั่งเดียวกัน แต่กับอินพุตที่ต่างกัน คือ การจัดรูปแบบคำสั่งเดียวกัน พร้อมอาร์กิวเมนต์ที่ต่างกัน
ก่อนรันแมโคร: change-password.sql
$ vim change-password.sql Annette Warren Anthony Preston Kelly Taylor Stiller Dennis Schwartz
หลังบันทึกและรันแมโคร: change-password.sql
$ vim change-password.sql ALTER USER Annette IDENTIFIED BY 'Annette'; ALTER USER Warren IDENTIFIED BY 'Warren'; ALTER USER Anthony IDENTIFIED BY 'Anthony '; ALTER USER Preston IDENTIFIED BY 'Preston'; ALTER USER Kelly IDENTIFIED BY 'Kelly '; ALTER USER Taylor IDENTIFIED BY 'Taylor'; ALTER USER Stiller IDENTIFIED BY 'Stiller'; ALTER USER Dennis IDENTIFIED BY 'Dennis'; ALTER USER Schwart IDENTIFIED BY 'Schwart';
1. เปิด change-password.sql ที่มีเฉพาะชื่อ
$ vim change-password.sql Annette Warren Anthony Preston Kelly Taylor Stiller Dennis Schwartz
2. เริ่มบันทึกและเก็บในรีจิสเตอร์ a
พิมพ์: q a
- q หมายถึงเริ่มบันทึก
- a หมายถึงเก็บการบันทึกในรีจิสเตอร์ a
- เมื่อทำ q a จะแสดงข้อความ recording ที่ด้านล่างของ vi
3. เข้าสู่โหมดแทรกและพิมพ์ ALTER USER
พิมพ์: I (i พิมพ์ใหญ่) ตามด้วย "ALTER USER "
วางเคอร์เซอร์ที่ไหนก็ได้ในบรรทัดแรก กด I จะไปที่ตัวอักษรแรกของบรรทัด พิมพ์ ALTER USER
4. คัดลอกคำถัดไป (คือชื่อ)
พิมพ์: Esc w yw
- กด Esc แล้วกด w เพื่อไปที่คำถัดไป (ชื่อ)
- yw คัดลอกคำปัจจุบัน (ชื่อ)
5. ไปท้ายบรรทัดและพิมพ์ IDENTIFIED BY '
พิมพ์: Esc A ตามด้วย " IDENTIFIED BY '"
- กด Esc และ A เพื่อย้ายเคอร์เซอร์ไปท้ายบรรทัด แล้วพิมพ์ช่องว่าง
- พิมพ์ IDENTIFIED BY '
6. วางชื่อที่คัดลอก
พิมพ์: Esc p
กด Esc แล้วพิมพ์ p เพื่อวางชื่อที่คัดลอกในขั้นตอน #4
7. ปิดเครื่องหมายคำพูดท้ายบรรทัด
พิมพ์: Esc A ตามด้วย ';
กด Esc และ A ไปท้ายบรรทัด และ ';
8. ข้ามไปบรรทัดถัดไปและหยุดบันทึก
พิมพ์: Esc j ตามด้วย q
- j เพื่อไปบรรทัดถัดไป
- q เพื่อหยุดบันทึก
หมายเหตุ: ข้อความ recording ที่ด้านล่างของ vi จะหายไป ณ จุดนี้ change-password.sql จะมีลักษณะดังนี้

รูป: Vim แมโครเสร็จสิ้นการบันทึก
9. ทำซ้ำแมโครกับอาร์กิวเมนต์ในบรรทัดที่ตรงกัน
พิมพ์: 8 @ a
- ตอนนี้ทำซ้ำงานนี้ 8 ครั้ง โดยพิมพ์ 8@a
- @a เล่นแมโคร "a" หนึ่งครั้ง
- 8@a เล่นแมโคร "a" 8 ครั้ง 完成其余的行自动完成如下所示

รูป: Vim แมโครเล่นเสร็จสิ้น
หนังสือแนะนำ
Vim 101 Hacks, by Ramesh Natarajan ผมเป็นผู้ติดบรรทัดคำสั่ง ดังนั้นจึงเป็นแฟนใหญ่ของเอดิเตอร์ Vi และ Vim หลายปีก่อน เมื่อเขียนโค้ด C บน Linux มาก ผมอ่านเคล็ดลับและเทคนิค Vim ทุกอย่างที่มี จากประสบการณ์ Vim ผมเขียน eBook Vim 101 Hacks ที่มี 101 ตัวอย่างปฏิบัติจริงเกี่ยวกับฟีเจอร์ขั้นสูงของ Vim ทำให้คุณเร็วและมีประสิทธิภาพใน Vim แม้คุณใช้ Vi และ Vim มาหลายปีและยังไม่ได้อ่านหนังสือเล่มนี้ โปรดทำความดีใจตัวเองและอ่าน จะประหลาดใจกับความสามารถของ Vim
บทความ Vim ที่น่าสนใจ
ต่อไปนี้คือบทความ บทเรียน Vi / Vim ที่น่าสนใจซึ่งคุณอาจพบว่ามีประโยชน์
- Turbocharge Firefox Browser With Vim Editor Functionality Using Vimperator Add-on
- Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin
- Convert Vim Editor to Beautiful Source Code Browser for Any Programming Language
- 12 Powerful Find and Replace Examples for Vim Editor
หมายเหตุ: โปรดสมัครสมาชิก The Geek Stuff และอย่าพลาด เคล็ดลับและเทคนิค Vi และ Vim ในอนาคต