สำนักวิทยบริการและเทคโนโลยีสารสนเทศ (สวส.)

Office of Academic Resources and Information Technology

คำสั่ง และการใช้งานโปรแกรม VI - Editor

วันนี้ขอแชร์ความรู้ต่ออีกทีครับ ในระบบยูนิกซ์ทั่วไปจะต้องมีเครื่องมือสำหรับเอาไว้ตกแต่งแก้ไขไฟล์เอกสารประจำไว้อยู่ตัวหนึ่ง ซึ่งก็คือ vi (อ่านว่า วี-ไอ) ในตอนเริ่มแรกของการใช้งาน vi แทบทุกคนจะบอกว่า การใช้งานและการทำความเข้าใจนั้นยากกว่า Editor ที่เป็นพวก Pulldown Menu Driven บนดอส เช่นพวก เวิร์ดจุฬาฯ หรือ Q-Editor มาก (ในยูนิกซ์จะเป็นพวก Emacs หรือ pico)

        แต่หากคุณพยายามฝึกฝนใช้งานไปสักพักหนึ่งแล้ว คุณจะรู้สึกว่า vi เป็น Editor ที่มีการใช้งานได้อย่างมีประสิทธิภาพมากที่สุดตัวหนึ่ง และคุณสมบัติต่างๆ ของ vi ที่มีมาให้ก็จะสามารถทำให้คุณใช้งาน vi ได้อย่างสะดวกสบายมากขึ้น นอกจากนี้การที่คุณใช้งาน vi เป็น จะทำให้คุณได้เปรียบ กว่าการใช้งาน Editor ตัว อื่นๆ เพราะ vi เป็น Editor พื้นฐานที่จะต้องมีประจำไว้กับยูนิกซ์ทุกตัวอยู่แล้ว ในขณะที่ Editor ตัวอื่นๆคุณอาจหาไม่พบใน ยูนิกซ์รุ่นอื่นๆก็ได้..

วิธีการใช้งานอย่างคร่าวๆ 

vi จะมีรูปแบบการใช้งาน (mode) อยู่สามแบบคือ 

Command mode 

Insert mode 

Last line mode 

Command mode 

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

              h                   เลื่อน cursor ไปทางซ้ายทีละตัวอักษร 

              j                    เลื่อน cursor ลง 1 บรรทัด 

              k                    เลื่อน cursor ขึ้น 1 บรรทัด 

              l (แอล)           เลื่อน cursor ไปทางฃวาทีละตัวอักษร 

             w                    เลื่อน cursor ไปทางฃวาทีละคำ 

             b                     เลื่อน cursor ไปทางซ้ายทีละคำ 

             $                     เลื่อน cursor ไปท้ายบรรทัด 

             0 (ศูนย์)           เลื่อน cursor ไปต้นบรรทัด 

            nG                    ไปยังบรรทัดที่ n หากไม่ใส่ n จะไปบรรทัดสุดท้าย 

           Ctrl+f                  เลื่อนหน้าจอไปข้างหน้า (เลื่อนลง) ทีละหน้า 

           Ctrl+b                 เลื่อนหน้าจอถอยหลัง (เลื่อนขึ้น) ทีละหน้า 

           Ctrl+d                 เลื่อนหน้าจอไปข้างหน้า (เลื่อนลง) ทีละครึ่งหน้าจอ 

           Ctrl+u                 เลื่อนหน้าจอถอยหลัง (เลื่อนขึ้น) ทีละครึ่งหน้าจอ 

           Ctrl+L                 Refresh หน้าจอ 

           [[                       ไปยังต้นไฟล์ 

           ]]                        ไปยังท้ายไฟล์ 

          yy Copy                 ข้อความทั้งบรรทัด 

          yw Copy                ข้อความทั้งคำ 

          yG Copy                ถึงท้ายไฟล์ 

         y$ Copy                 ถึงท้ายบรรทัด 

         p (เล็ก)                  Paste หลัง cursor 

         P (ใหญ่)                 Paste หน้า cursor 

         cw                        พิมพ์ทับทีละ word 

          c$                        พิมพ์ทับจนถึงท้ายบรรทัด 

          cG                         พิมพ์ทับจนถึงท้ายไฟล์ 

r พิมพ์ทับทีละ 1 ตัว 

R พิมพ์ทับจนกว่าจะกด Esc 

u Undo การกระทำครั้งล่าสุด 

x (เล็ก) ลบตรง cursor 

X (ใหญ่) ลบหน้า cursor 

dw ลบคำ 

dd ลบทั้งบรรทัด 

d$ ลบจากตำแหน่ง cursor จนท้ายบรรทัด 

d0 (ดีศูนย์) ลบจากตำแหน่ง cursor จนต้นบรรทัด 

