มือใหม่ได้เวลา VIM (พอแล้วกับ Nano)

Grassroot Engineer
2 min readNov 10, 2024

--

ใช่แล้วคับ ผมใช้ 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 ติดตั้งมาอยู่แล้ว ฉะนั้นเริ่มกันเลย

  1. เปิดไฟล์

vim love.txt

กด vim เข้ามาจะหน้าตาแบบนี้

2. เมื่อเปิดไฟล์เข้ามาได้แล้วจะมีอยู่ 3 modes คือ

  • Insert mode: ใช้พิมพ์ข้อความ + แก้ไข
  • Command mode: คำสั่งเฉพาะ เช่น บันทึกไฟล์ ออกจากโปรแกรม เป็นต้น จริงๆคือหน้าแรกที่เราเข้ามานั่นแหละ
  • Visual mode: เอาไว้เลือกข้อความเป็นชุดๆ กด v ตอนเข้ามา แต่ผมไม่ค่อยได้ใช้

3. เมื่อเปิดไฟล์เข้ามาแล้วเราสามารถเลื่อน cursor ได้อย่างรวดเร็วแบบนี้

  • h, j, k, l: จะเป็นการเลื่อน cursor ซ้าย, ลง, ขึ้น, ขวา เหมือนกับ arrows
  • w (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 เป็นหลักจ้า)

  1. กด vim <file name>
  2. w หรือ b เพื่อไปที่ด้านหน้า หรือ หลังของคำ
  3. กด H, M, L เพื่อเลื่อน cursor ขึ้นไปในตำแหน่งต่างๆของหน้าจอตอนนั้น
  4. gg, G เพื่อเลื่อน cursor ไปบนสุด หรือ ล่างสุดของไฟล์
  5. Ctrl + d, Ctrl + u เพื่อเลื่อนหน้าจอให้ขยับทีละครึ่งหน้า (u ขึ้น, d ลง)
  6. จากนั้นกด i เพื่อแก้ไขข้อความได้เลย
  7. เมื่อต้องการออกกด Esc + จากนั้น save ด้วย :wq

Refs:
https://medium.com/@methuz/%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5%E0%B9%83%E0%B8%8A%E0%B9%89-vim-fe4199820a17

If you think it’s useful for you, just clap your hands 👏 to be encouraged me.

GRASSROOT ENGINEER 😘

--

--

Grassroot Engineer
Grassroot Engineer

Written by Grassroot Engineer

ATM engineer who is interested in CODING and believe in EFFORT. — https://grassrootengineer.com

No responses yet