หากคุณต้องการหัดใช้ลีนุกซ์ โดยเฉพาะอย่างยิ่งการเป็นผู้ดูแลระบบ (System Administrator) โปรแกรมหนึ่งที่ต้องฝึกใช้ให้เป็นคือ vi เพื่อใช้แก้ไขไฟล์บนลีนุกซ์ หรือ UNIX
ถึงแม้ว่าจะมีโปรแกรมอื่นเช่น nano ที่เป็นโปรแกรม editor ใช้แก้ไขไฟล์ได้เหมือนกัน และมักจะติดตั้งมาด้วย แต่ในบางเครื่องโดยเฉพาะ UNIX ประเภทอื่นๆ โดยส่วนใหญ่แล้ว จะไม่ได้ติดตั้งโปรแกรมนี้มา จะมีเฉพาะ vi เท่านั้น
ดังนั้น จะขอแนะนำวิธีการใช้ vi อย่างง่ายๆ ใช้คำสั่งพื้นฐานเพื่อแก้ไข และบันทึกไฟล์บนลีนุกซ์
หมายเหตุ หน้าจอหรือข้อความที่แสดงอาจแตกต่างกันไป ขึ้นอยู่กับเวอร์ชั่นของ vi และออปชั่นหรือคอนฟิกที่ตั้งค่าไว้ ในที่นี้จะทดสอบบน CentOS 6
สำหรับการหัดแก้ไขไฟล์ แนะนำให้ล็อกอินเป็น user ธรรมดา เพื่อป้องกันไม่ให้ ไปแก้ไขไฟล์สำคัญของระบบ
พิมพ์คำสั่ง vi เพื่อเข้าสู่โปรแกรม
[alice@cent6 ~]$ vi
หน้าจอ vi เมื่อเข้าครั้งแรก
อย่างแรกที่แนะนำให้ลองทำคือ ออกจากโปรแกรม vi ให้ได้
พิมพ์ :q เพื่อออกจาก vi
สังเกตเมื่อพิมพ์เครื่องหมาย : ด้านล่างซ้ายของหน้าจอจะขึ้นเครื่องหมาย : เพื่อแสดงว่าตอนนี้อยู่ในโหมด “Ex mode” รอรับคำสั่ง เช่น q (quit) ออกจาก vi
เมื่อพิมพ์ :q แล้วกด [Enter] จะเป็นการออกจาก vi กลับสู่พร้อมพต์
พิมพ์คำสั่ง vi เพื่อเข้าสู่ vi อีกครั้ง
[alice@cent6 ~]$ vi
โดยดีฟอลต์หากไม่ได้ระบุออปชั่นใดๆ ตอนพิมพ์คำสั่ง vi เมื่อเข้าสู่โปรแกรม จะเข้าสู่โหมด คำสั่ง “COMMAND” สิ่งที่พิมพ์ลงไปถือเป็นคำสั่งให้ vi ทำงานอย่างใดอย่างหนึ่ง
กดปุ่ม i เพื่อเข้าสู่โหมด “แก้ไข” ไฟล์ สังเกตหน้าจอด้านล่างซ้ายจะขึ้น “– INSERT –” เพื่อแสดงว่าตอนนี้อยู่ในโหมด “INSERT” ให้เราสามารถพิมพ์ข้อความแก้ไขไฟล์ได้
ปุ่ม i จะเป็นการแทรก (insert) ข้อความลงไปก่อนหน้าตัวอักษรที่เคอร์เซอร์อยู่ ลองพิมพ์ข้อความลงไป
เมื่อพิมพ์ข้อความเรียบร้อยแล้ว ต้องการจะบันทึกการแก้ไขไฟล์ (save)
ขั้นแรกให้กดปุ่ม [Esc] เพื่อกลับสู่โหมด “คำสั่ง” สังเกตด้านล่างซ้าย คำว่า “INSERT” จะหายไป
พิมพ์ :w hello.txt เป็นการสั่งให้เซฟ (write) ลงชื่อไฟล์ hello.txt
แล้วกด [Enter] เพื่อเซฟ สังเกตหน้าจอด้านล่าง แสดงข้อมูลชื่อไฟล์ที่เราเซฟลงไป
พิมพ์ :q แล้วกด [Enter] เพื่อออกจาก vi กลับสู่พร็อมพต์
โดยทั่วไปแล้ว เมื่อแก้ไขไฟล์เสร็จเรียบร้อย นิยมจะพิมพ์ :wq เพื่อสั่งเซฟและออกจาก vi ทีเดียวเลย
ใช้คำสั่ง cat เพื่อดูไฟล์ที่สร้างขึ้น
[alice@cent6 ~]$ cat hello.txt hello world
พิมพ์ vi ตามด้วยชื่อไฟล์ เพื่อแก้ไขไฟล์
[alice@cent6 ~]$ vi hello.txt
ทดลองกดปุ่ม hjkl ปุ่มใดปุ่มหนึ่งที่ละปุ่ม เพื่อทดลองเลื่อนเคอร์เซอร์ไปมา
- h ซ้าย
- j ลง
- k ขึ้น
- l ขวา
หรืออาจใช้ปุ่ม cursor ก็ได้ แต่แนะนำให้หัดใช้ปุ่ม hjkl สำหรับการเลื่อนเคอร์เซอร์ เพราะบางเครื่องหรือบน UNIX บางตัว ไม่สามารถใช้ปุ่ม cursor ได้
หมายเหตุ ในโหมด “คำสั่ง” ของ vi ตัวอักษรเล็กใหญ่ จะไม่เหมือนกัน
กดปุ่ม l เพื่อเลื่อนเคอร์เซอร์ไปขวาสุด หรืออยู่ตรงตัวอักษร d ของคำว่า world
แล้วกดปุ่ม a เพื่อเพิ่มข้อความต่อท้าย (append) ตัวอักษรที่เคอร์เซอร์อยู่ ในที่นี้คือตัวอักษร d
สังเกตว่าด้านล่างซ้าย ก็จะขึ้นข้อความ INSERT เพื่อแสดงว่าเข้าสู่โหมดแก้ไข
เมื่อเพิ่มข้อความเสร็จ กดปุ่ม [Esc] เพื่อกลับสู่โหมดคำสั่งอีกครั้ง
ต้องการแก้ไขข้อความอีกครั้ง ก็กดปุ่ม i หรือ a แก้ไขเสร็จก็กดปุ่ม [Esc] ทำสลับไปมาได้
หากต้องการจะลบ กด [Esc] เพื่อกลับสู่โหมดคำสั่ง เลื่อนเคอร์เซอร์ไปยังตัวอักษรที่ต้องการลบ กดปุ่ม x เพื่อลบตัวอักษรที่เคอร์เซอร์อยู่
พิมพ์ :wq เพื่อสั่งบันทึกไฟล์ และออกจาก vi
ใช้คำสั่ง cat เพื่อดูไฟล์ที่แก้ไข
[alice@cent6 ~]$ cat hello.txt hello world! second line
แต่ถ้าแก้ไขไฟล์ไปแล้ว ผิดพลาด ต้องการยกเลิก ไม่บันทึกหรือเซฟไฟล์ แล้วต้องการออกจาก vi
ในโหมดคำสั่ง
ถ้ากด :q เฉยๆ โปรแกรม vi จะฟ้องว่าไฟล์มีการแก้ไขไปแล้ว ยังไม่มีการเซฟ
ต้องพิมพ์ :q! เพื่อยืนยันว่าต้องการจะออกจาก vi โดยไม่ต้องการเซฟไฟล์
คำแนะนำสำหรับการเริ่มต้น ฝึกใช้ปุ่มที่ยกตัวอย่างมา และทำความเข้าใจระหว่างโหมด “คำสั่ง” และโหมด “แก้ไข” แค่นี้ก็เพียงพอในการใช้งาน vi เพื่อแก้ไขไฟล์ได้แล้ว