ปรับปรุงครั้งที่ 1 : 50-09-06
กลับมาช่วยกันซ่อมสร้างบทความกันใหม่นะครับ
สรุปคำสั่ง vi โดยย่อ จาก vi manual
3j = ลง 3 บรรทัด 4h = ซ้าย 4 อักขระ 5w = ขวา 5 คำ 1G = บรรทัดแรกของไฟล์
เนื่องจาก vi เป็นเอดิเตอร์แบบมีสถานะ จึงต้องมีการเข้าสู่สถานะต่าง ๆ และการออกจากสถานะนั้น ๆ
d3w, 3dw = ลบ 3 คำ 5dd, 4dj = ลบ 5 บรรทัด จากบรรทัดปัจจุบัน ( 4dj=ลบบรรทัดปัจจุบัน และอีก 4 บรรทัดถัดไป ) 4dk = ลบบรรทัดปัจจุบัน และอีก 4 บรรทัดก่อนหน้า 5Gdd = ลบบรรทัดที่ 5
สถานะ : a=append=เติม, i=insert=แทรก, c=change=เปลี่ยน, o=open=เปิด, s=substitute=แทน, r=replace=แทนที่
5inewtext = แทรก newtext 5 ครั้ง 5rg = แทนที่ด้วย g 5 ตัว
* การลบ จะมีการเก็บสิ่งที่ลบไว้ในความจำ ดังนั้น ถ้ามีคำสั่งแปะตามมา สิ่งที่แปะลงมาก็คือสิ่งที่เพิ่งถูกลบไปนั่นเอง
y4w = คัดลอก 4 คำ
:t5 = คัดลอกจากบรรทัดปัจจุบัน ไปบรรทัด 5 :m5 = ย้ายจากบรรทัดปัจจุบัน ไปบรรทัด 5 :9t5 = คัดลอกจากบรรทัด 9 ไปบรรทัด 5 :9m5 = ย้ายจากบรรทัด 9 ไปบรรทัด 5
ยืมโครงสร้างมาจากคำสั่ง sed (stream editor) ในระบบยูนิกซ์
เพิ่มเติม
ในการใช้ vi แบบใช้งานจริงจัง มักนิยมใช้ vim มากกว่า vi ซึ่งเก่ามากแล้ว (สำหรับเดเบียนคือแพกเกจ vim-full
)
คำสั่งติดตั้งคือ
$ sudo aptitude install vim-full
และสั่งให้เป็น editor ปริยาย
$ sudo update-alternatives --config editor
เลือก /usr/bin/vim.full
ข้อเขียนเพิ่มเติมนี้จะอ้างอิงจากคู่มือของ vim เป็นหลักครับ
มีชุดคำสั่งพิเศษที่น่านำมาใช้ คือ
ซึ่งเราสามารถนำมาเขียนเป็นไฟล์ทรัพยากรที่กำหนดเป็นค่าปริยายในการใช้งาน คือไฟล์ 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 โดยย่อ
ปรับแต่งไฟล์ ~/.vimrc ให้ตรงกับความถนัด (ถ้าให้มีผลทั้งระบบก็เป็น /etc/vim/vimrc.local)
$ vi ~/.vimrc
syntax on
set noautoindent
set tabstop=4
set ruler
set comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,f://
เอามาจาก
ปกติ vim จะตีความข้อมูลด้วยค่า locale ของเครื่อง
เช่นถ้าตั้งค่า locale เป็น utf-8 ด้วยคำสั่ง
# dpkg-reconfigure locales
แล้วตั้งเป็น th_TH.utf8
เวลาเราเรียกใช้ vim เราจะสามารถใช้งานภาษาไทยที่เข้ารหัสเป็น utf8 ได้โดยทันที
ปัญหาคือ ถ้าเรามีบางไดเรคทอรี่ที่เข้ารหัสข้อมูลด้วยรหัสอื่น เช่น tis620
เราจะไม่สามารถใช้งานภาษาไทยได้
วิธีแก้คือ
# LANG=th_TH.tis620 vim FILENAME
:set enc=thai
:set termencoding=utf-8
ด้วยวิธีนี้ เราสามารถแก้ไขไฟล์ที่เข้ารหัสเป็น tis-620 ได้ครับ
หมายเหตุ
ถ้าท่านใดทราบวิธีทำให้เป็นอัตโนมัติผ่าน vimrc รบกวนช่วยเสริมด้วยนะครับ
( ผมหาพบที่ google cache แต่อ่านไม่ค่อยเข้าใจ )
เพิ่มเติม
ที่ codenone มีคุยเรื่อง vimrc ด้วย :)