วันอาทิตย์ที่ 9 มีนาคม พ.ศ. 2557

การใช้งาน vi editor

VI editor เรียกได้ว่าเป็น editor คู่บุญของระบบ Linux และ Unix ผู้ใช้งานจำเป็นอย่างที่สุดที่จะต้องสามารถใช้งาน vi editor ได้อย่างคล่องแคล่ว ดังนั้นเรามาทำความเข้าใจเกี่ยวกับเจ้า vi editor กันดีกว่า

เรียกใช้ vi editor
การเรียกใช้ vi editor ก็ง่ายๆให้พิมพ์ว่า vi ตามด้วยชื่อไฟล์ เช่น #vi filename.txt
จะเป็นการ edit ไฟล์ filename.txt (ถ้าไม่มีจะสร้างขึ้นใหม่เลย)

โหมดการทำงาน มี 2 โหมดคือ

1. command mode ใช้สำาหรับรับคำาสั่ง ของผู้ใช้ เช่น จะเข้าสู่ insert mode บันทึกไฟล์ ออกจากโปรแกรม  ฯลฯ
2. insert mode ใช้สำาหรับแก้ไขไฟล์ เช่น พิมพ์ข้อมูลเพิ่ม ลบคำเมื่อเราเปิดโปรแกรม vi ขึ้นมาโปรแกรมจะเข้าสู่ command mode เราจะพิมพ์ข้อความลงไปไม่ได้จนกว่าเราจะเข้าสู่ 
insert mode โดยการกดปุ่ม i (หรืออื่นๆ) เมื่อเราทำางานใน insert modeเราสามารถแก้ไขข้อมูลในไฟล์ได้ ถ้าเราต้องการบันทึกไฟล์ หรือออกจากการใช้งาน vi ก็ต้องกลับเข้าสู่ command mode โดยการกดปุ่ม Esc เข้าสู่ insert mode เพื่อแก้ไขข้อความ
a เพิ่มข้อความที่อยู่ข้างหลัง
A เพิ่มข้อความต่อท้ายบรรทัดปัจจุบัน
i แทรกข้อความที่อยู่หน้าเคอร์เซอร์
I แทรกข้อความที่ต้นบรรทัดปัจจุบัน
o เพิ่มบรรทัดว่างๆใหม่อีกหนึ่งบรรทัด ถัดจากบรรทัดที่เคอร์เซอร์อยู่
O เพิ่มบรรทัดว่างๆใหม่อีกหนึ่งบรรทัด เหนือจากบรรทัดที่เคอร์เซอร์อยู่

การบันทึกไฟล์และออกจากโปรแกรม (command mode)
ถ้าทำางานอยู่ใน insert mode เข้าสู่ command mode โดยการกด Esc แล้วค่อยพิมพ์คำาสั่ง
ZZ ออกจากโปรแกรมบันทึกไฟล์
:q! ออกจากโปรแกรมไม่บันทึกไฟล์
:wq ออกจากโปรแกรมบันทึกไฟล์

การเลื่อนเคอร์เซอร์ไปยังตำาแหน่งต่างๆ ใน 1 จอภาพ
h เลื่อนเคอร์เซอร์ไปทางซ้าย 1 ตัวอักษร
j เลื่อนเคอร์เซอร์ไปยังบรรทัดล่าง 1 บรรทัด
k เลื่อนเคอร์เซอร์ไปยังบรรทัดบน 1 บรรทัด
l เลื่อนเคอร์เซอร์ไปทางขวา 1 ตัวอักษร
เลื่อนเคอร์เซอร์ทีละคำ ประโยค ย่อหน้า
w เลื่อนเคอร์เซอร์ไปยังตัวอักษรแรกของคำาที่อยู่ถัดไป
e เลื่อนเคอร์เซอร์ไปยังตัวอักษรสุดท้ายของคำาที่อยู่ถัดไป
b เลื่อนเคอร์เซอร์ไปยังตำแหน่งแรกของคำาที่อยู่ก่อนหน้า

การเลื่อนจอภาพ
^F เลื่อนจอภาพเพื่อดูข้อมูลที่อยู่ในหน้าถัดไป
^B เลื่อนจอภาพเพื่อดูข้อมูลที่อยู่ก่อน 1 หน้า
^D เลื่อนจอภาพไปอีกครึ่งจอภาพ
^U เลื่อนจอภาพย้อนกลับไปอีกครึ่งจอภาพ
^R หรือ ^L ให้แสดงจอภาพปัจจุบันอีกครั้งหนึ่ง

การลบ
dd ลบเฉพาะบรรทัดที่เคอร์เซอร์อยู่
dw ลบคำตั้งแต่ตัวอักษรที่เคอร์เซอร์อยู่ไปจนถึงตัวอักษรแรกของคำาต่อไป
de ลบคำตั้งแต่ตัวอักษรที่เคอร์เซอร์อยู่ไปจนถึงตัวอักษรสุดท้ายของคำาปัจจุบัน
db ลบคำตั้งแต่ตัวอักษรที่อยู่หน้าเคอร์เซอร์ไปถึงอักษรแรกของคำาปัจจุบัน
d^ ลบคำตั้งแต่ตัวอักษรที่อยู่หน้าเคอร์เซอร์ไปจนถึงตัวอักษรแรกของบรรทัดที่ไม่ใช่ space
d$ ลบคำตั้งแต่ตัวอักษรที่เคอร์เซอร์อยู่ไปจนถึงตัวสุดท้ายของบรรทัด

การโยกย้ายและการทำสำเนา
ym นำาข้อความที่ต้องการเก็บลงใน buffer (m=จำานวนบรรทัด)
yy นำาข้อความทั้งบรรทัด ที่เคอร์เซอร์อยู่ไปเก็บใน buffer
p นำาข้อความใน buffer มาวางหลังเคอร์เซอร์

การยกเลิกคำาสั่ง
u undo
. redo

การค้นหาคำ
/Test หาคำว่า Test
/This is test หาวลี This is test
/^Test หาคำว่า Test หาคำว่า Test ที่ปรากฏที่ต้นบรรทัด
/Test$ หาคำว่า Test หาคำว่า Test ที่ปรากฏที่ท้ายบรรทัด
/^$ หาบรรทัดที่เป็นบรรทัดว่างๆ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น