dG ลบจากตำแหน่ง cursor จนท้ายไฟล์ 

Insert mode

        ในโหมดนี้เป็นโหมดที่ทำให้คุณสามารถทำการแก้ไขข้อความหรือพิมพ์ข้อความลงไปได้ คุณสามารถเปลี่ยนจาก Command mode เข้ามาอยู่ใน Insert mode ได้โดยการกดปุ่ม " i " หรือปุ่มอื่นๆ ที่ใช้ได้ (ดูด้านล่าง) และคุณก็จะสามารถพิมพ์ข้อความต่างๆ ได้ และเมื่อคุณต้องการจะกลับไปยัง Command mode อีกที คุณก็สามารถทำได้โดยการ กดปุ่ม " Esc " ตัวอักษรที่ใช้ใน mode นี้ที่สำคัญได้แก่

Key ความหมาย / ผลการใช้ 

a  เพิ่มข้อมูลต่อจาก cursor 

A เพิ่มข้อมูลต่อจากท้ายบรรทัด  

i เพิ่มข้อมูลหน้า cursor 

I (ไอใหญ่) เพิ่มข้อมูลที่ต้นบรรทัด 

o (โอเล็ก) แทรกบรรทัดด้านล่าง cursor 

O (โอใหญ่) แทรกบรรทัดด้านบน cursor 

Last line mode

        จะเป็นโหมดที่อนุญาตให้คุณสามารถ ใช้คำสั่งเพิ่มเติมของ vi ได้ โดยคุณจะต้องกดปุ่ม " : " (โค-ลอน) ซึ่ง vi จะแสดงเป็นพร้อมต์ รอรับคำสั่งอยู่ด้านล่างสุด ของจอภาพ คุณสามารถทำการสั่งโดยการพิมพ์คำว่า " wq " แล้วกด Enter เพื่อทำการบันทึกข้อความลงไฟล์ แล้วออกจากโปรแกรม vi เป็นต้น นอกจากนี้ยังมี คำสั่งอื่นๆ อีก ดังนี้..

Key ความหมาย / ผลการใช้ 

:q ออกจากโปรแกรม 

:w บันทึก 

:wq บันทึกแล้วออกจากโปรแกรม 

:w! filename บันทึกไฟล์ทับ filename 

:e! filename open filename 

:/string ค้นหาข้อความที่ต้องการ โดย string คือข้อความที่ต้องการ 

:help ดูคำสั่งต่างๆ 

:set nu แสดงหมายเลขบรรทัด 

:set nonu ไม่แสดงหมายเลขบรรทัด 

:set window=20  กำหนดขนาดหน้าต่างของ vi กรณีนี้กำหนดเป็น 20 บรรทัด 

:set all  ตรวจสอบค่าของ option หลังคำสั่ง set ทั้งหมดที่มีอยู่

การเริ่มใช้งาน vi 

คุณสามารถเริ่มต้นการใช้งาน vi ได้โดยใช้คำสั่ง 

vi (filename)

โดยที่ filename คือชื่อไฟล์ที่คุณต้องการจะบันทึกข้อความ ตัวอย่างเช่น 

vi lab2a.c

จะเป็นการสร้างไฟล์ที่ชื่อ lab2a.c ขึ้นมา แต่หากมีไฟล์นี้อยู่แล้วก็จะทำการอ่านข้อความที่มีอยู่ในไฟล์นี้ขึ้นมา ในตัวอย่างนี้เราจะถือว่าเป็นการสร้างไฟล์ใหม่ขึ้นมา และสำหรับในระบบ Unix นี้คุณสามารถสร้างไฟล์ ที่ไม่มีนามสกุลได้เช่น

vi out_test

ก็จะได้ไฟล์ชื่อว่า out_test

การคอมไพล์ 

เมื่อคุณเขียนโปรแกรมใน vi แล้วต้องการดูผลของโปรแกรมก็สามารถ คอมไพล์ ได้โดยการใช้คำสั่ง

gcc -o File Source

โดย File หมายถึงชื่อไฟล์ที่คุณต้องการหลังจากคอมไพล์แล้ว ส่วน Source ก็คือไฟล์ .c ที่เขียนไว้ ... หลังจากใช้คำสั่งนี้แล้ว คุณจะได้ไฟล์ เพิ่มมา ลองดูตัวอย่าง

gcc -o program lab2a.c

ตัวอย่างนี้ คุณจะได้ไฟล์ program* เพิ่มขึ้นมา และคุณสามารถรันโปรแกรมที่ได้มานี้โดยการพิมพ์ว่า

./program (จุด + สแลซ + ชื่อไฟล์)

ที่มา url:http://talk.ict.in.th/184