vi編輯器是Unix系統(tǒng)最初的編輯器。它使用控制臺(tái)圖形模式來模擬文本編輯窗口,允許查看文件中的行、在文件中移動(dòng)、插入、編輯和替換文本。
vi共分為三種模式:命令模式,編輯模式,末行模式。
(1)命令模式
命令模式為vi的初始模式。在普通權(quán)限下鍵入“$vi 文件名”或臨時(shí)root用戶下鍵入“# vi 文件名”(例:root@XXX-virtualBox:/ect# vi vsftpd.conf),則初始進(jìn)入vi的命令模式。 編輯模式下按esc進(jìn)入命令模式。網(wǎng)上很多寫在末行模式按esc可進(jìn)入命令模式,我的電腦進(jìn)入末行模式后幾乎所有按鍵都是輸入,輸入esc顯示“^[”而不會(huì)退回到命令模式。所以如果有情況和我相同進(jìn)入末行模式不能轉(zhuǎn)換模式的,不要亂按回車鍵。
命令模式中:
ZZ:退出vi
h或<-左鍵:左移一個(gè)字符
j或下鍵:下移一行
k或上鍵:上移一行
l或右鍵:右移一個(gè)字符
pageDown(或ctrl+F):下翻一屏
pageUp(或ctrl+B):上翻一屏
G:移動(dòng)到緩沖區(qū)的最后一行
num G:移動(dòng)到緩沖區(qū)中第num行
gg:移動(dòng)緩沖區(qū)的第一行
x:刪除當(dāng)前光標(biāo)所在位置的字符
dd:刪除當(dāng)前光標(biāo)所在行
dw:刪除當(dāng)前光標(biāo)所在位置的單詞
d$:刪除當(dāng)前光標(biāo)所在位置至行尾的內(nèi)容
J:刪除當(dāng)前光標(biāo)所在行行尾的換行符(拼接行)
u:撤銷前一編輯命令
a:在當(dāng)前光標(biāo)后追加數(shù)據(jù)
A:在當(dāng)前光標(biāo)所在行行尾追加數(shù)據(jù)
r char:用char替換當(dāng)前光標(biāo)所在位置的單個(gè)字符
R text:用text覆蓋當(dāng)前光標(biāo)所在位置的數(shù)據(jù),直到按下ESC鍵
很容易誤按的一個(gè)命令:qq:左下角會(huì)出現(xiàn)“recording@”這個(gè)標(biāo)識(shí)。這是vim的一個(gè)強(qiáng)大的功能。它可以錄制一個(gè)宏,按q可停止宏錄制。
(2)編輯模式
在命令模式中按下【i,I,o,O,a,A,r,R】等字母之后進(jìn)入編輯模式。按下上述的字母時(shí),畫面的左下方可能會(huì)出現(xiàn)【–INSERT–或–插入–】的字樣,可以做文字?jǐn)?shù)據(jù)輸入。各個(gè)按鍵含義如下:
a:在光標(biāo)后開始插入
A:在行尾開始插入
i:從光標(biāo)所在位置前面開始插入
I:從光標(biāo)所在列的第一個(gè)非空白字元面前開始插入
o:在光標(biāo)所在列下新增一列并進(jìn)入輸入模式
O:在光標(biāo)所在列上方新增一列并進(jìn)入輸入模式
ESC:返回命令模式
(3)末行模式
網(wǎng)上很多說在命令模式中輸入【:】會(huì)進(jìn)入末行模式,我的電腦:沒有效果。需要在大寫模式(按CapsLock鍵)再按q鍵最末行會(huì)出現(xiàn):,注意這時(shí)不能再切換回其他模式(如果可以請留言我修改,謝謝)??稍冢汉筝斎朊?/p>
:q 如果有未修改緩沖區(qū)數(shù)據(jù),退出。
:q! 取消所有對(duì)緩沖區(qū)數(shù)據(jù)的修改并退出【不保存直接退出】
:w filename 將文件保存到另一個(gè)文件中
:wq將緩沖區(qū)數(shù)據(jù)保存到文件中并退出
:sp上下分屏
:vsp左右分屏
ctrl+w+w切換屏
有些資料寫命令模式中輸入【/】進(jìn)入末行模式,和:的命令不同,/后可輸入查找內(nèi)容或一些命令。如果/后輸入錯(cuò)誤的命令會(huì)自動(dòng)回到命令模式。