vi โดยย่อ
การเลื่อนเคอร์เซอร์
- h, [<-] = ไปซ้าย
- l, [SPACEBAR] = ไปขวา
- k, - = ขี้นบน
- j, + = ลงล่าง
- b = ซ้าย 1 คำ
- w = ขวา 1 คำ
- 0, ^ = ต้นบรรทัด
- $ = ท้ายบรรทัด
- ( = ต้นประโยค
- ) = ท้ายประโยค
- { = ต้นย่อหน้า
- } = ท้ายย่อหน้า
- [RETURN] = บรรทัดต่อไป
- H = ต้นหน้า
- M = กลางหน้า
- L = ท้ายหน้า
- G = ท้ายไฟล์
- ^f = เลื่อนลง 1 หน้า
- ^b = เลื่อนขึ้น 1 หน้า
- ^d = เลื่อนลงครึ่งหน้า
- ^u = เลื่อนขึ้นครึ่งหน้า
ใช้ร่วมกับตัวเลข
- n? = ปฏิบัติคำสั่ง ? จำนวน n ครั้ง
3j = ลง 3 บรรทัด 4h = ซ้าย 4 อักขระ 5w = ขวา 5 คำ 1G = บรรทัดแรกของไฟล์
การยกเลิกสถานะ
เนื่องจาก vi เป็นเอดิเตอร์แบบมีสถานะ จึงต้องมีการเข้าสู่สถานะต่างๆ และการออกจากสถานะนั้นๆ- [ESC] = ยกเลิกสถานะอื่นๆ เพื่อกลับสู่สถานะปกติ
สถานะการลบ
- x = ลบ 1 อักขระ
- dw = ลบตั้งแต่เคอร์เซอร์จนถึงต้นคำหน้า
- d$, D = ลบตั้งแต่เคอร์เซอร์จนถึงท้ายบรรทัด
- dL = ลบตั้งแต่บรรทัดปัจจุบันจนถึงท้ายจอภาพ
- dh = ลบ 1 อักขระก่อนถึงเคอร์เซอร์
- dd = ลบบรรทัดปัจจุบัน
- dG = ลบจากบรรทัดปัจจุบันจนถึงท้ายไฟล์
- d1G = ลบจากบรรทัดปัจจุบันจนถึงต้นไฟล์
ใช้ร่วมกับตัวเลข
d3w, 3dw = ลบ 3 คำ
5dd, 4dj = ลบ 5 บรรทัด จากบรรทัดปัจจุบัน
( 4dj=ลบบรรทัดปัจจุบัน และอีก 4 บรรทัดถัดไป )
4dk = ลบบรรทัดปัจจุบัน และอีก 4 บรรทัดก่อนหน้า
5Gdd = ลบบรรทัดที่ 5
การแทรกและแก้ไข
สถานะ : a=append=เติม, i=insert=แทรก, c=change=เปลี่ยน, o=open=เปิด, s=substitute=แทน, r=replace=แทนที่- i = แทรกอักษรก่อนเคอร์เซอร์
- a = แทรกอักษรหลังเคอร์เซอร์
- I = แทรกอักษรต้นบรรทัด
- A = แทรกอักษรท้ายบรรทัด
- o = แทรกบรรทัดว่างต่อจากบรรทัดปัจจุบัน
- O = แทรกบรรทัดว่างก่อนหน้าบรรทัดปัจจุบัน
- c$, C = เปลี่ยน = ลบเนื้อความตั้งแต่เคอร์เซอร์ไปจนท้ายบรรทัด พร้อมทั้งเตรียมเพิ่มข้อความ
- cw = ลบ 1 คำ พร้อมทั้งเตรียมเพิ่มข้อความ
- cc = ลบทั้งบรรทัด พร้อมทั้งเตรียมเพิ่มข้อความ
- r = แทนที่ 1 อักขระใต้เคอร์เซอร์
- R = แทนที่อักขระตั้งแต่ใต้เคอร์เซอร์เป็นต้นไป จนกว่าจะออกจากสถานะนี้
- s = ลบ 1 อักขระ พร้อมทั้งเตรียมเพิ่มข้อความ
- S = ลบบรรทัดปัจจุบัน พร้อมทั้งเตรียมเพิ่มข้อความ
ใช้ร่วมกับตัวเลข
5inewtext = แทรก newtext 5 ครั้ง 5rg = แทนที่ด้วย g 5 ตัว
หมวดค้นหา
- / = ค้นหา
- n, / = ค้นซ้ำ นับจากบรรทัดปัจจุบันลงไป
- N = ค้นซ้ำ นับจากบรรทัดปัจจุบันขึ้นไป
คัดลอก, แปะ, ยกเลิก, ทำซ้ำ
- yy, Y = คัดลอกบรรทัดปัจจุบัน
- yw = คัดลอกคำปัจจุบัน
- p = แปะลง หลังจากเคอร์เซอร์
- P = แปะลง ก่อนหน้าเคอร์เซอร์
- ddp = ลบบรรทัดปัจจุบัน และแปะลงทันที = การสลับบรรทัด
- xp = การสลับคำ
* การลบ จะมีการเก็บสิ่งที่ลบไว้ในความจำ ดังนั้น ถ้ามีคำสั่งแปะตามมา สิ่งที่แปะลงมาก็คือสิ่งที่เพิ่งถูกลบไปนั่นเอง
ใช้ร่วมกับตัวเลข
y4w = คัดลอก 4 คำ
ใช้ร่วมกับคำสั่งพิเศษ+ตัวเลข
- :?t? = คัดลอกจากบรรทัด ? ไปบรรทัด ?
- :?m? = ย้ายจากบรรทัด ? ไปบรรทัด ?
:t5 = คัดลอกจากบรรทัดปัจจุบัน ไปบรรทัด 5 :m5 = ย้ายจากบรรทัดปัจจุบัน ไปบรรทัด 5 :9t5 = คัดลอกจากบรรทัด 9 ไปบรรทัด 5 :9m5 = ย้ายจากบรรทัด 9 ไปบรรทัด 5
คำสั่งพิเศษ
- :wq, :x, ZZ = จัดเก็บและออกจากโปรแกรม
- :w = จัดเก็บ
- :w FILENAME = จัดเก็บลงในไฟล์ FILENAME
- :w! = จัดเก็บ โดยละเลยข้อกำหนดของระบบ
- :w! FILENAME = เขียนทับ FILENAME โดยไม่เตือน
- :q = ออกจากโปรแกรม
- :q! = ออกจากโปรแกรม โดยไม่เตือน
- :! COMMAND = สั่งรัน COMMAND ของเชลล์
- :e FILENAME = เปิดไฟล์ FILENAME
- :e! FILENAME = เปิดไฟล์ FILENAME โดยไม่เตือนถึงการจัดเก็บไฟล์เก่า
- :r FILENAME = แทรกไฟล์ FILENAME ตรงตำแหน่งเคอร์เซอร์ปัจจุบัน
- :f, ^g = แสดงแถบสถานะ ตรงด่านล่างซ้ายมือ
ค้นหาและแทนที่
ยืมโครงสร้างมาจากคำสั่ง sed (stream editor) ในระบบยูนิกส์- :1,$ s/old/new/g = ค้นหา old แทนที่ด้วย new เริ่มตั้งแต่ 1=ต้นไฟล์ จนถึง $=จบไฟล์ โดยกำหนดค่าการค้นเป็น g=global
แจ่ม
ขอบคุณมากครับ
ที่ผ่านมาใช้ nano ตลอด เคยพยายามใช้ VI หลายครั้งแล้วก็ไม่เป็นสักที
สงสัยได้ฤกษ์หัดจริงๆจังๆซะแล้ว
Re: vi โดยย่อ
ขอบคุณมากครับ
ผมเองก็ใช้ vi มาก็หลายปี แต่แค่งูๆ ปลาๆ รู้เืท่าที่ใช้(น้อยมาก)เท่านั้น
เห็นเด็กๆ ยุคใหม่ (รู้เลยว่าเราแก่) หัวใจ nano กันทั้งน้านครับพี่น้องคร้าบ!
มี pdf english version ที่ผมเคย save ไว้มาฝากครับ
เยี่ยมครับ
ผมก็ชื่นชอบ vi มากครับ แต่ไม่ค่อยใช้แบบขั้นสูงเท่าไหร่ แค่แก้ไฟล์ธรรมดาๆ มีโน๊ตย่อแบบนี้ช่วยคงยิ่งสะดวกขึ้นมากครับ
ขอบคุณมากครับ
ผมไม่เคยใช้ nano เลย ใช้ แต่ vim
มีหลายคำสั่งที่ผมยังไม่เคยทราบ
อันที่ไม่
อันที่ไม่มีในนี้ แต่ผมคิดว่ามีประโยชน์คือ v เพื่อเข้า visual mode ครับ ลากๆ แล้วจะ yy หรือ dd ก็สะดวกดี
vim specific
อันนี้มีเฉพาะใน vim นะครับ ไม่มีใน vi ตัวอื่น :)
เสริม: vim มี visual mode 3 แบบ:
v - character mode
V - line mode
Ctrl-V - block mode
ทน vi ไม่ได้
ผมทนใช้ vi ไม่ค่อยได้ พอลงเครื่องเสร็จก็ aptitude install vim ก่อนเลย :-P
ถ้าเขียนโปรแกรมยาวๆบน Desktop ค่อยลง Emacs
gvim ก็น่าใช้นะ
ขอเพิ่มเติม เพื่อเติม ความมันส์ในการใช้ vim
vim สามารถใช้
:syntax on หรือ
:sy on เพื่อทำ syntax highlight
:vs filename เปิดไฟล์ไว้ข้างบน ซ้าย มือบนหน้าต่างเดียวกันครับ
:sp filename เปิดไฟล์ไว้ข้าง บน บนหน้าต่างเดียวกันครับ
หรือถ้าชอบแบบเป็น theme มาเลยก็
:colo [colo scheme]
ยอดเยี่ยม
ชอบคอมเมนต์ทุกท่านเลยครับ
ทำให้ผมได้รู้จัก vim, visual mode, syntax color ก็ด้วยคอมเมนต์นี่ละครับ
เลยได้รู้ว่า ตัวเรานี้โง่มานานมาก ;D ;D ;D
และได้เห็นประโยชน์ของการสร้างสังคมความรู้ในเว็บอย่างชัดเจนครับ :)
crontab editor
ปกติ editor ที่เป็นค่าปริยายของระบบคือ nano
เวลาเราสั่ง crontab -e เขาจะใช้ nano ในการแก้ไขไฟล์
หากต้องการเปลี่ยนเป็น vi ต้องสั่ง export ตัวแปร EDITOR
ผมใช้วิธีแก้ไฟล์ /etc/profile ตรง ๆ
# vi /etc/profile
... EDITOR="/usr/bin/vi" export EDITOR ...
เมื่อล๊อกอินครั้งใหม่ เราจะได้ vi เป็น editor ครับ
system-wide default editor
ถ้าจะเซ็ต default editor แบบมีผลทั้งระบบนะครับ:
# update-alternatives --config editor
แล้วก็เลือกตัวที่ต้องการจากตัวเลือกที่มี









Recent comments
2 days 15 hours ago
3 days 7 hours ago
1 week 5 days ago
3 weeks 1 hour ago
3 weeks 6 days ago
4 weeks 15 hours ago
4 weeks 1 day ago
4 weeks 1 day ago
4 weeks 2 days ago
4 weeks 4 days ago