有三種基本工作模式:
+命令模式
+文本輸入模式
+末行模式赃阀。
命令行模式
任何時候,不管用戶處于何種模式钾菊,只要按一下ESC鍵溃槐,即可使Vi進(jìn)入命令模式匣砖;我們在shell環(huán)境(提示符為$)下輸入啟動Vi命令,進(jìn)入編輯器時昏滴,也是處于該模式下猴鲫。在該模式下,用戶可以輸入各種合法的Vi命令谣殊,用于管理自己的文檔拂共。此時從鍵盤上輸入的任何字符都被當(dāng)做編輯命令來解釋,若輸入的字符是合法的Vi命令姻几,則Vi在接受用戶命令之后完成相應(yīng)的動作宜狐。但需注意的是势告,所輸入的命令并不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令抚恒,Vi會響鈴報警咱台。
文本輸入模式
在命令模式下輸入插入命令i、附加命令a俭驮、打開命令o回溺、修改命令c、取代命令r或替換命令s都可以進(jìn)入文本輸入模式表鳍。在該模式下,用戶輸入的任何字符都被Vi當(dāng)做文件內(nèi)容保存起來祥诽,并將其顯示在屏幕上譬圣。在文本輸入過程中,若想回到命令模式下雄坪,按鍵ESC即可厘熟。
末行模式
末行模式也稱ex轉(zhuǎn)義模式。在命令模式下维哈,用戶按“:”鍵即可進(jìn)入末行模式下绳姨,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令阔挠。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)飘庄。末行命令執(zhí)行完后,Vi自動回到命令模式购撼。例如:
:set number顯示行號
:set nonumber去掉行號
:set encoding顯示編碼
:set encoding=utf-8設(shè)置編碼
如果要從命令模式轉(zhuǎn)換到編輯模式跪削,可以鍵入命令a或者i;如果需要從文本模式返回迂求,則按Esc鍵即可碾盐。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令揩局。
vim基礎(chǔ)操作
i:插入光標(biāo)前一個字符
I:插入行首
a:插入光標(biāo)后一個字符
A:插入行未
o:向下新開一行,插入行首
O:向上新開一行,插入行首
進(jìn)入命令模式:
ESC:從插入模式或末行模式進(jìn)入命令模式
移動光標(biāo):
h:左移
j:下移
k:上移
l:右移
M:光標(biāo)移動到中間行
L:光標(biāo)移動到屏幕最后一行行首
G:移動到指定行,行號G
w:向后一次移動一個字
b:向前一次移動一個字
{:按段移動,上移
}:按段移動,下移
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏
Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏
gg:光標(biāo)移動文件開頭
G:光標(biāo)移動到文件末尾
刪除命令:
x:刪除光標(biāo)后一個字符,相當(dāng)于Del
X:刪除光標(biāo)前一個字符,相當(dāng)于Backspace
dd:刪除光標(biāo)所在行,n dd刪除指定的行數(shù)D:刪除光標(biāo)后本行所有內(nèi)容,包含光標(biāo)所在字符
d0:刪除光標(biāo)前本行所有內(nèi)容,不包含光標(biāo)所在字符
dw:刪除光標(biāo)開始位置的字,包含光標(biāo)所在字符
撤銷命令:
u:一步一步撤銷
Ctrl+r:反撤銷
重復(fù)命令:
.:重復(fù)上一次操作的命令
文本行移動:
>>:文本行右移
<<:文本行左移
復(fù)制粘貼:
yy:復(fù)制當(dāng)前行,n yy復(fù)制n行
p:在光標(biāo)所在位置向下新開辟一行,粘貼
可視模式:
v:按字符移動,選中文本
V:按行移動,選中文本可視模式可以配合d, y, >>, <<實(shí)現(xiàn)對文本塊的刪除,復(fù)制,左右移動
替換操作:
r:替換當(dāng)前字符
R:替換當(dāng)前行光標(biāo)后的字符
查找命令:
/: str查找
n:下一個
N:上一個
:set hls打開高亮
:set nohls關(guān)閉高亮
替換命令:
把a(bǔ)bc全部替換成123
末行模式下毫玖,將所以提議的abc替換成123
:%s/abc/123/g
末行模式下,將第一行至第10行之間的abc替換成123
:1, 10s/abc/123/g
vim里執(zhí)行shell下命令:
末行模式里輸入!,后面跟命令
放大縮寫
ctrl -縮小
ctrl shift +放大