Vim Editor
Vim คืออะไร
Vim (Vi IMproved) เป็น Open Source ซึ่งพัฒนาโดยอ้างอิงมาจาก Vi Editor Vim เป็น text editor ที่นิยมบน OS ตระกูล Unix แต่ใช้ learning curve ที่สูงกว่าการใช้ text editor อื่นๆ
การเข้าสู่ Vim Editor
ทำได้โดยใช้คำสั่ง vim ตามด้วยชื่อไฟล์ เช่น
จะทำการเปิดไฟล์ชื่อ foo
หากไฟล์ไม่มีอยู่ จะทำการสร้างไฟล์ (เมื่อทำการสั่งบันทึก)
Mode ของ Vim
vim ประกอบด้วย 2 mode หลักๆ คือ Command mode และ Insert mode
Command mode
เป็น mode ที่ใช้ในการพิมพ์คำสั่งต่างๆ
Insert mode
เป็น mode ที่ใช้ในการพิมพ์ข้อความ
การสลับ mode
ใช้ ESC เพื่อเปลี่ยนจาก Insert mode กลับไปยัง Command mode
ในกรณีต้องการเปลี่ยนจาก Command mode เข้าสู่ Insert mode จะสามารถทำได้หลายวิธี เช่น
i
เปลี่ยนเข้าสู่ Insert mode โดยแทรก cursor ที่ข้างหน้าตำแหน่งปัจจุบัน
a
เปลี่ยนเข้าสู่ Insert mode โดยแทรก cursor ที่ตำแหน่งถัดจากตำแหน่งปัจจุบัน
I
เปลี่ยนเข้าสู่ Insert mode โดยแทรก cursor ที่ต้นบรรทัด
A
เปลี่ยนเข้าสู่ Insert mode โดยแทรก cursor ที่ท้ายบรรทัด
การออกจาก Vim Editor
พิมพ์คำสั่งเมื่ออยู่ใน command mode
:q
ออกจาก Editor
:q!
ออกจาก Editor โดยไม่บันทึกการเปลี่ยนแปลง
:wq
บันทึกการเปลี่ยนแปลง และออกจาก Editor
การเลื่อน Cursor ใน Vim Editor
พิมพ์คำสั่งเมื่ออยู่ใน command mode
h
เลื่อน cursor ไปทางซ้าย
j
เลื่อน cursor ขึ้น
k
เลื่อน cursor ลง
l
เลื่อน cursor ไปทางขวา
0
เลื่อน cursor ไปต้นบรรทัด
$
เลื่อน cursor ไปท้ายบรรทัด
1G
เลื่อน cursor ไปบรรทัดแรกสุดของไฟล์
G
เลื่อน cursor ไปบรรทัดท้ายสุดของไฟล์
:100
jump ไปที่บรรทัดหมายเลข 100
w
เลื่อน cursor ไป word ถัดไป
b
เลื่อน cursor ไป word ก่อนหน้า
H
เลื่อนไปบรรทัดแรกสุดของ screen
M
เลื่อนไปบรรทัดกลางของ screen
L
เลื่อนไปบรรทัดท้ายสุดของ screen
Command อื่นๆที่สำคัญใน Vim
:set nu
แสดงเลขบรรทัด
:set nonu
ไม่แสดงเลขบรรทัด
x
ลบอักษรที่ตำแหน่ง cursor อยู่
r
แทนที่อักษร ณ ตำแหน่งที่ cursor อยู่ด้วยอักษรอื่น
u
ย้อนกลับสิ่งที่แก้ไขไป
dd
ลบทั้งบรรทัดที่ cursor อยู่
d3d
ลบจากตำแหน่งที่ cursor อยู่ไป 3 บรรทัด
yy
copy บรรทัดที่ cursor อยู่
y3y
copy 3 บรรทัดนับตั้งแต่บรรทัดที่ cursor อยู่
p
paste สิ่งที่ copy หรือ delete มา ต่อท้าย cursor
P
paste สิ่งที่ copy หรือ delete มา ข้างหน้าตำแหน่ง cursor
dw
ลบตั้งแต่ตำแหน่ง cursor จนจบ word
d^
ลบตั้งแต่ตำแหน่ง cursor จนถึงต้นบรรทัด
d$
ลบตั้งแต่ตำแหน่ง cursor จนถึงท้ายบรรทัด
การ Search ใน Vim
/foo
search หาคำว่า foo ใช้ n เพื่อเลื่อนหาตัวถัดไป ใช้ N เพื่อเลื่อนกลับไปหาตำแหน่งก่อนหน้า
การแทนที่ pattern ใน Vim
:%s/foo/bar/
search หาคำว่า foo และทำการเปลี่ยนเป็น bar ทุกบรรทัด โดยมีผลกับ pattern แรกที่เจอในแต่ละบรรทัดเท่านั้น
:%s/foo/bar/g
search หาคำว่า foo และทำการเปลี่ยนเป็น bar ทุกบรรทัด โดยมีผลกับ pattern ที่เจอทั้งหมดในแต่ละบรรทัด เช่นถ้าบรรทัดใดมีซ้ำกัน ก็แทนที่ทุกจุดที่ซ้ำ
:2,5s/foo/bar/
search หาตั้งแต่บรรทัดที่ 2 ถึง5 หากเจอ foo ให้ทำการเปลี่ยนเป็น bar โดยมีผลกับ pattern แรกที่เจอในแต่ละบรรทัดเท่านั้น
:2,5s/foo/bar/g
search หาตั้งแต่บรรทัดที่ 2 ถึง5 หากเจอ foo ให้ทำการเปลี่ยนเป็น bar โดยมีผลกับ pattern ที่เจอทั้งหมดในแต่ละบรรทัด
Advance Command
:!ls
สั่ง command ls
:sh หรือ :!bash
เข้าสู่ sub shell ออกจาก sub shell ด้วย Ctrl+D
:f newfile
เปลี่ยนชื่อไฟล์ที่จะเซฟด้วย :w
เป็น newfile
:w otherfile
บันทึกการเปลี่ยนแปลงลงไฟล์ otherfile
แต่หากมีการเปลี่ยนแปลงหลังจากนั้น แล้วบันทึกด้วย command :w
การเปลี่ยนแปลงนั้นจะเกิดกับไฟล์หลัก ไม่ใช่ otherfile
:e otherfile
เปิดไฟล์ otherfile ขึ้นมาแก้ไข
:e #
สลับระหว่างไฟล์ที่เปิดอยู่
:cd /home
ไปยัง directory /home
Last updated
Was this helpful?