This is G o o g l e's cache of http://www.debianclub.com/node/6 as retrieved on 16 Feb 2007 18:33:54 GMT.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
This cached page may reference images which are no longer available. Click here for the cached text only.
To link to or bookmark this page, use the following url: http://www.google.com/search?hl=en&q=cache%3Ahttp%3A%2F%2Fwww.debianclub.com%2Fnode%2F6&btnG=Search


Google is neither affiliated with the authors of this page nor responsible for its content.

User login

Links

debianclub.com
debian.org
ubuntuclub.com
blognone.com

Syndicate

Syndicate content

vi โดยย่อ

ขออนุญาตแปะไว้หน่อยนะครับ สรุปคำสั่ง 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 = ลบจากบรรทัดปัจจุบันจนถึงต้นไฟล์

ใช้ร่วมกับตัวเลข

   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
    

  • 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 = แสดงแถบสถานะ ตรงด่านล่างซ้ายมือ

ค้นหาและแทนที่

ยืมโครงสร้างมาจากคำสั่ง sed (stream editor) ในระบบยูนิกส์
  • :1,$ s/old/new/g = ค้นหา old แทนที่ด้วย new เริ่มตั้งแต่ 1=ต้นไฟล์ จนถึง $=จบไฟล์ โดยกำหนดค่าการค้นเป็น g=global

แจ่ม

ขอบคุณมากครับ

ที่ผ่านมาใช้ nano ตลอด เคยพยายามใช้ VI หลายครั้งแล้วก็ไม่เป็นสักที

สงสัยได้ฤกษ์หัดจริงๆจังๆซะแล้ว

Re: vi โดยย่อ

ขอบคุณมากครับ

ผมเองก็ใช้ vi มาก็หลายปี แต่แค่งูๆ ปลาๆ รู้เืท่าที่ใช้(น้อยมาก)เท่านั้น
เห็นเด็กๆ ยุคใหม่ (รู้เลยว่าเราแก่) หัวใจ nano กันทั้งน้านครับพี่น้องคร้าบ!

มี pdf english version ที่ผมเคย save ไว้มาฝากครับ

VI Command Cheat Sheets

เยี่ยมครับ

ผมก็ชื่นชอบ 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]

vimrc

ผมใส่ไว้ใน /etc/vim/vimrc.local เลย:

syntax on

(ไม่ควรแก้ /etc/vim/vimrc โดยตรงใน debian เพราะจะมีการ update พร้อมแพกเกจ เขาเลยแยกให้แก้ใน vimrc.local ต่างหาก)

ยอดเยี่ยม

ชอบคอมเมนต์ทุกท่านเลยครับ
ทำให้ผมได้รู้จัก 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

แล้วก็เลือกตัวที่ต้องการจากตัวเลือกที่มี

เย่

ฉลาดขึ้นอีก ๑ เม็ด ;D
ขอบคุณมากครับ