[Part1] Coding on Vim: ทำความรู้จัก Vim

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

 

Vim คืออะไร

สำหรับมือใหม่ในการเขียนโปรแกรม หรือคนที่ไม่เคยทำงานกับพวก Unix มาเลยจะไม่เข้าใจเลยว่า Vim คืออะไร ซึ่งปกติมันคือ Editor แบบ Commend Line บน OS ตระกูล Unix ทั่งหลาย ซึ่งช่วยให้พวกที่ทำงานกับระบบที่ไม่มี GUI สามารถแก้ไฟล์งานได้ทั่งในคอมทั่วไป และ Server โดย Vim เป็นโปรแกรมที่ถูกเขียนหรือโคลนมาจาก Vi สร้างโดยคุณ Bill Joy และนี่เองเป็นต้นกำเนิดโดยคุณ Bram Moolenaar ได้สร้าง Vim ขึ้นมาโดยมี Code base มาจาก Stevie editor และท้ายที่สุด Vim ในปี 1991 (2534) ก็กลายเป็น Editor ที่โด่ดดังและใช้กันแพร่หลายในปัจจุบัน เรื่องหน้ารู้อีกอย่างนึงคือ Vim มันย่อมาจาก Vi IMproved และเราก็เรียกมันย่อๆ ว่า Vim (ผมออกเสียงว่า วิม บางคนก็เรียก วิ้ม แล้วแต่ถนัด) และ Vi ต่างจาก Vim ตรงที่ Vim เราสามารถลง Plugin ช่วยการทำงานต่างๆ ได้ด้วย เหมือนกับ IDE หรือ Atom, Sublime เลย เดียวเราจะมีสอนติดตั่งกันอดใจรอไว้บทความหน้า ก่อนอื่นเรามาดูหน้าตามันก่อน

 

การติดตั่ง Vim

ปกติแล้วถ้าเป็น OS ตระกูล Linux เช่น Ubuntu หรือ Distro อื่นๆ Vim จะไม่เป็นโปรแกรมที่มา Default เหมือนกัน Mac OS ดังนั่นใครไม่ได้ใช้ Mac ก็ต้องลงเอง วิธีการลงก็ไม่ยาก เปิด Terminal ขึ้นมาแล้วสั่งตามนี้เลย

เมื่อติดตั่งเสร็จก็ใช้งานได้ทั่นที ตามนี้

แบบแรกคือเรียกชื่อไฟล์ที่ต้องการจะเปิดหรืแก้ไข หรือชี้ไปที่ path ที่เราต้องการ และแบบที่สอนเปิดไฟล์ ณ ตำแหน่งที่อยู่ของ terminal ปกติก็ไว้เปิดไฟล์ทั่งโฟเดอร์ก็จะใช้วิธีนี้กัน

 

การใช้งานเบื้องต้นและโหมดการทำงาน

เมื่อติดตั่งและเปิดไฟล์กันเป็นแล้วก่อนจะใช้งานจริง เราต้องทำความเข้าใจเรื่องการใช้งานของโปรแกรมสะก่อน เพราะแน่นอนมันไม่ได้ใช้งานแบบปกติทั่วไปแน่นอน แถมเราก็ไม่สามารถใช้เมาส์ในการบังคับ Cursor หรือใช้งานเหมือนกันโปรแกรมอื่นๆ ที่มี GUI ทั่วไปได้ เพราะมันงาน Commend Line โหมดการทำงานของ Vim นั่นมี 3 โหมด ก่อนอื่นมาดู 2 โหมดหลักก่อน

Normal mode – คือโหมดที่ใช้ในการรอรับคำสั่งจากเราเพื่อบอกว่าให้โปรแกรมมันทำอะไรเช่น ออกจากโปรแกรม (เดียวๆ ยังไม่ได้ใช้จะออกละหรอ 55+) การสร้างไฟล์, การเปิดไฟล์​ บันทึกไฟล์ หรือสลับโหมดการใช้งาน การเลือกไฟล์ที่จะทำ ปกติเวลาเปิด Vim จะเป็นโหมดนี้อยู่แล้วเป็นค่าเริ่มต้น

Insert Mode – คือโหมดที่ใช้ในการเขียนไฟล์นั่นเอง เวลาจะแก้ไฟล์หรือพิมพ์งานก็เข้าที่โหมดนี้โดยการอยู่ที่ Normal mode และกด ปุ่ม I (ไอ) และถ้าต้องการสลับกลับมาที่ Normal mode ก็กด Esc มันก็ทำการสลับกลับมาเพื่อรอรับคำสั่งจากต่อว่าต้องการทำอะไร

 

Normal mode จะเห็นว่ามันเป็นหน้าจอว่างๆ มีแค่ status file เท่านั่นครับ

 

Insert mode หลังจากกด I ก็จะเข้าสู่ Insert mode ทั่นที และจะเป็นว่ามุมล่างจะมี status บอกว่าตอนนี้อยู่ที่ Insert mode ตรงนนี้เราก็แก้ไขไฟล์ได้แล้ว

 

