vi โดยย่อ
ปรับปรุงครั้งที่ 1 : 50-09-06
กลับมาช่วยกันซ่อมสร้างบทความกันใหม่นะครับ
สรุปคำสั่ง vi โดยย่อ จาก vi manual
การเลื่อนเคอร์เซอร์
- 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 = ลบจากบรรทัดปัจจุบันจนถึงต้นไฟล์
- J = join เชื่อมบรรทัดถัดไปกับบรรทัดปัจจุบัน
ใช้ร่วมกับตัวเลข
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, /[ENTER] = ค้นซ้ำ นับจากตำแหน่งปัจจุบันลงไป
- N, ?[ENTER] = ค้นซ้ำย้อนกลับ นับจากตำแหน่งปัจจุบันขึ้นไป
คัดลอก, แปะ, ยกเลิก, ทำซ้ำ
- yy, Y = คัดลอกบรรทัดปัจจุบัน
- yw = คัดลอกคำปัจจุบัน
- p = แปะลง หลังจากเคอร์เซอร์
- P = แปะลง ก่อนหน้าเคอร์เซอร์
* การลบ จะมีการเก็บสิ่งที่ลบไว้ในความจำ ดังนั้น ถ้ามีคำสั่งแปะตามมา สิ่งที่แปะลงมาก็คือสิ่งที่เพิ่งถูกลบไปนั่นเอง
- ddp = ลบบรรทัดปัจจุบัน และแปะลงทันที = การสลับบรรทัด
- xp = การสลับคำ
ใช้ร่วมกับตัวเลข
y4w = คัดลอก 4 คำ
ใช้ร่วมกับคำสั่งพิเศษ+ตัวเลข
- :?t? = คัดลอกจากบรรทัด ? ไปบรรทัด ?
- :?m? = ย้ายจากบรรทัด ? ไปบรรทัด ?
:t5 = คัดลอกจากบรรทัดปัจจุบัน ไปบรรทัด 5 :m5 = ย้ายจากบรรทัดปัจจุบัน ไปบรรทัด 5 :9t5 = คัดลอกจากบรรทัด 9 ไปบรรทัด 5 :9m5 = ย้ายจากบรรทัด 9 ไปบรรทัด 5
- u = ยกเลิกการแก้ไขครั้งล่าสุด
- U = ยกเลิกการแก้ไขทั้งหมด ในบรรทัดปัจจุบัน
- . = ทำซ้ำการแก้ไขครั้งล่าสุด
คำสั่งพิเศษ
- :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 = แสดงแถบสถานะ ตรงด่านล่างซ้ายมือ
- :h, :help = แสดงความช่วยเหลือ (ออกจากหมวดช่วยเหลือด้วย :q )
- :h COMMAND, :help COMMAND = แสดงความช่วยเหลือสำหรับคำสั่ง COMMAND
- :se COMMAND, :set COMMAND = ตั้งค่าคำสั่ง COMMAND
ค้นหาและแทนที่
ยืมโครงสร้างมาจากคำสั่ง sed (stream editor) ในระบบยูนิกซ์
- :1,$ s/old/new/g = ค้นหา old แทนที่ด้วย new เริ่มตั้งแต่ 1=ต้นไฟล์ จนถึง $=จบไฟล์ โดยกำหนดค่าการค้นเป็น g=global
เพิ่มเติม
ในการใช้ vi แบบใช้งานจริงจัง มักนิยมใช้ vim มากกว่า vi ซึ่งเก่ามากแล้ว (สำหรับเดเบียนคือแพกเกจ vim-full
)
คำสั่งติดตั้งคือ
$ sudo aptitude install vim-full
และสั่งให้เป็น editor ปริยาย
$ sudo update-alternatives --config editor
เลือก /usr/bin/vim.full
ข้อเขียนเพิ่มเติมนี้จะอ้างอิงจากคู่มือของ vim เป็นหลักครับ
มีชุดคำสั่งพิเศษที่น่านำมาใช้ คือ
- :set tabstop=4 = กำหนดแท็บเป็น 4 ช่องว่าง
- :set expandtab = กำหนดให้ใช้ช่องว่างแทนแท็บ (จำนวนช่องว่างกำหนดจากคำสั่ง tabstop
- :set autoindent = กำหนดย่อหน้าอัตโนมัติ
- :set nu! = แสดงหมายเลขบรรทัด
- :syntax on = แสดงโครงสร้างไฟล์เป็นสี
ซึ่งเราสามารถนำมาเขียนเป็นไฟล์ทรัพยากรที่กำหนดเป็นค่าปริยายในการใช้งาน คือไฟล์ vimrc
ถ้าให้มีผลต่อผู้ใช้ทุกคนคือไฟล์ /etc/vim/vimrc หรือถ้าให้มีผลต่อเราคนเดียวก็คือไฟล์ ~/.vimrc
การเขียนคำสั่งในไฟล์ vimrc ก็เขียนเหมือนกับการใช้คำสั่งพิเศษทุกประการ เพียงแต่ไม่ต้องใส่ colon(:) เท่านั้น เช่น
$ vi ~/.vimrc
set tabstop=4 set expandtab set autoindent set smartindent set nu! syntax on
อ้างอิง
ปรับปรุงจาก debianclub.org: vi โดยย่อ
- Printer-friendly version
- Log in or register to post comments
- 7203 reads
Recent comments