vi/vim 共分為三種模式
- 命令模式(Command mode)
- 插入模式(Insert mode)
- 底線命令模式(Last line mode)
命令模式
用戶(hù)剛剛啟動(dòng) vi/vim,便進(jìn)入了命令模式。
- i (鍵盤(pán)字母 I 按鈕)切換到插入模式倘屹,以輸入字符圆雁。
- x (鍵盤(pán)字母 X 按鈕)刪除當(dāng)前光標(biāo)所在處的字符。
- : (鍵盤(pán)冒號(hào) L按鈕右邊的火脉,需要按住Shift + 英文冒號(hào))切換到底線命令模式,以在最底一行輸入命令。
若想要編輯文本:?jiǎn)?dòng)Vim斑响,進(jìn)入了命令模式菱属,按下i,切換到輸入模式
輸入模式
在命令模式下按下 i 就進(jìn)入了輸入模式恋捆。
- 在輸入模式中照皆,可以使用以下按鍵
- ENTER(回車(chē)鍵) 換行
- BACK SPACE(退格鍵) 刪除光標(biāo)前一個(gè)字符
- 方向鍵 在文本中移動(dòng)光標(biāo)
- HOME/END 移動(dòng)光標(biāo)到行首/行尾
- Page Up/Page Down 上/下翻頁(yè)
- ESC 退出輸入模式,切換到命令模式
底線命令模式
在命令模式下按下 :(英文冒號(hào))就進(jìn)入了底線命令模式沸停。
底線命令模式可以輸入單個(gè)或多個(gè)字符的命令膜毁,可用的命令非常多。
在底線命令模式中愤钾,基本的命令有(已經(jīng)省略了冒號(hào)):
- q 退出程序
- w 保存文件
- ESC 按ESC鍵可隨時(shí)退出底線命令模式
vi/vim 使用實(shí)例
使用 vi 來(lái)建立名為 test.txt 的文件
vi test.txt
按下 ESC 按鈕回到一般模式
在一般模式中按下 :wq 儲(chǔ)存后離開(kāi) vi
vi/vim 按鍵說(shuō)明(一般模式下)
h 或 向左箭頭鍵(←) 光標(biāo)向左移動(dòng)一個(gè)字符
j 或 向下箭頭鍵(↓) 光標(biāo)向下移動(dòng)一個(gè)字符
k 或 向上箭頭鍵(↑) 光標(biāo)向上移動(dòng)一個(gè)字符
l 或 向右箭頭鍵(→) 光標(biāo)向右移動(dòng)一個(gè)字符
如果你將右手放在鍵盤(pán)上的話(huà)瘟滨,你會(huì)發(fā)現(xiàn) hjkl 是排列在一起的,因此可以使用這四個(gè)按鈕來(lái)移動(dòng)光標(biāo)能颁。 如果想要進(jìn)行多次移動(dòng)的話(huà)杂瘸,例如向下移動(dòng) 30 行,可以使用 "30j" 或 "30↓" 的組合按鍵伙菊, 亦即加上想要進(jìn)行的次數(shù)(數(shù)字)后败玉,按下動(dòng)作即可!
Ctrl + f 屏幕『向下』移動(dòng)一頁(yè)镜硕,相當(dāng)于 [Page Down]按鍵
Ctrl + b 屏幕『向上』移動(dòng)一頁(yè)运翼,相當(dāng)于 [Page Up] 按鍵
0 或功能鍵[Home] 這是數(shù)字『 0 』:移動(dòng)到這一行的最前面字符處
$ 或功能鍵[End] 移動(dòng)到這一行的最后面字符處
G 移動(dòng)到這個(gè)檔案的最后一行
gg 移動(dòng)到這個(gè)檔案的第一行
n<Enter> n 為數(shù)字。光標(biāo)向下移動(dòng) n 行
/word 向光標(biāo)之下尋找一個(gè)名稱(chēng)為 word 的字符串兴枯。例如要在檔案內(nèi)搜尋 vbird 這個(gè)字符串血淌,就輸入 /vbird 即可
n 重復(fù)前一個(gè)搜尋的動(dòng)作
N 『反向』進(jìn)行前一個(gè)搜尋動(dòng)作
:n1,n2s/word1/word2/g n1 與 n2 為數(shù)字。在第 n1 與 n2 行之間尋找 word1 這個(gè)字符串财剖,并將該字符串取代為 word2
:n1,$s/word1/word2/g 從第一行到最后一行尋找 word1 字符串悠夯,并將該字符串取代為 word2
:n1,$s/word1/word2/gc 從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2 躺坟!且在取代前顯示提示字符給用戶(hù)確認(rèn) (confirm) 是否需要取代
x 向后刪除一個(gè)字符
X 向前刪除一個(gè)字符
dd 刪除游標(biāo)所在的那一整行
ndd n 為數(shù)字沦补。刪除光標(biāo)所在的向下 n 行(包括游標(biāo)所在的那一行)
yy 復(fù)制游標(biāo)所在的那一行
nyy n 為數(shù)字。復(fù)制光標(biāo)所在的向下 n 行
p 為將已復(fù)制的數(shù)據(jù)在光標(biāo)下一行貼上
P 為將已復(fù)制的數(shù)據(jù)在光標(biāo)上一行貼上
u 復(fù)原前一個(gè)動(dòng)作(撤銷(xiāo))
Ctrl + r 重做上一個(gè)動(dòng)作
. 重復(fù)前一個(gè)動(dòng)作
一般模式切換到編輯模式
i 從目前光標(biāo)所在處插入
I 在目前所在行的第一個(gè)非空格符處開(kāi)始插入
a 從目前光標(biāo)所在的下一個(gè)字符處開(kāi)始插入
A 從光標(biāo)所在行的最后一個(gè)字符處開(kāi)始插入
o 在目前光標(biāo)所在的下一行處插入新的一行
O 在目前光標(biāo)所在處的上一行插入新的一行
r 只會(huì)取代光標(biāo)所在的那一個(gè)字符一次
R 會(huì)一直取代光標(biāo)所在的文字瞳氓,直到按下 ESC 為止
一般模式切換到指令行模式
:w 將編輯的數(shù)據(jù)寫(xiě)入硬盤(pán)檔案中
:w! 強(qiáng)制將編輯的數(shù)據(jù)寫(xiě)入硬盤(pán)檔案中
:q 離開(kāi)
:q! 為強(qiáng)制離開(kāi)不儲(chǔ)存檔案
:wq 儲(chǔ)存后離開(kāi)
:wq! 強(qiáng)制儲(chǔ)存后離開(kāi)
:set nu 顯示行號(hào)策彤,設(shè)定之后,會(huì)在每一行的前綴顯示該行的行號(hào)
:set nonu 取消行號(hào)