การย้าย Cursor ใน Normal mode

เมื่อเราไม่สามารถใช้เมาส์ได้ แน่นอนว่าเราก็ต้องมีคีย์ที่ใช้เลือนตำแหน่งเพื่อทำงานกับมัน ถ้านึกไรไม่ออกเลยก็ ปุ่ม ซ้าย ขวา ขึ้น ลง ของคีย์บอร์ดนั่นแหละครับ แต่นั่นไม่ใช้วิธีที่ถูกต้องจริงๆ แล้วมันใช้ h(ซ้าย) j(ล่าง) k(บน) l(ขวา) เพื่อย้านตำแหน่งของ Cursor เพื่อให้เราเลือกไฟล์ เลือกบรรทัดที่จะพิมพ์ เลือกคำต่างๆ เสริมอีกนิดนึงจริงๆ เราสามารถใช้ปุ่มบนคีย์บอร์ดได้ทั่ง Insert และ Normal โหมด สำหรับใครที่ไม่ถนัด ใช้คีย์ตามที่ผมบอกข้างบน (ต่างๆจริงก็ควรจะหัดใช้ หรือใช้ผสมกันก็ได้แล้วแต่ชอบ)

 

การย้าย Cursor ผ่านคำใน Normal Mode

เราจะใช้ 3 คีย์หลักๆ คือ w ย้ายไปอักษรตัวแรกของคำ e ย้ายไปอักษรสุดท้ายของคำ และกด b เพื่อเลือนกลับมา คำก่อนหน้า บางคน งง ย้ายผ่านคำเป็นยังไง ผมจะยกตัวอย่างเช่น ผมมีตัวอย่างเขียนใน vim ว่า Lorem Ipsum is simply dummy text of the printing” ให้สีแดงเป็น cursor และผมกด w มันก็ย้ายมาอยู่ที่ “Lorem Ipsum is simply dummy text of the printing” และกดต่อไปก็จะย้ายไปที่ “Lorem Ipsum is simply dummy text of the printing” แบบนี้ ในขณะเดียวกันถ้าผมใช้ปุ่ม e โดยให้ Lorem Ipsum is simply dummy text of the printing” โดยให้สีแดง cursor อาจจะอยู่ท้ายคำหรือหน้าคำก็ได้ ถ้าผมกดต่อไปมันก็จะเลื่อนไปอยู่ “Lorem Ipsum is simply dummy text of the printing” และกดถัดไปก็เลือนไปเรื่อยๆ และถ้าอยากกลับมาก็แค่กด b

 

การย้าย Cursor ใน Insert mode 

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

 

การใช้งาน Virtual Mode

และโหมดสุดท้ายที่ผมได้เกิ๊นไปตอนต้นอันนี้จะใช้ ในการทำ select เหมือนเราลากเมาส์เพื่อไฮไลท์คำนั่นเอง โดยก็ง่ายมากแค่กด v แล้วก็เลือกคำหรือบรรทัดที่เราต้องการทำงานกับมัน ซึ่งโหมดนี้ไว้ทำไรปกติก็จะไว้ลบคำหรือหลายๆ คำ หรือไว้ทำ ctrl-c , ctrl-p นั่นเอง

 

การ Save ไฟล์

เมื่อแก้ไขงานเสร็จเราก็คงอยากจะ save มันใช่ไหมก็ไม่อยาก ก่อนอื่นกลับมาที่ Normal Mode ก่อนจากนั่นพิมพ์ : (colon) แล้วตามด้วย w (write) แล้วก็กด Enter เท่านี้เราก็จะเซฟไฟล์ได้แล้ว

 

การออกจาก Vim

เมื่อเข้ามาแล้วแก้ไขงานเสร็จ ก็ต้องออกจากโปรแกรม ไม่ควรกดปิด terminal เฉยๆ นะครับ อันนี้ไม่ควรทำ เพราะเวลาเราเปิด vim มันจะมีไฟล์ตัวนึงที่ระบบสร้างมาเพื่อเก็บ history ชื่อว่า .swp ถ้าเราปิด terminal ไปเฉยๆ จะทำให้ระบบไม่ลบไฟล์นั่นทิ้งเมื่อกลับมาเปิดใหม่มันจะถามให้ให้ทำงานต่อจากเดิมที่ .swp ทิ้งไว้ หรือเราสามารถลบมันทิ้งเองได้นะครับ และการออกจาก vim ที่ถูกคือ พิมพ์  : (colon) แล้วตามด้วย q  แล้วก็กด Enter และถ้าเกิดไปแก้ไฟล์โดยบังเอิญแต่จะออกไฟล์โดยไม่เซฟโปรแกรมมันจะไม่ยอมให้ออกนนะครับ วิธีจะออกได้ต้องพิมพ์ :q! เท่านั่นจึงจะออกได้

 

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

 

Facebook Comments