重復執行命令
數字N+命令 重復執行命令N次,如刪除15行,就在命令狀態下輸入15dd
. 重復執行上一條命令
vi命令使用的一些選項及含義
-c sub-command 在對指定的文件編輯前,先執行指定的命令 sub-command .
-r filename 恢復指定的文件filename .
-R 將指定的文件以只讀的方式放入編輯器中,這樣不會保存對文件的任何修 改。
-y number 將編輯窗口的大小設為number行。
光標移動
命令模式下,在同一行上移動的子命令:
h 將光標左移一格
l 將光標右移一格
j 將光標下移一格
k 將光標上移一格
w 將光標移到下一個小字的前面
W 將光標移到下一個大字的前面
b 將光標移到前一個小字的前面
B 將光標移到前一個大字的前面
e 將光標移到下一個小字的後面
E 將光標移到前一個大字的後面
fc 把光標移到同一行的下一個c字符處
Fc 把光標移到同一行的前一個c字符處
tc 把光標移到同一行的下一個字符c的前一格
Tc 把光標移到同一行的前一個字符c的後一格
number|把光標移到遞number列上
命令模式下在行間移動的子命令:
+或Enter 把光標移至下一行第一個非空白字符
- 把光標移至上一行第一個非空白字符
0 把光標移到當前行的第一個字符處
$ 把光標移到當前行的最後一個字符處
H 把光標移到屏幕最頂端一行
L 把光標移到屏幕最底端一行
M 把光標移到屏幕中間
:number 光標移動到第number行
:$ 光標移動到最後以行
屏幕翻滾類命令
Ctrl+u 向文件首翻半屏
Ctrl+d 向文件尾翻半屏
Ctrl+f 向文件尾翻一屏
Ctrl+b 向文件首翻一屏
nz 將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部
插入文本
I 在光標前
I 在當前行首
a 光標後
A 在當前行尾
o 在當前行之下新開一行
O 在當前行之上新開一行
r 替換當前字符
R 替換當前字符及其後的字符,直至按ESC鍵
s 從當前光標位置處開始,以輸入的文本替代指定數目的字符
S 刪除指定數目的行,並以所輸入文本代替之
ncw或nCW 修改n個單詞
nCC修改指定數目的行
刪除
x 刪除光標所指的一個字母
X 刪除光標左邊的一個字母
dd 刪除光標所在的一行文字,同時本行文字會放到緩存中
d0 刪至行首
d$ 刪至行尾
D 刪除本行光標右邊的所有文字,包括光標位置的字母
d$ 刪除本行光標右邊的所有文字,包括光標位置的字母
dw 刪除光標右邊的一個單詞
ndw 刪除n個單詞
d1G 刪除光標所在行以上的所有行
dG 刪除光標所在行及光標以下所有行
復制
yy 復制本行文字到緩存中
number yy 復制number行到緩存中
粘貼
p 把緩存中的行粘貼到光標所在的下一行,
P 把緩存中的行粘貼到光標所在的上一行
替換
:s/pattern1/pattern2/g 把光標當前行的pattern1替換為pattern2
:%s/pattern1/pattern2/g 把所有行的pattern1替換為pattern2
:g/parttern1/s//parttern2 把所有行的pattern1替換為pattern2
:num1,num2 s/pattern1/pattern2/g 把num1到num2的partten1替換為partten2
被替換的文字用^表示行首,$表示行尾,如:%s/^/111/g就表示在每一行的行首插入111
文件
:r filename 把文件filename的內容粘貼在光標以下行
:w 保存當前編輯的文件名
:w filename 當filename不存在時,把修改後的文件存為文件filename ,當文件filename
存在時,報錯。
!w filename 如果文件filename存在時,把修改後的文件保存為文件filename
:q 退出vi ,若文件被修改,系統不會讓用戶使用q命令退出
q! 不保存退出
x 保存退出
wq 保存退出
在多個文件之間切換
:n開始編輯vi激活的文件列表中的下一個文件
:n filenames 指定將被編輯的新的文件列表
在當前文件和另外一個文件間切換:
:e filename 使用filename激活vi(在vi中裝入另一個文件filename)
e! 重新裝入當前文件,若當前文件有改動,則丟棄以前的改動
:e+filename 使用filename激活vi ,並從文件尾部開始編輯
:e+number filename 使用filename激活vi ,並在第number行開始編輯
:e# 開始編輯另外一個文件
查找
/pattern 向後尋找指定的pattern ,若遇到文件尾,則從頭再開始。
?pattern 向前尋找指定的pattern ,若遇到文件頭,則從尾再開始。
n 在上次指定的方向上,再次執行上次定義的查找。
N 在上次指定的方向的相反方向上,再次執行上次定義的查找。
/pattern/+number 將光標停在包含pattern的行後面第number行上。
/pattern/-number 將光標停在包含pattern的行前面第number行上。
% 移到匹配的"()"或"{}"上。
選項設置
all 列出所有選項設置情況
term 設置終端類型
ignorance 在搜索中忽略大小寫
list 顯示制表位(Ctrl+I)和行尾標志($)
number 顯示行號
report 顯示由面向行的命令修改過的數目
terse 顯示簡短的警告信息
warn 在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic 允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan 禁止vi在搜索到達文件兩端時,又從另一端開始
mesg 允許vi顯示其他用戶用write寫到自己終端上的信息