(Vim) Text Editor เก่า แต่ เก๋า #1 : Intro

Chanon BagIdea
2 min readFeb 15, 2017

--

สารบัญ

Intro

ตามธรรมเนียม เรามาเริ่มต้นด้วย Vim คืออะไร?

ถ้าเอายาวๆ ก็คือ มันคือ Text Editor ที่ใช้เขียนใน Terminal นั้นเอง เดิมทีนั้นมันชื่อว่า Vi ซึ่งสมัยก่อนมันไม่มีเม้าส์ เพราะฉะนั้น แนวคิด Vi เลยใส่คีย์ลัดต่างๆเข้าไปเพื่อให้มันสามารถใช้งานได้ง่ายขึ้น โดยใช้ คีย์บอร์ดล้วน ซึ่งต่อมา Bram Moolenaar นึกสนุกเอา Vi มาพัฒนาต่อ โดยใส่คีย์ลัดต่างๆเพิ่มเข้าไป แล้วบังเอิ๊ญญญญ มีคนสนใจมากๆ (Vim มาจาก Vi IMprove) นั้นเอง ก็กลายเป็นทำจริงๆจัง ซึ่ง Vim เป็น Open Source ซึ่ง Vim จะมี คียต่างๆในการ Move หรือ ทุกอย่างแทนเม้าส์ได้หมดเลย ทำให้เราไม่ต้องยกมือจากคีย์บอร์ดเลย

เกร็ดเล็กน้อย : ในสมัยก่อน Vim เปิดรับบริจาค ซึ่งจะนำเงินบริจาคไปช่วยเหลือ เด็กที่ Uganda สังเกตุจาก หน้า Main จะมีข้อความ Help poor children in Uganda!

หลังจากสรุปแบบยาวๆไปแล้วคน ขี้เกียจอ่านก็อ่านสรุปได้เลยว่า มันคือ Text Editor ตัวหนึ่งที่ ใช้ Keyboard ในการ Move, Write, Copy, Paste … ทั้งหมด

ก่อนอื่นเลย ทำไมต้องแนะนำ Vim ในเมื่อตัวอื่นๆก็มี (*-*) ต้องบอกก่อนเลยว่า ไม่ได้ขายของ เพียงแต่อยากนำสิ่งดีๆมาให้ลองกัน ซึ่งเจ้า Vim มันจะไม่เหมือน Text Editor ทั่วๆไป มันไม่เหมือนแบบ Sublime หรือ VSCode ซึ่งทั้งสองถึงจะเป็น Text Editor ที่ต่างกัน มี Plugin ต่างกัน มีหน้าตาต่างกันกัน แต่วิธีการเขียน “เหมือนกัน” …. ถึงตรงนี้ บางคนคงถามว่า เอ้า!! แล้วแบบไหนหละที่ต่าง …. ใจเย็นๆนะครับ เจ้า Vim นี่แหละ ที่มันต่างกันมากๆ เพราะ มันไม่จำเป็นต้องใช้เม้าช่วย และถ้าฝึกจนคล่องแล้ว การเขียนโค้ดจะลื่นไหลและไวกว่าการเขียนแบบปกติที่ใช้ เม้าส์ผสมกับคีบอร์ดแน่นอน

