เป็น editor ที่เริ่มใช้ตัวที่ 2 ต่อจาก notepad เรื่องจริงนะ ;) 1
เริ่มเป็น programmer ตัวน้อยๆ ก็โดน vi ยัดเข้าปากเลยครับ T^T แม่มใช้ยากโพด
บ่นพอแระเริ่มเลยละกัน vi มี 2 version หลักๆ ที่เราจะได้ใช้กัน 1. vi 2. vim
vi -ของจริง ไม่ได้แต่ keyboard ฝั่งขวาเลย (ให้ถูกคือแตะไม่ได้เลย) พวก numpad ,ลูกศรต่างๆ
vim -ใช้ง่ายขึ้นเพราะว่า keyboard ฝั่งขวาใช้งานได้แล้ว
ในบางเครื่องเค้าก็จะให้พิมพ์ vi แล้วไปเรียก vim มาใช้เลยถ้าใครได้เจอ vim ก็ถือว่าโชคดีกว่านิดหน่อยละกัน แต่ว่าใน blog นี้ก็จะเรียกรวมกันไปเลยว่า vi นะครับ
vi มี 3 mode
1.พิมพ์ 2. command 3. last line
1.พิมพ์ 2
เข้าสู่ mode นี้ได้ด้วยการพิมพ์ i , a , s , o
i - insert พิมพ์แทรก ข้างหน้าตัวอักษร ,shift i พิมพ์แทรก หน้าบรรทัด
a - append พิมพ์ต่อท้ายตัวอักษร , shift a พิมพ์ต่อท้ายบรรทัด
s - sub... 3 แทนตัวอักษรหรือ replace นั่นเอง เช่น 3s replace 3ตัว, shift s แทนทั้้งบรรทัด
o - open newline ขึ้นบรรทัดใหม่ , shift o แทรกบรรทัดก่อนหน้า
ออกจาก mode นี้้ด้วยการกด escape (esc)
**ระหว่างพิมพ์ สามารถ auto-complete word ได้ด้วย ctrl+n เลือกคำด้วยการกด n ไปเรื่อยๆ โดยกด ctrl ค้างไว้ (เป็น word ที่เคยพิมพ์ไปแล้วเท่านั้น ไม่รู้ว่าถ้าจะเอาจาก lib ของภาษาต้องทำไง)
2. command เป็น mode แรกสุด ที่เข้ามาใน vi เพื่อที่จะทำการเปลี่ยนเป็น mode อื่น
ใน mode นี้ จะมีการเลื่อน key ได้ด้วย h j k l (ซ้าย ลง ขึ้น ขวา) ถ้าเป็น vim ก็เลือกด้วยลูกศรได้เลย
yy copy line
yw copy word
y10w copy 10 words
10yy copy 10 lines
dd cut line
dw cut word
d10w cut 10 words
10dd cut 10 lines
p วาง ,shift p วางก่อนหน้า
w เลื่อน cursor 1 word
10w เลื่อน cursor 10 words
3. last line การพิมพ์เข้าไปเป็นชุดคำสั่งโดยเริ่มจากการพิมพ์ : หรือ / ใน command mode ชุดคำสั่งที่นี่สนใจมีดังนี้
syntax highlight
:syntax off
:syntax on
line wrap
:set wrap
:set nowrap
goto line number
:16
ไปบรรทัดที่ 16
show line number
:set nu
:set nonu
แบ่ง vi เป็น 2 หน้า
:split <filename>
:split myhead.h
สลับ 2 หน้าด้วย ctrl+ww
บันทึก/ออก
:w #บันทึก
:wq #บันทึกแล้วออก
:q #ออก
:q! #บังคับออก
search word
/someword
สามารถกด n เพื่อหน้าต่อได้ next ๆๆๆ , หรือ shift n เพื่อหาย้อนกลับ
- เรื่องนี้มีเขียนไว้ที่อื่นด้วยนะ เช่น http://www.thaiopensource.org/?q=node/47
- ในตอนลบของ vi ถ้าลบด้วย backspace จะไม่เห็นว่าตัวอักษรหายไปแต่พิมพ์แทนได้เลย แต่ถ้าเป็น vim จะเห็นว่าตัวอักษรหายไป
- อะไรไรซักอย่างจำไม่ได้
ผมแถมพวก
ตอบลบแบ่งหน้าจอแนวนอนและแนวตั้ง
:split, :vs, แล้วก็ ใช้ ctrl+ww เพื่อเปลี่ยนจอ
แล้วก็ตัวที่ผมชอบคือ v ด้วยนะครับ
เป็น virtual mode กดแล้วก็เลื่อนซ้ายขวาบนล่างให้ครอบให้หมดแล้วก็เริ่มคำสั่งได้เลย
ชอบเป็นการส่วนตัว แถมด้วยครับ