vim basics
บทนี้สอนผู้เริ่มต้นให้ใช้ `vim` แบบพื้นฐานด้วย flow ที่จำง่าย: เปิดไฟล์ เข้าโหมดพิมพ์ บันทึก และออกจากโปรแกรม โดยเน้นตัวอย่างผ่าน code block เพื่อเริ่มใช้งานจริงใน terminal ได้ทันที
บทนี้สอนผู้เริ่มต้นให้ใช้ `vim` แบบพื้นฐานด้วย flow ที่จำง่าย: เปิดไฟล์ เข้าโหมดพิมพ์ บันทึก และออกจากโปรแกรม โดยเน้นตัวอย่างผ่าน code block เพื่อเริ่มใช้งานจริงใน terminal ได้ทันที
`vim` คือ text editor ใน terminal ที่ใช้เปิดและแก้ไขไฟล์ข้อความได้ จุดสำคัญคือ `vim` ทำงานแบบมีโหมด เช่น โหมดคำสั่งและโหมดพิมพ์ จึงต่างจาก editor ทั่วไปที่พิมพ์ได้ทันที บทนี้จะโฟกัสพื้นฐานที่จำเป็นสำหรับผู้เริ่มต้นเท่านั้น
สมมติคุณ SSH เข้าเซิร์ฟเวอร์แล้วต้องแก้ไฟล์ config ด่วน คุณเปิดไฟล์ด้วย `vim`, แก้ข้อความไม่กี่บรรทัด, บันทึก แล้วออกได้ทันที งานเสร็จโดยไม่ต้องพึ่งโปรแกรมกราฟิกเพิ่มเติม
ตัวอย่างด้านล่างคือ flow พื้นฐานที่ใช้จริงบ่อยสำหรับผู้เริ่มต้น
ใน `vim` ให้จำว่า `i` = เข้าโหมดพิมพ์, `Esc` = กลับโหมดคำสั่ง, แล้วค่อยใช้ `:w`/`:q`/`:wq`
vim notes.txt
i
สวัสดี vim
กำลังฝึกแก้ไฟล์ใน terminal
Esc
:w
:q
vim todo.txt
i
- อ่านบทเรียน vim
- ฝึก i, Esc, :wq
Esc
:wq
vim index.html
i
<h1>Hello Vim</h1>
<p>Learning vim basics</p>
Esc
:wq
cat index.html
<h1>Hello Vim</h1>
<p>Learning vim basics</p>| คำสั่ง | หน้าที่ | เหมาะเมื่อไร |
|---|---|---|
| `vim` | เปิดและแก้ไขไฟล์ใน terminal | ต้องการแก้ไฟล์และควบคุมได้ละเอียด |
| `nano` | editor ใน terminal ที่ใช้ง่ายกว่า | ผู้เริ่มต้นที่ต้องการ flow ตรงไปตรงมา |
| `cat` | แสดงเนื้อหาไฟล์ทั้งหมด | ต้องการดูไฟล์เร็ว ๆ โดยไม่แก้ไข |
| `less` | เลื่อนอ่านไฟล์ยาวทีละส่วน | อ่านไฟล์ยาวโดยไม่แก้ไข |
ส่วนนี้เป็นแบบฝึกสอนผ่าน code block อย่างเดียว ฝึกตามลำดับ: 1) เปิดไฟล์ด้วย `vim` 2) กด `i` เพื่อพิมพ์ 3) กด `Esc` แล้วสั่ง `:wq` เพื่อบันทึกและออก 4) ตรวจผลด้วย `cat` ทำซ้ำหลายรอบกับไฟล์ต่างกันเพื่อให้คุ้นกับโหมดของ `vim`
บทนี้ตั้งใจสอนใช้งานด้วย code block เท่านั้น และไม่มี interactive lab panel
vim notes.txt
i
vim basics line 1
vim basics line 2
Esc
:wq
cat notes.txt
vim todo.txt
i
- practice vim
- use Esc before :wq
Esc
:wq
cat todo.txt
vim index.html
i
<h1>Vim Basics</h1>
<p>Practice with code block</p>
Esc
:wq
cat index.html