
วันนี้ผมได้มีโอกาสได้ใช้ vim เป็นครั้งแรก หลังจากที่ใช้ vi มานาน แต่บอกตรงๆว่าก็ยังไม่เห็นความแตกต่างเท่าไหร่ แต่คงจะได้เห็นเร็วๆ นี้ มาวันนี้ ก็มีโอกาสได้รื้อฟื้น การใช้ vi ขั้นพื้นฐานต่างๆ ซึ่งบางอย่าง ผมเองก็เพิ่งรู้ เอ้อ..มันมีงี้ด้วยวุ้ย ก็เลยเอามาเล่าให้ฟัง อ่ะมาเริ่มกันเลยดีกว่า
ก่อนอื่น เราคงต้องมารู้กันก่อนว่า vi/vim เวลาเราเข้าไปใช้งาน มันจะมีอยู่ด้วยกัน 2 mode คือ
- command mode อันนี้เป็น default mode เข้าไปปุ๊ป ก็เจอ mode นี้ปั๊ป
- insert mode อันนี้ก็เอาไว้ พิมพ์อย่างเดียว
ในการ สลับการใช้งานระหว่าง cmd | ins mode นั้นก็สามารถสลับได้โดยใช้ ปุ่ม esc
เรามาว่ากันที่ command mode กันดีกว่าครับ เพราะ insert mode คงไม่มีอะไรมาก..
- i (insert) : เข้าสู่ mode insert
- a (append) : เข้าสู่ mode insert แต่อยู่ท้าย ณ ตำแหน่งที่ cursor อยู่
- x (extirpate) : ลบตัว อักษร ณ ตำแหน่งที่ cursor อยู่
- w (word) : ไปคำคำแรก ของบรรทัดนั้น ถ้ากดซ้ำก็จะเลื่อนไปยัง คำถัดไป โดยในการแบ่งคำแต่ละคำนั้น จะใช้ white space หรือ punctuation ในการแบ่ง เช่น aaa bbb@ccc อันนี้จะถือว่าเป็น 3 คำ คือ aaa bbb และ ccc
- W (big word) : เหมือน w เพียงแต่จะ แบ่งโดยใช้ white space เพียงอย่างเดียว
- b (back) : กระโดดไปคำคำหน้า ณ ที่ cursor อยู่ จะใช้ white space หรือ punctuation ในการแบ่ง
- B (big back) : กระโดดไปคำคำหน้า ณ ที่ cursor อยู่ จะใช้ white space ในการแบ่งคำเพียงเท่านั้น
- G (go) : ไปบรรทัดสุดท้าย
- 1G (big go) : ไปบรรทัดที่ 1 อันนี้เราสามารถ ใช้เป็น 3G , 5G เพื่อกระโดดไปที่ บรรทัดที่ 3 และ 5 ตามลำดับ
- ^ : ไปที่ต้นบรรทัด ณ ที่ cursor อยู่
- $ : ไปที่ท้ายบรรทัด ณ ที่ cursor อยู
- yy p : ทำการ copy บรรทัด ณ cursor อยู่ทั้งบรรทัด แล้วก็วาง ที่บรรทัดถัดไป ตรงนี้เราสามารถประยุกต์ใช้การ copy หลายบรรทัด ได้โดย 6yy p ก็คือ copy บรรทัด ณ ที่ cursor อยู่ แล้วก็นับลงไปอีก 6 บรรทัด แล้วก็วางต่อไป
- dd : delete 1 บรรทัด ณ ที่ cursor อยู่
คราวนี้เราลองเอา command ต่างๆเหล่านี้มา implement ใช้ครับ เช่น Continue reading →