雖然 Vi采用了狀態(tài)切換的方法,但電腦的硬件及操作系統(tǒng)多種多樣,某些電腦的鍵盤上沒有特定的幾個功能鍵!那麼不就有某些功能不能用了?這個問題在 Unix 系統(tǒng)上也一樣,幾乎各大電腦廠商都有自己的 Unix 系統(tǒng),而 vi 的操作方法也會隨之有點出入。這里我們采用 PC 的鍵盤來說明 vi 的操作,但在具體的環(huán)境中還要參考相應的資料,這一點是值得注意的。
二、Vi入門
(一)、進入vi 在系統(tǒng)提示字符(如$、#)下敲入vi <檔案名稱>,vi 可以自動幫你載入所要編輯的文件或是開啟一個新文件(如果該文件不存在或缺少文件名)。進入 vi 后螢幕左方會出現(xiàn)波浪符號,凡是列首有該符號就代表此列目前是空的。
(二)、兩種模式
如上所述,vi存在兩種模式:指令模式和輸入模式。在指令模式下輸入的按鍵將做為指令來處理:如輸入 a,vi即認為是在當前位置插入字符。而在輸入模式下,vi則把輸入的按鍵當作插入的字符來處理。指令模式切換到輸入模式只需鍵入相應的輸入命令即可(如a,A),而要從輸入模式切換到指令模式,則需在輸入模式下鍵入ESC鍵,如果不曉得現(xiàn)在是處於什麼模式,可以多按幾次 [ESC],系統(tǒng)如發(fā)出嗶嗶聲就表示已處于指令模式下了。
付:在指令模式進入輸入模式的指令:
新增 (append)
a :從光標所在位置後面開始新增資料,光標後的資料隨新增資料向後移動。
A:從光標所在列最後面的地方開始新增資料。
插入 (insert)
i:從光標所在位置前面開始插入資料,光標後的資料隨新增資料向後移動。
I :從光標所在列的第一個非空白字元前面開始插入資料。
開始 (open)
o :在光標所在列下新增一列并進入輸入模式。
O: 在光標所在列上方新增一列并進入輸入模式。
配合一般鍵盤上的功能鍵,像是方向鍵、[Insert] 、[Delete] 等等,現(xiàn)在你應該已經(jīng)可以利用 vi 來編輯文件了。當然 vi 還提供其他許許多多功能讓文字的處理更為方便。
何謂編輯?一般認為是文字的新增、修改以及刪除,甚至包括文字區(qū)塊的搬移、復制等等。先這里介紹 vi 的如何做刪除與修改。(注意:在 vi 的原始觀念里,輸入跟編輯是兩碼子事。編輯是在指令模式下操作的,先利用指令移動光標來定位要進行編輯的地方,然後才下指令做編輯。)
其實呢,在PC上根本沒有這麼麻煩!輸入跟編輯都可以在輸入模式下完成。例如要刪除字元,直接按 [Delete] 不就得了。而插入狀態(tài)與取代狀態(tài)可以直接用 [Insert] 切換,犯不著用什麼指令模式的編輯指令。不過就如前面所提到的,這些指令幾乎是每臺終端機都能用,而不是僅僅在 PC 上。在指令模式下移動光標的基本指令是 h, j, k, l 。想來各位現(xiàn)在也應該能猜到只要直接用 PC 的方向鍵就可以了,而且無論在指令模式或輸入模式下都可以。多容易不是。當然 PC 鍵盤也有不足之處。有個很好用的指令 u 可以恢復被刪除的文字,而 U 指令則可以恢復光標所在列的所有改變。這與某些電腦上的 [Undo] 按鍵功能相同。
三、附件:vi詳細指令表
進入vi的命令
vi filename: 打開或新建文件,并將光標置于第一行首
vi +n filename: 打開文件,并將光標置于第n行首
vi + filename: 打開文件,并將光標置于最后一行首
vi +/pattern filename: 打開文件,并將光標置于第一個與pattern匹配的串處
vi -r filename: 在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復filename
vi filename....filename: 打開多個文件,依次進行編輯