Vi簡介
- Vi是一種廣泛存在於各種UNIX和Linux系統中的文本編輯程序。
- Vi不是排版程序,只是一個純粹的文本編輯程序。
- Vi是全屏幕文本編輯器,它沒有菜單,只有命令。
- Vi不是基於窗口的,所以,這個多用途編輯程序可以用於在任何類型的終端上編輯各式各樣的文件。
- Vi的功能十分強大,但是命令繁多,熟練掌握起來有一定難度。
- Vi的發明者:bill joy
Vi的啟動
$ Vi filename 或者$ Vi
如果filename已經存在,Vi會打開現存文件
如果是一個新文件,Vi會創建它
Vi的退出
在命令行模式下輸入:q,:q!,:wq或者:x,可以退出Vi
:w 保存
:w filename 另存為filename
:wq! 保存並退出
:wq! filename 以filename為文件名保存后退出
:q! 不保存退出
:x 保存並退出,功能和:wq!相同
Vi的工作模式
Vi有三種工作模式,分別為:命令模式、插入模式(編輯模式)和末行模式,三種模式分別進行不同的操作,它們之間可以進行切換。
- 命令模式:進入Vi后,首先進入的就是命令模式,等待用戶輸入編輯命令,此時輸入的字母將作為編輯命令來解釋。
- 插入模式:在命令模式下輸入插入命令i、附加命令a、打開命令o等命令可以進入插入模式,在插入模式下,用戶輸入可以對文本進行編輯,輸入的任何字符都被當作文件內容保存起來。【Esc】鍵可以返回命令模式。
- 末行模式:在命令模式下,按【:】鍵可以進入末行模式,Vi光標會顯示在窗口的最后一行,以“:”作為末行模式的提示符,等待用戶輸入命令。末行命令執行后,Vi自動回到命令模式。
Vi命令大全
1、移動光標
h或者向左方向鍵:光標向左移動一個字符
l或者向右方向鍵:光標向右移動一個字符
k或者向上方向鍵:光標向上移動一個字符
j或者向下方向鍵:光標向下移動一個字符
【Ctrl】+f: 屏幕“向下”移動一頁,相當於【PageDown】
【Ctrl】+b: 屏幕“向上”移動一頁,相當於【PageUp】
0: 數字0,移動到這一行的最前面一個字符處
$: 移動到這一行的最后一個字符處
G: 移動到這個文件的最后一行
gg: 移動到這個文件的第一行
n【Enter】: n是一個數字,光標向下移動n行
2、搜索與替換
/str:從光標開始,向下尋找一個名為str的字符串。
?str:從光標開始,向上尋找一個名為str的字符串。
:n1,n2s/str1/str2/g:n1與n2為數字,在第n1行與n2行之間尋找str1 這個字符串,並將該字符串替換成str2
:1,$s/str1/str2/g:從第一行到最后一行尋找str1字符串,並將該字符 串替換為str2
:1,$s/str1/str2/gc:從第一行到最后一行尋找str1字符串,並將該字 符串替換為str2,且在替換前提示符給用戶確認 是否需要替換
3、刪除、復制與粘貼
x,X:x為向后刪除一個字符,X為向前刪除一個字符
nx:n為數字,為連續向后刪除n個字符
dd:刪除光標所在的那一整行
ndd:n為數字,從光標位置開始,刪除向下n列,如20dd則是刪除20列。
yy:復制光標所在的那一行
nyy:n為數字,復制光標所在的向下n行,如20yy則是復制20行
p,P:p為將復制的數據粘貼到光標的下一行,P則為粘在光標的上一行。
u:復原前一個操作
【Ctrl】+r:重做上一個操作
.:小數點,重復前一個動作,常用在重復刪除、重復粘貼。
4、插入模式
i,I:插入:在當前光標所在處插入輸入文字,已存在的文字會向后 退,其中i為從當前光標所在位置前開始插入,I將光標移到當前 行的行首,然后開始插入。
a,A:a為從當前光標所在的下一個字符開始插入,A為從光標所在行的 最后一個字符處開始插入
o,O:這是英文字母o的大小寫,o為在當前光標所在的下一行插入新的 一行,O為在當前光標所在處的上一行插入新的一行。
r,R:替換:r為替換光標所在的那一個字符;R會一直替換光標所在的 文字,直到安下【Esc】鍵為止。
5、文件操作相關
:w:保存文件
:w filename:另存為filename
:n1,n2 w filename!:將n1行到n2行的內容保存到filename中
:n w filename:將第n行保存到filename中
:l,. w filename:將從第一行起到光標當前位置的內容保存到 filename中
:.,$ w filename:將從光標當前位置到文件結束的內容保存到 filename中
:r filename:打開另外一個文件filename
:e filename:編輯新文件filename代替原有內容
:f filename:把當前文件改名為filename