SCOUNIX 基礎(chǔ)講座--第三講vi editor
作者: 出處:Unix愛好者家園unix-cd.com 更新時間: 2004年08月23日
本文出自: Santa Cruz Operation,Inc. (2001-05-18 14:58:20)
任何用戶最常做的事要數(shù)創(chuàng)建和編輯文件,包括文檔、報告和文字,vi(Visual Editor)是一個有效而相對簡單的全熒幕編輯,使用vi,只要記著少量基本指令,就可以開始起步,再學(xué)習(xí)其他更復(fù)雜的指令,而系統(tǒng)管理員則使用vi管理和維護系統(tǒng)。
vi是包含在SCO System V作業(yè)系統(tǒng)中的全熒幕編輯,其實,vi不獨存在於SCO UNIX內(nèi),而是UNIX內(nèi)相當(dāng)普及的文件編輯。開啟文件
無論是開啟新檔或修改舊文件,都可以使用vi,所需指令為:
$ vi filemane
如果文件是新的,就會在熒幕底部看到一個信息,告訴用戶正在創(chuàng)建新文件。如果文件早已存在,vi則會顯示文件的首廿四行, 用戶可再用游標(biāo)(cursor)移動文件。
This is what vi looks like.
~
~
上面是一個經(jīng)vi開啟的模擬文件,一行開始處的波折號(~)表示文件的結(jié)尾。指令態(tài)與插入態(tài)
vi使用了兩種狀態(tài),一是指令態(tài)(Command Mode),另一是插入態(tài)(Insert Mode)。當(dāng)vi處於指令態(tài)時,打入的內(nèi)容會視作指令來解釋;另一方面,當(dāng)vi處於插入態(tài)時,就可以打入正文(text)給文件。
大多數(shù)vi指令是單字符,由插入態(tài)改變?yōu)橹噶顟B(tài),指〈Esc〉鍵;而由命令態(tài)轉(zhuǎn)為插入態(tài),則可以使用下面的插入令,直接打入,無需再按〈Return〉鍵。
—指令i在游標(biāo)處插入正文
—指令I(lǐng)在一行開始處插入正文
—指令a在游標(biāo)後追加正文
—指令A(yù)在行尾追加正文
—指令o在游標(biāo)下面新開一行
—指令O在游標(biāo)上面新開一行
要記著一點,在插入態(tài)處,不能打入指令,必需先按〈Esc〉鍵,返回指令態(tài)。假若戶不知身處何態(tài),也可以按〈Esc〉鍵,不管處於何態(tài),都會返回指令態(tài)。
存檔及退出
在修改文件時,如何存檔及退出指定文件都非常重要。在vi內(nèi),行使存檔或退出的指令時,要先按冒號(:),改變?yōu)橹噶顟B(tài),用戶就可以看見在熒幕左下方,出現(xiàn)冒號(:),顯示vi已經(jīng)改為指令態(tài),可以進(jìn)行存檔或退出等工作。
下面就是一些這方面常用的指令。
:q!放棄任何改動而退出vi,也就是強行退出
:w存檔
:wq存檔并退出vi
:x與wq的工作一樣
:zz與wq的工作一樣刪除正文
刪除或修改正文都是利用插入態(tài),故此,下面所提及的指令只需在插入態(tài)內(nèi),直接選入指令即行。
—x刪除游標(biāo)處字符(Character)
—nx刪除游標(biāo)處後n個字符
—nX刪除游標(biāo)處前n個字符
—ndw刪除游標(biāo)處下n個單詞(word)
—dd刪除整行
—d$或D刪除由游標(biāo)至該行最末
—u恢復(fù)前一次所做的刪除
修改正文
當(dāng)使用vi修改正文,加減字符時,就會采用另一組在插入態(tài)操作的指令。
— r char由char代替游標(biāo)處的字符
—Rtext〈Esc〉由text代替游標(biāo)處的字符
—cwtext〈Esc〉由text取代游標(biāo)處的單詞
—Ctext〈Esc〉由text取代游標(biāo)處至該行結(jié)尾處
—cc使整行空白,但保留游標(biāo)位置,讓你開始打入
—如刪除指令一樣,在指令前打入的數(shù),表示執(zhí)行該指令多少次。正文模式檢索
要檢索文件,必需在指令態(tài)下進(jìn)行。所謂「模式」,就是一個特定字符串,其中可含空格符。
—/str〈Return〉向前搜尋str直至文件結(jié)尾處
—?str〈Return〉往後搜尋str直至文件開首處
—n同一方向上重復(fù)檢索
—N相反方向上重復(fù)檢索
—vi纏繞整個文件,不斷檢索,直至找到與模式相匹配的下一個出現(xiàn)。其他如果要在vi執(zhí)行期間,轉(zhuǎn)到shell執(zhí)行,使用驚嘆號(!)執(zhí)行系統(tǒng)指令,例如在vi期間,列出當(dāng)前目錄內(nèi)容,可以打入
:!If
另一方面,用戶可以在主目錄中創(chuàng)建.exrc環(huán)境文件,用set打入選項,每次調(diào)用vi時,就會讀入.exrc中的指令與設(shè)置。下面是.exrc環(huán)境文件的實例:
set wrapmarging=8
set showmode
set autoindent
set number