天天看點

vi使用說明

vi使用手冊

進入vi的指令

vi filename :打開或建立檔案,并将光标置于第一行首

vi +n filename :打開檔案,并将光标置于第n行首

vi + filename :打開檔案,并将光标置于最後一行首

vi +/pattern filename:打開檔案,并将光标置于第一個與pattern比對的串處

vi -r filename :在上次正用vi編輯時發生系統崩潰,恢複filename

vi filename....filename :打開多個檔案,依次編輯

移動光标類指令

h :光标左移一個字元

l :光标右移一個字元

space:光标右移一個字元

Backspace:光标左移一個字元

k或Ctrl+p:光标上移一行

j或Ctrl+n :光标下移一行

Enter :光标下移一行

w或W :光标右移一個字至字首

b或B :光标左移一個字至字首

e或E :光标右移一個字j至字尾

) :光标移至句尾

( :光标移至句首

}:光标移至段落開頭

{:光标移至段落結尾

nG:光标移至第n行首

n+:光标下移n行

n-:光标上移n行

n$:光标移至第n行尾

H :光标移至螢幕頂行

M :光标移至螢幕中間行

L :光标移至螢幕最後行

0:(注意是數字零)光标移至目前行首

$:光标移至目前行尾

螢幕翻滾類指令

Ctrl+u:向檔案首翻半屏

Ctrl+d:向檔案尾翻半屏

Ctrl+f:向檔案尾翻一屏

Ctrl+b;向檔案首翻一屏

nz:将第n行滾至螢幕頂部,不指定n時将目前行滾至螢幕頂部。

插入文本類指令

i :在光标前

I :在目前行首

a:光标後

A:在目前行尾

o:在目前行之下新開一行

O:在目前行之上新開一行

r:替換目前字元

R:替換目前字元及其後的字元,直至按ESC鍵

s:從目前光标位置處開始,以輸入的文本替代指定數目的字元

S:删除指定數目的行,并以所輸入文本代替之

ncw或nCW:修改指定數目的字

nCC:修改指定數目的行

删除指令

ndw或ndW:删除光标處開始及其後的n-1個字

do:删至行首

d$:删至行尾

ndd:删除目前行及其後n-1行

x或X:删除一個字元,x删除光标後的,而X删除光标前的

Ctrl+u:删除輸入方式下所輸入的文本

搜尋及替換指令 :

/pattern:從光标開始處向檔案尾搜尋pattern

?pattern:從光标開始處向檔案首搜尋pattern

n:在同一方向重複上一次搜尋指令

N:在反方向上重複上一次搜尋指令

:s/p1/p2/g:将目前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:将檔案中所有p1均用p2替換

選項設定

all:列出所有選項設定情況

term:設定終端類型

ignorance:在搜尋中忽略大小寫

list:顯示制表位(Ctrl+I)和行尾标志($)

number:顯示行号

report:顯示由面向行的指令修改過的數目

terse:顯示簡短的警告資訊

warn:在轉到别的檔案時若沒儲存目前檔案則顯示NO write資訊

nomagic:允許在搜尋模式中,使用前面不帶“/”的特殊字元

nowrapscan:禁止vi在搜尋到達檔案兩端時,又從另一端開始

mesg:允許vi顯示其他使用者用write寫到自己終端上的資訊

最後行方式指令

:n1,n2 co n3:将n1行到n2行之間的内容拷貝到第n3行下

:n1,n2 m n3:将n1行到n2行之間的内容移至到第n3行下

:n1,n2 d :将n1行到n2行之間的内容删除

:w :儲存目前檔案

:e filename:打開檔案filename進行編輯

:x:儲存目前檔案并退出

:q:退出vi

:q!:不儲存檔案并退出vi

:!command:執行shell指令command

:n1,n2 w!command:将檔案中n1行至n2行的内容作為command的輸入并執行之,若不指

定n1,n2,則表示将整個檔案内容作為command的輸入

:r!command:将指令command的輸出結果放到目前行 。