ครบรอบ 20 ปี Vim

by neizod
3 November 2011 - 12:21

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

และเนื่องในโอกาสที่ Vim มีอายุครบ 20 ปีไปเมื่อวานนี้ (เวอร์ชันแรก: 2 พฤศจิกายน 1991) ผมจะพาคุณไปทำความรู้จักกับประวัติศาสตร์อันน่าสนใจของมันให้ดียิ่งขึ้นครับ

แรงบันดาลใจจาก vi

Vim นั้นได้รับแรงบัลดาลใจมาจาก vi ซึ่งเป็นโปรแกรมแก้ไขเอกสารแบบเต็มหน้าจอในยุคแรกๆ ของระบบ Unix โปรแกรม vi ถือกำเนิดขึ้นในปี 1976 โดย Bill Joy เนื่องจากในเวลานั้นยังมีโปรแกรมแก้ไขเอกสารที่เปิดเอกสารได้เต็มหน้าจออยู่ไม่มาก เขาได้พัฒนามันสำหรับเครื่องคอมพิวเตอร์ ADM-3A ซึ่งส่งผลต่อเอกลักษณ์ของ vi โดยตรง นั่นคือการใช้ปุ่ม h, j, k และ l เพื่อบังคับเคอร์เซอร์ (เนื่องจากเครื่อง ADM-3A ที่ไม่มีเมาส์ ก็ได้พิมพ์ปุ่มลูกศรไว้บนตำแหน่งนั้นเช่นกัน) โดยแรกสุด vi เป็นเพียงแค่โหมดหนึ่งของโปรแกรม ex ซึ่งเป็นโปรแกรมแก้ไขเอกสารแบบทีละบรรทัดที่เขาพัฒนาต่อยอดมาจาก ed อีกต่อหนึ่งเท่านั้น

ผังแป้นพิมพ์ของเครื่อง ADM-3A

หลังจากที่ Joy ได้รวมโปรแกรม vi เข้าไปในระบบปฏิบัติการ BSD และ System V ของ AT&T แล้ว การได้รับมาตรฐาน POSIX ก็ทำให้ vi ได้รับการติดตั้งมาพร้อมกับระบบ Unix ต่างๆ ไปโดยปริยาย แต่เนื่องจากโค้ดของ vi นั้นมีพื้นฐานมาจากโปรแกรม ed ของ AT&T ทำให้การแจกจ่ายซอร์สโค้ดไม่สามารถทำได้ โปรแกรมโคลนของ vi ที่เปิดซอร์สจึงถือกำเนิดขึ้นมา เช่น Stevie, Elvis

แล้วก็มาถึง Vim

ผู้พัฒนา Vim คือ Bram Moolenaar ในปี 1988 เขารู้สึกไม่พอใจกับ vi โคลนตัวอื่นๆ บนเครื่อง Amiga จึงได้นำ Stevie (ซึ่งเขาบอกว่าเป็น vi โคลนบน Amiga ที่ดีที่สุดในเวลานั้น) มาพัฒนาต่อเพื่อใช้งานส่วนตัว แต่เนื่องด้วยเสียงตอบรับที่ดีจากผู้ใช้รายอื่น ทำให้ Moolenaar ตัดสินใจเผยแพร่ Vim เวอร์ชัน 1.14 ให้แก่บุคคลทั่วไปในวันที่ 2 พฤศจิกายน 1991 โดยประกาศให้เป็นซอฟต์แวร์แบบไร้ลิขสิทธิ์ (copyleft)

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

หน้าจอต้อนรับของโปรแกรม Vim

อันที่จริงแล้ว ชื่อเดิมของ Vim นั้นย่อมากจาก Vi IMitation แต่ภายหลังได้เปลี่ยนเป็น Vi IMproved ในเวอร์ชัน 1.22 (ปี 1992) การพัฒนาเวอร์ชันนั้นมีอย่างต่อเนื่องเรื่อยมาจนถึงปัจจุบัน ณ วันที่เขียนนี้ Vim ก็ได้เดินมาถึงเวอร์ชัน 7.3.460 แล้ว ซึ่งนอกจากความสามารถที่เหนือชั้นกว่า vi ต้นฉบับ Vim ยังรองรับระบบปฏิบัติการต่างๆ อย่างมากมาย เช่น Windows, Linux, Mac OS X, QNX อีกด้วย

ยิ่งไปกว่านั้น ด้วยความที่โปรแกรมโคลนของ vi ได้รับความนิยมอย่างมาก ก็ทำให้ “vi” กลายเป็นคำสามัญในการเรียกแทนกลุ่มโปรแกรมโคลนของ vi ทั้งหมดด้วย ถึงแม้ว่าเครื่องนั้นจะไม่สามารถติดตั้ง vi ต้นฉบับได้ก็ตาม

ทำไมต้อง Vim

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

  • ความสามารถในการจัดหน้าจอเพื่อแสดงผลเอกสารหลายๆ เอกสารพร้อมกัน
  • การแบ่งโหมดระหว่างโหมดแก้ไขกับโหมดเลื่อนดูเอกสาร
  • ปุ่มคำสั่งต่างๆ ในการเลื่อน/แก้ไขเอกสารอย่างรวดเร็ว
  • มาโครที่สามารถจดจำและทำซ้ำลำดับการกดปุ่มในรูปแบบต่างๆ
  • ระบบค้นหาด้วย regular expression ที่ทรงพลัง
  • ตัวโปรแกรมสามารถทำงานได้บนระบบที่หลากหลาย ตั้งแต่ Linux ยัน Windows

ตัวอย่างการใช้ Vim เปิดหลายหน้าจอ ภาพจาก vi-improved.org

แม้ว่า Vim จะมีอายุครบ 20 ปีแล้ว แต่ด้วยการพัฒนาอย่างต่อเนื่องถึงทุกวันนี้ ก็ทำให้ Vim ครองใจโปรแกรมเมอร์มาได้เสมอมา และไม่มีทีท่าว่าจะแผ่วเบาลงแต่อย่างใดครับ

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

เรียบเรียงจาก: Ars Technica

Blognone Jobs Premium