หลายๆคน คงจะคิดว่ามันน่าจะดูยุ่งยากกว่า ใช้งานยากกว่า …. แต่เชื่อเถอะครับถ้าฝึกจนชำนาญแล้วหละก็ ความคิดเหล่านั้นจะเปลี่ยนไป …. ผมเองก็ใช้ Editor มาหลายตัว ไม่ว่าจะทั้ง Sublime, VSCode, Atom, Geany, Gedit, Notepad++, Edit Plus, …. (แต่ไม่เคยลอง Emacs นะ บางตำนานกล่าวไว้ว่า ผู้ใช้ Vim และ Emacs มักไม่ถูกกัน “มั่วไปเรื่อย ฮ่าๆ”) กลับเข้าฝั่ง …. ซึ่งจากที่ใช้ๆมา ผมบอกเลยตอนแรกผมคิดว่า Vim ห่วยสุด ช้าก็ช้า กว่าจะพิมได้ และล้มเลิกไปครั้งนึง แล้วทีนี้กลับมาใช้ใหม่เพราะชื่นชอบใน Linux (ตอนแรกใช้ Ubuntu ตอนนี้มาใช้ Arch แทนละรู้สึกมันเหมาะกับผมมากกว่า แล้ว Vim ก็เป็น Editor พื้นฐานของ Linux เช่นกัน) …. เข้าเรื่อง …. จากนั้นผมก็ ฮึดกลับมาฝึกอีกรอบ รอบนี้ความรู้เดิมกลับมา ช้าก็ช้า กว่าจะพิมได้ แต่หลังจากอดทนใช้ไปสักอาทิตย์นึง รู้สึกเริ่มชิน แล้วจะรับรู้ได้เลยว่าเขียนแบบปกตินั้นแหละช้ากว่า จนตอนนี้ก็ใช้มาปีนึงแล้ว พอจะบอกอะไรได้บ้าง ตอนนี้กลายเป็นว่า ติดการใช้ Key Vim ไปสะแล้ว…..

หวังว่า เป็นการ Intro ที่จะสร้างกำลังใจเล็กๆ ให้เตรียมพร้อมสำหรับ Vim (คนที่อยากคิดจะลอง Vim ควรเตรียมใจมาให้พร้อม ไม่งั้น จะไม่มีทางใช้งานได้แน่ๆ ….

“แค่ Editor มันขนาดนี้เลยหรอเนี่ย พูดสะเวอร์เชียว O_o …. ที่พูดนี่ไม่เวอร์นะครับ เรื่องจริงเลย”

แล้วสุดท้ายนี้ อยากจะบอกว่า ไม่ต้องกลัวว่าเราฝึก Vim ไปแล้วจะไม่ได้ใช้ครับ สมัยนี้ แทบทุกจะ IDE หรือ แทบทุก Text Editor นั้น สามารถลง Plugin Vim เสริมเข้าไปได้ให้เราสามารถใช้ งานแบบ Vim Style ได้ครับ สมัยนี้ Vim อยุ่ทุกที่ครับ บาง IDE ติดฟังชั้น Vim Mode หรือ Fake Vim ให้เลย ตัวอย่างเช่น QTCreator (โปรแกรมเขียน C++ ซึ่งสามารถเขียนแบบ QT Style และแบบ C++ ปกติทั่วไปได้ “ชอบตัวนี้มากๆๆๆๆๆ”)

เพียงแต่ว่า Vim แท้ๆ สามารถลง Plug-in เสริมความสามารถให้เราสามารถเร่งสปีดการเขียนได้อีก (แต่พวก Vim ที่เป็น Plugin เสริมก็ใช้งานได้เยี่ยมแล้วหละครับ) ผมใช้ พวก Plugin Vim หรือ Vim Mode ตลอดถ้าหากมีเหตุให้ต้องใช้ IDE

อ้อแล้วก็ Vim มันเก่าแก่มากๆ เพราะเหตุนั้นทำให้ Plugin ทั้งหมดของ Vim มันเยอะมากกกกกกกกกกกกกก รองรับเกือบทุกอย่าง สามารถใช้เขียนคู่กับ Unity ได้ สามารถใช้เขียน Arduino พร้อม Compile + Upload ได้ภายในโปรแกรมเลย

ตบท้ายด้วยภาพของ Vim เล็กน้อย

Vim on Linux: Arch Linux and i3wm

Vim รองรับการ split รวมถึง Directory Tree

ก่อนจบ

ใน Window จะเป็นชื่อ gVim แทนนะครับ ซึ่งหลายคนก็อาจจะเรียกไม่เหมือนกันที่เคยได้ยินมา ก็จะมีทั้ง ย่อมาจาก GUI Vim, Graphic Vim, Gnome Vim หรืออะไรก็แล้วต่อ แต่มันคือ Vim ที่ใส่ GUI เข้าไปนั้นเอง

//จบสำหรับ Intro :) ไว้จะเริ่มเข้าจริงๆจัง Part ต่อไปนะคร้าบบบบ

Part 2

--

--