การใช้ Vi editor ใน Linux
เอามากันลืมครับ อิอิ
ถ้ากล่าวถึง Text Editor ในระบบปฏิบัติการ MS Windows หลายๆ ท่านคงนึกถึง NotePad และถ้ากล่าวถึง Text Editor ในระบบปฏิบัติการ Unix และ Linux คงจะหนีไม่พ้นเจ้า VI Text Editor รุ่นเก๋า ที่เป็นคู่หูของระบบปฏิบัติการ Unix มาช้านาน ด้วยระบบที่ออกแบบมาใช้งานให้มีปุ่มใช้งานน้อย และไม่มีเมนูบาร์ให้คลิก และคลิก แต่มากด้วยประสิทธิภาพ จึงทำให้ใครต่อใคร ที่ใช้งานใหม่ๆ เริ่มงงกับเจ้า VI (อาจเป็นเพราะคุ้นกับเจ้า NotePad มากเกินไปก็ได้ :-)) ใหม่ๆ ก็อย่างงี้แหละครับ เมื่อใช้ไปสักระยะ จะรู้ว่ามันง่าย ไม่ต้องขยับเม้าส์มาก (ฮา) เพื่อไม่เป็นการเสียเวลาครับ เรามาว่ากันถึงการใช้งานกันแบบ Step by Step กันเลยดีกว่าครับ
เริ่มต้นใช้งาน
ครั้งแรกที่เราเริ่มต้นใช้งาน ให้เราพิมพ์ดังนี้ครับ vi ในกรณีเปิดไฟล์ใหม่ แต่ถ้ามีไฟล์เดิมอยู่แล้วก็ให้พิมพ์ vi filename (filename คือชื่อไฟล์ที่เราต้องการจะเปิด)
การใช้งาน
เมื่อเราเปิดโปรแกรม vi ขึ้นมาแล้วอยากพิมพ์ข้อความ เราก็สามารถทำได้ดังนี้ครับ ให้กดปุ่ม I เพื่อทำให้ vi อยู่ในสถานะ Insert Mode ก่อน จากนั้นก็ทำการพิมพ์ข้อความที่ต้องการได้เลยครับ และเพื่อทำให้การพิมพ์ข้อความราบรื่น ผมมีตารางการใช้งานของคำสั่งใน vi มาให้ดูครับ
Key                     ความหมาย / ผลการใช้
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
ey                      ความหมาย / ผลการใช้
a                        เพิ่มข้อมูลต่อจาก cursor
A                        เพิ่มข้อมูลต่อจากท้ายบรรทัด
i                         เพิ่มข้อมูลหน้า cursor
I (ไอใหญ่)           เพิ่มข้อมูลที่ต้นบรรทัด
o (โอเล็ก)            แทรกบรรทัดด้านล่าง cursor
O (โอใหญ่)          แทรกบรรทัดด้านบน cursor
Last Line Mode
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 ทั้งหมดที่มีอยู่
:s/old word/new word     หา old word แล้วแทนที่ด้วย new word คำแรกที่เจอใน line นั้น
:s/old word/new word/g   หา old word แล้วแทนที่ด้วย new word ทั้งหมดใน line นั้น
:%s/old word/new word/g  หา old word แล้วแทนที่ด้วย new word ทั้งหมดในไฟล์
April 13th, 2013 at 6:22 am
I do accept as true with all of the concepts you have presented on your post. They are very convincing and can definitely work. Still, the posts are very quick for newbies. Could you please prolong them a bit from next time? Thanks for the post.