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
on


สรุปว่า Vim ได้แรงบันดาลใจจาก
hisoft Thu, 03/11/2011 - 22:22
สรุปว่า Vim ได้แรงบันดาลใจจาก vi ที่เป็นโหมดของ ex ที่พัฒนาต่อมาจาก ed
ชื่อจะสื่อความหมายได้ตรงกันไปถึงไหน !!!
สามารถ
มาตรฐานน posix -> มาตรฐาน
wiennat Thu, 03/11/2011 - 22:27
In reply to สรุปว่า Vim ได้แรงบันดาลใจจาก by hisoft
มาตรฐานน posix -> มาตรฐาน posix
ก่อนหน้า ed ยังมี qed (quick
neizod Fri, 04/11/2011 - 00:16
In reply to สรุปว่า Vim ได้แรงบันดาลใจจาก by hisoft
ก่อนหน้า ed ยังมี qed (quick edit) อีกนะครับ
เรื่องที่เหมือนเป็นตลกร้ายคือ Bill Joy ต้นตำรับ vi กลับไม่ยอมใช้ vi ซะหนิ (ใช้ ed แทน) เพราะว่ามัน variant มากเกินไป ย้ายเครื่องทีแล้วใช้งานไม่ถูก
ตั้งแต่ใช้ Vim มา
tonkla Thu, 03/11/2011 - 22:25
ตั้งแต่ใช้ Vim มา ไม่เคยอ่านข้อความต้อนรับเลย เพิ่งเห็น "Help poor children in Uganda!" ก็วันนี้
Vim ทรงพลังมากครับ ถ้าใช้คล่องๆ แล้วจะช่วยลด micro movement ได้เยอะมาก อีกทั้งยังมีปลั๊กอินสำหรับภาษาและเฟรมเวิร์คใหม่ๆ ออกมาอยู่เรื่อยๆ แต่ถ้าจะเอาให้เทพจริงๆ ต้องปรับแต่งกันเยอะน่าดู ตอนนี้มี "Sublime Text 2" ที่เอาความสามารถเด่นๆ ของ Vim มารวมกับ TextMate และแก้ไขข้อจำกัดต่างๆ ของ Vim โดยเฉพาะที่เกี่ยวกับ GUI แถมยังทำให้การปรับแต่งสะดวกขึ้นกว่าเดิมมากๆ
ข้อเสียที่โดดเด่นที่สุดของ Vim น่าจะเป็นว่าใช้แล้วติด ทำให้ปรับตัวเข้ากับ editor ตัวอื่นได้ยาก แถมยังต้องเผลอกด Esc บ่อยๆ อีก ฮา
+1 ตรงต้องเผลอกด esc บ่อยๆ
p_warawit Fri, 04/11/2011 - 12:30
In reply to ตั้งแต่ใช้ Vim มา by tonkla
+1 ตรงต้องเผลอกด esc บ่อยๆ
ทำไมต้องกด esc บ่อยๆ
manaeeee Sat, 05/11/2011 - 09:41
In reply to +1 ตรงต้องเผลอกด esc บ่อยๆ by p_warawit
ทำไมต้องกด esc บ่อยๆ ด้วยอ่ะครับ อยากรู้เฉยๆ ขอบคุณครับ
รอคนมาเปิดประเด็นดราม่ากับ
thedesp Thu, 03/11/2011 - 22:32
รอคนมาเปิดประเด็นดราม่ากับ emacs
เราจะไม่นอกรีตจาก Church of
atheist Fri, 04/11/2011 - 00:55
In reply to รอคนมาเปิดประเด็นดราม่ากับ by thedesp
@neizod ขยันจริงๆ แฮะ
audy Thu, 03/11/2011 - 23:15
@neizod ขยันจริงๆ แฮะ
ขี้เกียจมานาน ลงโทษตัวเองครับ
neizod Fri, 04/11/2011 - 00:20
In reply to @neizod ขยันจริงๆ แฮะ by audy
ขี้เกียจมานาน ลงโทษตัวเองครับ ^^"
พึ่งเคยได้ยินชื่อนี้ก็วันนี้ล
a2b2c517 Thu, 03/11/2011 - 23:26
พึ่งเคยได้ยินชื่อนี้ก็วันนี้ล่ะครับ
ชอบมากครับ Vim editor ใน
Complexity Thu, 03/11/2011 - 23:39
ชอบมากครับ Vim
editor ใน eclipse ก็ลง plugin vim ไว้เหมือนกันครับ
พอใช้คล่องแล้วแทบไม่ต้องขยับมือออกจากคีย์บอร์ดไปจับเม้าส์เลย
เป็น editor
shinosuke Thu, 03/11/2011 - 23:52
เป็น editor หลักที่ใช้เขียนโปรแกรมตอนนี้เลยครับ
พยายามทำตัวให้ชินอยู่ครับ -
mr_tawan Fri, 04/11/2011 - 00:46
พยายามทำตัวให้ชินอยู่ครับ - -'
ออกจะเกือบนอกเรื่องแต่ผมดันติ
aimakung Fri, 04/11/2011 - 01:52
ออกจะเกือบนอกเรื่องแต่ผมดันติดกับ Editor อย่าง Editplus อยู่ครับ
ล่าสุดหลุดจาก Nodepad++ (ที่ย้ายมาเพราะ FOSS) ไปใช้ Komodo Edit (Komodo IDE ย่อส่วน และเป็น FOSS เหมือนกัน) เพราะตอนใช้ Ubuntu ไปติดกับ Geany แล้ว เลยต้องมีพวก Autocomplete มานิดนึง
โดย Default แล้ว Komodo Edit ใช้ง่ายแบบแทบไม่ต้องตั้งค่าอะไรเลย ถือว่าสบายและรองรับหลายแพลตฟอร์มเหมือนกันครับ
แต่จริงๆ สาเหตุหลักคือ Geany พอ Port มาใช้ Windows + GTK+ บน Windows แล้วไม่รอดครับ อืดค้างไปเลย /:3
สรุป ไม่ชินกับ vi บน Ubuntu เลยใช้ Geany ส่วน Windows ใช้ Komodo Edit
Komodo Edit
jirayu Fri, 04/11/2011 - 12:34
In reply to ออกจะเกือบนอกเรื่องแต่ผมดันติ by aimakung
Komodo Edit ผมไม่ชอบตรงที่พอกด tab แล้วมันกลายเป็นใส่ space หลายๆทีไปแทนที่จะเป็น tab ยาวเหมือนชาวบ้านเขาครับ ไม่แน่ใจว่าปรับได้มั๊ย แต่พอรวมกับที่ว่ามันอืดกว่า Notepad++ ผมก็เลยกองไว้ในเครื่องนั่นเลย ใช่แค่เวลา ftp ไปเขียนโค้ดสดบนเว็บแค่นั้น (file manager มันรวมกับ ftp เนียนมาก ชอบตรงนี้)
เห็น logo แว่บแรก
Eka-X Fri, 04/11/2011 - 02:06
เห็น logo แว่บแรก นึกถึงน้ำยาขัดห้องน้ำ
ไม่เคยรู้จักเลยจริงๆ โปรแกรมตัวนี้ ปกติถ้าเป็นงานเขียนบทความจะใช้ WhiteMonkey เพราะติดใจเสียงคีย์บอร์ด
พยายามใช้หลายที
lancaster Fri, 04/11/2011 - 02:09
พยายามใช้หลายที สุดท้ายก็กลับไปตายรัง nano
ผมด้วย XD
hisoft Fri, 04/11/2011 - 12:22
In reply to พยายามใช้หลายที by lancaster
ผมด้วย XD
+1 รู้สึก nano มันดูสวยกว่า
ammii Fri, 04/11/2011 - 14:00
In reply to พยายามใช้หลายที by lancaster
+1 รู้สึก nano มันดูสวยกว่า vi (คิดไปเอง555+)
ถ้าพิมพ์ 2
agent5 Fri, 04/11/2011 - 03:20
ถ้าพิมพ์ 2 ภาษาจะใช้คำสั่งโดยไม่ต้องเปลี่ยนภาษา ให้เป็นภาษาอังกฤษก่อนยังไงอ้ะครับ
เคยใช้แล้วชอบมาตั้งแต่สมัยเริ
p_warawit Fri, 04/11/2011 - 08:54
เคยใช้แล้วชอบมาตั้งแต่สมัยเริ่มใช้ Unix ใหม่ๆ จนเดี๋ยวนี้ก็ยังใช้อยู่ ถึงจะไม่ค่อยคล่องเพราะนานๆ เขียนโค้ดทีก็เหอะ เป็น editor ที่ powerful มาก แต่ตอนเริ่มอาจจะใช้ยากสักหน่อย
อยากดูว่า คนที่ใช้เก่งๆ เขาใช้กันยังไง ลองดูที่นี่ได้ครับ
VIM From Novice To Professional By: Derek Wyatt #Part 1
ผมใช้เพราะต้องแก้ใข cron ใน
nextman13 Fri, 04/11/2011 - 09:42
ผมใช้เพราะต้องแก้ใข cron ใน linux
ใช้ vi แทบทุกวันเลยครับ
toooooooon Fri, 04/11/2011 - 09:53
ใช้ vi แทบทุกวันเลยครับ
ซึ่งนอกจากความสามารถที่เหนือช
panurat2000 Fri, 04/11/2011 - 10:53
ตันฉบับ => ต้นฉบับ
ระบบฏิบัติการ => ระบบปฏิบัติการ
ผมเพิ่งหัดใช้ตอนทำงานนี่แหละค
diewland Fri, 04/11/2011 - 11:44
ผมเพิ่งหัดใช้ตอนทำงานนี่แหละครับ อารมณ์เหมือนหัดพิมพ์ดีดใหม่เลย
แต่พอเริ่มคล่องแล้ว มันพิมพ์มันขึ้นจริงๆนะ
ใช้อยู่เรื่อยๆ แต่ไม่ค่อยบ่อย
xcession Fri, 04/11/2011 - 11:48
ใช้อยู่เรื่อยๆ แต่ไม่ค่อยบ่อย คงเพราะเรื่องภาษาไทย
ใช้แล้วไม่ต้องจับ Mouse
PiKO Fri, 04/11/2011 - 14:06
ใช้แล้วไม่ต้องจับ Mouse
สงสัยว่า อ่านว่า "วิม" หรือ
boonkhao Fri, 04/11/2011 - 15:14
สงสัยว่า อ่านว่า "วิม" หรือ "วี ไอ เอ็ม" ครับ เพราะว่า vi ผมเรียกว่า "วี ไอ"
อันนี้ไม่ทราบฮะ เพราะ vim
neizod Fri, 04/11/2011 - 18:31
In reply to สงสัยว่า อ่านว่า "วิม" หรือ by boonkhao
อันนี้ไม่ทราบฮะ เพราะ vim ผมก็เรียกรวมๆ ว่า vi
ไม่ค่อยได้ใช้บ่อยส่วนมากใช้
viroth Fri, 04/11/2011 - 16:24
ไม่ค่อยได้ใช้บ่อยส่วนมากใช้ SciTE กับ gedit ผมคงโปรไม่พอสินะ
โปร ไม่โปร
may3rd Fri, 04/11/2011 - 17:32
In reply to ไม่ค่อยได้ใช้บ่อยส่วนมากใช้ by viroth
โปร ไม่โปร ไม่เกี่ยวกับโปรแกรมที่ใช้หรอกครับ อยู่ที่ผลงานมากกว่า
+1
neizod Fri, 04/11/2011 - 18:19
In reply to โปร ไม่โปร by may3rd
+1
อ่านข่าวนี้แล้วรู้สึกว่าความ
Virusfowl Thu, 10/11/2011 - 14:11
อ่านข่าวนี้แล้วรู้สึกว่าความ geek ลดลงเหลือ 0 หรือแทบจะติดลบ ไม่เคยรู้จัก Vim มาก่อนเลย
แต่พออ่านเม้นแล้ว ก็ อ้อออ เราไม่ใช่สาย developer นี่เอง ~~ ทีแรกเข้าใจว่ามันเป็น text editer เหมือนพวก MS Word :P