Vi命令總結

chenfengwww發表於2011-01-20

進入vi
vi test
離開vi
:q! 離開vi,並放棄剛在緩衝區內編輯的內容。
:wq 將緩衝區內的資料寫入磁碟中,並離開vi。
:ZZ 同wq
:w 將緩衝區內的資料寫入磁碟中,但並不離開vi。
:q 離開vi,若檔案被修改過,則會被要求確認是否放棄修改的內容,此指令可與: w 配合使用。

Vi的操作模式
Vi提供兩種操作模式:
輸入模式(insert mode)
指令模式(command mode)
當使用者進入vi後,既處於指令模式下,此刻鍵入任何字元皆被視為指令。

輸入模式:
a(append) 遊標之後加入資料。
A 該行之末加入資料
i (insert) 遊標之前加入資料
I 該行之首加入資料
o (open) 新增一行與該行之下供輸入資料
O 新增一行與該行之上供輸入資料

指令模式:
B 移至該行第一個字元,若游標在該行第一字元則游標移至上一行第一字元。
b 由遊標所在位置之前一個字串的第一個字元
cc 刪除整行,修改整行的內容。
D 以行為單位,刪除遊標在內後面的所有字元。
db 刪除該行游標前字元
dd 刪除該行
de 刪除自游標開始後面的字元
d加字元 刪除游標所在位置至字元之間的單
E 移至該行最後字元,若游標在該行最後字元則游標移至下一行最後字元
e 由遊標所在位置至該字串的最後一個字元
G 移至該檔案的最後一行 
h 向前移一個字元
j 向下移一個字元
k 向上移一個字元
0 移至該行之首
M 移至視窗的中間那行
L 移至視窗的最後一行
l 向後移一個字元
0 由遊標所在位置該行的第一個字元
nG 移至該檔案的第n行
n+ 自遊標所在位置向後移n行至該行的第一字元
n- 自遊標所在位置向前移n行至該行的第一字元
R 進入取代狀態,直到《ESC》為止
s 刪除遊標所在字元,並進入取代模式直到《ESC》
S 刪除遊標所在之該行資料,並進入輸入模式直到《ESC》
w 由遊標所在位置之下一個字串的第一個字元
x 刪除遊標所在該字元。
X 刪除遊標所在之前一字元。
r 用接於此指令之後的字元取代(replace)遊標所在字元
yy yank整行,使遊標所在該行復制到記憶體緩衝區
顯示該行之行號、檔案名稱、檔案中最末之行號、遊標所在行號佔總行號之百分比
$ 由遊標所在位置至該行的最後一個字元。
) 由遊標所在位置至下一個句子的第一個字元。
( 由遊標所在位置至該句子的第一個字元。
{ 由遊標所在位置至該段落的最後一個字元。
} 由遊標所在位置至該段落的第一個字元

yank和delete可將指定的資料複製到記憶體緩衝區,而藉有put指令可將緩衝區內的資料複製到熒幕上
例如:搬移一行 :在該行執行dd
遊標移至目的地
執行p
複製一行 :在該行執行yy
遊標移至目的地
執行p
視窗移動:
視窗往下卷一頁
視窗往上卷一頁
視窗往下卷半頁
視窗往上卷半頁
視窗往下卷一行
視窗往上卷一行
刪除、複製及修改指令介紹:
d(delete)、c(change)和y(yank)這一類的指令在vi 中的指令格式為:
operation+scope=command
(運運算元)(範圍)
運運算元:
d 刪除指令。刪除資料,但會將刪除資料複製到記憶體緩衝區。
y 將資料(字組、行列、句子或段落)複製到緩衝區。
p 放置(put)指令,與d和y配合使用。可將最後delete或yank的資料放置於遊標所在位置之行列下。
c 修改(change)指令,類似delete於insert的組合。刪除一個字組、句子等資料,並插入新鍵入的

插入文字類命令
i : 在游標前
I : 在當前行首
a: 游標後
A: 在當前行尾
o: 在當前行之下新開一行
O: 在當前行之上新開一行
r: 替換當前字元
R: 替換當前字元及其後的字元,直至按ESC鍵
s: 從當前游標位置處開始,以輸入的文字替代指定數目的字元
S: 刪除指定數目的行,並以所輸入文字代替之
ncw或nCW: 修改指定數目的字
nCC: 修改指定數目的行

搜尋及替換命令
/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替換

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/ilovemilk/archive/2008/01/28/2070134.aspx

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22036495/viewspace-1044933/,如需轉載,請註明出處,否則將追究法律責任。