อัปเดตล่าสุด May 14, 2024
Vim ย่อมาจาก "Vi IMproved" เป็นโปรแกรมแก้ไขข้อความ (Text Editor) ที่มีประสิทธิภาพและสุดแสนจะคลาสสิค ซึ่ง Vim เป็นเครื่องมือในตำนานที่ได้รับความนิยมมากในเหล่าโปรแกรมเมอร์ นักพัฒนาซอฟต์แวร์ ผู้ดูแลระบบ ฯลฯ เพราะว่ากันว่ามันคือ editor ที่สร้าง productivity ได้เป็นอย่างมากเลยทีเดียว
แต่เอาจริง ๆ แล้ว Vim ไม่ได้ใช้งานง่ายเลย มือใหม่บางคนหรือใครหลายคน ที่เริ่มต้นใช้ล้วนงงเป็นไก่ตาแตกในการใช้งาน !!
บทความนี้ผมจะพาเพื่อน ๆ มาทำความเข้าใจภาพรวม ความเป็นมา คำสั่งเบื้องต้น เกี่ยวกับเจ้า editor สายโหดตัวนี้กันครับ
Vim ถูกคิดค้นและถูกสร้างขึ้นโดย Bram Moolenaar นักคอมพิวเตอร์ชาวดัตช์ ถูกปล่อยออกมาครั้งแรกในเดือนพฤศจิกายนปี 1991
Bram Moolenaar ได้แสดงความสนใจในคอมพิวเตอร์ตั้งแต่วัยเยาว์และเริ่มเขียนโปรแกรมบนเครื่องคอมพิวเตอร์ Commodore VIC-20 ในช่วงต้นปี พ.ศ. 2520
หน้าตาของ Commodore VIC-20 (Photo Credit: WikiPedia)
ในช่วงครึ่งกลางของปี พ.ศ. 2520 ขณะทำงานในสถาบันการเงิน เขาได้รับรู้จักกับโปรแกรมแก้ไขข้อความ Vi ซึ่งเป็นโปรแกรมมาตรฐานในระบบ Unix ในยุคนั้น โดย Vi มีความซับซ้อนในการใช้งานและ Bram พบว่าใช้งานค่อนข้างยาก
เนื่องจากความที่ Vi ใช้งานค่อนข้างยาก นี่จึงเป็นอีกหนึ่ง pain point (จุดอ่อนหรือปัญหา) ที่ทำให้ Bram ได้นำมาเป็นพลังขับเคลื่อน และความต้องการที่จะปรับปรุงมันให้ดีขึ้นเป็นทุนเดิมอยู่แล้ว Bram ได้ตัดสินใจสร้างเวอร์ชันที่ดีกว่าของโปรแกรม ซึ่งขณะนั้นเขายังทำงานเป็นนักพัฒนา แต่ก็ได้เริ่มสร้าง Vim ในตอนนั้นเลยครับ
ซึ่งเวอร์ชันแรกของ Vim คือเวอร์ชัน 1.14 ได้ถูกเผยแพร่ในปี 1991 เป็นเวอร์ชันที่ปรับปรุงให้ Vi มีความสามารถเพิ่มมากขึ้น มีการใช้งานที่ดีขึ้น และอินเตอร์เฟสที่ใช้งานง่ายกว่าเดิม
Vim 1.14 เวอร์ชันแรกของ Vim
โดย Vim ได้รับการเผยแพร่เป็นซอฟต์แวร์ฟรีและโอเพนซอร์สภายใต้สัญญาอนุญาต Vim License ทำให้มีการเข้าถึง Vim ได้อย่างกว้างขวางสำหรับนักพัฒนาและผู้สนใจทั่วโลก ซึ่งช่วยให้ชุมชนสามารถเข้ามามีส่วนร่วมในการพัฒนาและสร้างปลั๊กอินและส่วนขยายเพื่อเพิ่มความสามารถของโปรแกรมต่อไป
หลังจากนั้นเป็นต้นมาจวบจนปัจจุบัน Vim ก็ได้รับความนิยมของนักพัฒนา โปรแกรมเมอร์ ฯลฯ เรื่อยมา ด้วยความสามารถ ความยืดหยุ่น และความหลากหลายในการใช้งาน ตลอดเวลาที่ผ่านมา Vim ได้มีการอัปเดตและปรับปรุงอย่างต่อเนื่อง กลายเป็นหนึ่งใน text editor ที่ได้รับความนิยมและนำมาใช้ในโลกของนักพัฒนาอย่างมาก
อย่างภาพด้านล่างเป็นผลสำรวจของ Stack Overflow Survey 2023 ซึ่ง Vim ก็ยังติดอยู่ในลิสต์อยู่เสมอ
ถ้าคุณมีสิ่งเหล่านี้
ถ้ามีครบตามลิสต์ด้านบนที่ว่ามา ก็แสดงว่าโอเครใช้ได้ พร้อมเรียน Vim ครับ
Vim Modes
Vim เป็นโปรแกรมแก้ไขข้อความแบบโหมด ซึ่งหมายความว่ามันทำงานในโหมดต่าง ๆ ที่มีวัตถุประสงค์แตกต่างกัน 3 โหมดหลัก ๆ ดังต่อไปนี้
ในโหมดนี้ เราจะเลื่อนที่ผ่านข้อความและใช้คำสั่ง คุณสามารถย้าย pointer ทำการค้นหาข้อความและแก้ไขโค้ดของคุณได้อย่างมีประสิทธิภาพ
โหมดนี้ใช้สำหรับพิมพ์และแก้ไขข้อความ คล้ายกับโปรแกรมแก้ไขข้อความอื่น ๆ สามารถเข้าสู่โหมด Insert โดยกด i หรือคีย์อื่น ๆ ที่เหมาะสม
โหมด Visual ช่วยให้เราสามารถเลือกบล็อกของข้อความเพื่อคัดลอก ตัด หรือดำเนินการอื่น ๆ โดยสามารถเข้าสู่โหมด Visual โดยกด v
Key Stroke | Description |
<shift-v> | Go to visual mode whole line |
<ctrl-v> | Go to visual mode in current cursor position |
ต่อมาก็จะเป็นคำสั่งต่าง ๆ ของ Vim เพิ่มเติมที่น่าสนใจกันครับ
คำสั่ง Save
Key Stroke | Description |
:w | Save without quite |
:wq | Save and quit |
ZZ <Shift-zz> | Save and quit |
คำสั่ง Search
Key Stroke | Description |
/<search_word> | Search forward |
?<search_word> | Search backward |
:s/<search>/replace | Search and replace |
:s/<search>/replace/g | Search and replace all in file |
:s/<search>/replace/gc | Search and replace all in file with confirm |
คำสั่ง Delete
Key Stroke | Description |
dw | Delete word |
db | Delete word backward |
dd | Delete the line |
และเชื่อว่าหลายคนคงได้ยินคำพูดเชิงมีมที่ว่า "ออกจาก Vim ไม่เป็น" แม้แต่บน Stack Overflow ก็ยังมีคำถามในตำนานอย่าง "How to exit Vim?" ที่ถามไว้ตั้งแต่ปี 2555 หรือกว่า 11 ปีที่แล้ว
คำถามในตำนานบน StackOverfow "How to Exit Vim?"
เพื่อที่จะออกจาก Vim สามารถทำได้ตามขั้นตอนต่อไปนี้ครับ
ข้อควรคำนึงคือหลังจากพิมพ์คำสั่งนี้ ให้กด 'Enter' เพื่อดำเนินการต่อ และจากนั้น Vim จะออกจากโปรแกรมตามที่เราได้กำหนดไว้ครับ
Key Stroke | Description |
:q + <Enter> | Exit without save |
:q! + <Enter> | Force exit without save |
ZQ < + <Shift-zq> | Exit without save |
Vim เป็นเครื่องมือในตำนานที่สามารถเพิ่มประสิทธิภาพในการเขียนโค้ดและทักษะในการแก้ไขข้อความหรือโค้ดต่าง ๆ ของเราได้อย่างมากเลยครับ แม้ Vim จะใช้เวลาในการเรียนรู้สักพักใหญ่ ๆ แต่เชื่อว่าถ้าใช้คล่องแล้ว มันจะเพิ่ม productivity ให้กับเพื่อน ๆ ได้เป็นอย่างดีแน่นอน
บทความนี้หวังว่าจะทำให้เพื่อน ๆ เข้าใจโครงสร้าง ภาพรวมของ Vim Editor นะครับ
เปิดโลกการเขียนโปรแกรมและ Software Development ด้วย online courses ที่จะพาคุณอัพสกิลและพัฒนาสู่การเป็นมืออาชีพ เรียนออนไลน์ เรียนจากที่ไหนก็ได้ พร้อมซัพพอร์ตหลังเรียน
เรียนเขียนโปรแกรม