มือใหม่ได้เวลา VIM (พอแล้วกับ Nano)
ใช่แล้วคับ ผมใช้ Nano มาทั้งชีวิต สิ่งที่ทำประจำคือ nano <file name>
จากนั้นก็เลือน cursor ขึ้นลง (บางทีถ้าไฟล์นั้นมี 100 บรรทัด ก้อเลื่อน arrow ไล่ไปเรื่อยๆ เพราะเราใช้ mouse ใน nano ไม่ได้), พอแก้ไขเสร็จแล้วก็ ctrl + x
, กด y
เพื่อ save
จนมาวันนึง…เสียเวลาหว่ะ 55
พอๆเรามาใช้ vim กันดีกว่า ทำไมเทพๆเขาชอบใช้กันล่ะ ว่าแล้วก้อมาเริ่มกันเลย
อ่อ…ถ้าเราเจอว่าในเครื่องมีแต่ vi ก็ชิวๆนะคับ ใช้กันได้ แค่ vim จะเป็นตัวที่ใหม่กันเท่านั้นเอง เลยมี feature เพิ่มมากขึ้น ซึ่งย่อมาจากvi (Visual Editor) vs vim (Vi Improved)
ปกติ Ubuntu server จะมี vim
ติดตั้งมาอยู่แล้ว ฉะนั้นเริ่มกันเลย
- เปิดไฟล์
vim love.txt
2. เมื่อเปิดไฟล์เข้ามาได้แล้วจะมีอยู่ 3 modes คือ
Insert mode
: ใช้พิมพ์ข้อความ + แก้ไขCommand mode
: คำสั่งเฉพาะ เช่น บันทึกไฟล์ ออกจากโปรแกรม เป็นต้น จริงๆคือหน้าแรกที่เราเข้ามานั่นแหละVisual mode
: เอาไว้เลือกข้อความเป็นชุดๆ กด v ตอนเข้ามา แต่ผมไม่ค่อยได้ใช้
3. เมื่อเปิดไฟล์เข้ามาแล้วเราสามารถเลื่อน cursor ได้อย่างรวดเร็วแบบนี้
h, j, k, l
: จะเป็นการเลื่อน cursorซ้าย, ลง, ขึ้น, ขวา
เหมือนกับ arrowsw
(word): ใช้เลื่อนไปคำถัดไป ถ้าบรรทัดนั้นมีคำเดียว ก็จะไปบรรทัดใหม่ให้เลยe
(end): ใช้เลื่อนไปท้ายคำ ของคำนั้นๆ เช่นlove you
ก็จะเลื่อนไปที่คำว่าe
b
(back): จะย้อน cursor กลับ คือไปที่ตัวเลขของคำๆนั้น คือตรงข้ามกับ e นั่นเอง เช่นlove you
ถ้ากด e
ไปที่ตัวe
,กด b
จะย้อนกลับมาที่ตัวl
นั่นเอง0
หรือ^
: กดศูนย์หรือ hat จะกลับไปที่ตัวแรกของบรรทัด เช่นlove you
พอกดศูนย์จะกลับไปที่l
H, M, L
(high, medium, low): อันนี้มีประโยชน์มากนะ เป็นการเลื่อน cursor ไปที่ด้านบน, ตรงกลาง หรือ ด้านล่างของจอ ตามลำดับเลยนะ (ใช้ตัวพิมพ์ใหญ่)Ctrl + e
,Ctrl + d
,Ctrl + f
: อันนี้ก็มีประโยชน์เช่นกัน จะขยับหน้าจอลงตามนี้เลย e = 1 บรรทัด, d = ครึ่งหน้า, f = หนึ่งหน้า (ที่ใช้บ่อยๆคือCtrl + d
)Ctrl + y
,Ctrl + u
,Ctrl + b
: จะขยับหน้าจอขึ้นบ้างคล้ายกับชัดบนเลยคือ y = 1 บรรทัด, u = ครึ่งหน้า, b = หนึ่งหน้า (ที่ใช้บ่อยคือctrl + u
)gg
= ไปบนสุดของไฟล์G
= ไปล่างสุดของไฟล์กด shift + ลูกศรขึ้นลง
ก็ได้นะ (nano ทำไม่ได้)
4. จากนั้นถ้าเราเจอจุดที่ต้องการแก้ ทำได้โดยกด i
เพื่อเข้าสู่ Insert mode
เพื่อจะได้แก้ไขไฟล์ได้
- กด
x
จะลบ 1 ตัวอักษรที่ cursor ทับอยู่ - กด
s
จะลบอักษร 1 ตัวเช่นกัน แล้วเริ่มพิมพ์ หรือ ทำอะไรก็ได้จากตรงนั้นเลย - แต่ถ้ากด
S
(ตัวพิมพ์ใหญ่) จะลบออกทั้งบรรทัดเลย แล้วเริ่มพิมพ์จากตรงนั้นเช่นกัน หรือจะ paste อะไรก็ได้ - กด
d
2 ครั้ง จะลบทั้ง paragraph เลยนะ
5. เมื่อแก้ไขไฟล์เสร็จแล้วตามนี้เลยนะ
:q!
= ใช้สำหรับออกจาก VIM โดยที่ไม่ต้อง save
:wq
= save + quit
สรุปนะ ที่ผมใช้บ่อยๆจริงๆแค่ (ซึ่งปกติจะแก้ไขจาก editor เป็นหลักจ้า)
- กด
vim <file name>
w
หรือb
เพื่อไปที่ด้านหน้า หรือ หลังของคำ- กด
H
,M
,L
เพื่อเลื่อน cursor ขึ้นไปในตำแหน่งต่างๆของหน้าจอตอนนั้น gg
,G
เพื่อเลื่อน cursor ไปบนสุด หรือ ล่างสุดของไฟล์Ctrl + d
,Ctrl + u
เพื่อเลื่อนหน้าจอให้ขยับทีละครึ่งหน้า (u ขึ้น, d ลง)- จากนั้นกด
i
เพื่อแก้ไขข้อความได้เลย - เมื่อต้องการออกกด
Esc
+ จากนั้น save ด้วย:wq