- 所有的Linux distributions都會(huì)內(nèi)置vi文本編輯器
- 很多軟件的編輯接口都會(huì)主動(dòng)調(diào)用vi文本編輯器
- vim可以看做vi的高級(jí)版本,有程序編輯能力,強(qiáng)大好用
一、Vim的三種模式
- 命令模式:控制光標(biāo)移動(dòng),對(duì)文本進(jìn)行復(fù)制、粘貼、刪除和查找
- 末行模式:保存或退出文件,以及其他的一些功能
- 插入模式:編輯文本內(nèi)容
二、三種模式的切換和使用

Vim編輯器模式切換示意圖
Note:
- 當(dāng)運(yùn)行vim編輯器時(shí),默認(rèn)進(jìn)入命令模式
- 插入模式和末行模式之間不能直接切換
- 按下
a、i、o等鍵時(shí),進(jìn)入插入模式- 按下
:等鍵時(shí),進(jìn)入末行模式- 按下
Esc鍵回到命令模式
2.1 命令模式說明
| 按鍵 | 作用 |
|---|---|
| dd | 刪除(剪切)光標(biāo)所在行 |
| ndd | 刪除(剪切)從光標(biāo)處開始的n行 |
| yy | 復(fù)制光標(biāo)所在行 |
| nyy | 復(fù)制從光標(biāo)處開始的n行 |
| p | 粘貼(將刪除或復(fù)制的數(shù)據(jù)粘貼到光標(biāo)下一行) |
| P | 粘貼(將刪除或復(fù)制的數(shù)據(jù)粘貼到光標(biāo)上一行) |
| u | 撤銷(后退) |
| [Ctrl] + r | 重做上一個(gè)操作(前進(jìn)) |
2.2 進(jìn)入插入模式的說明
| 按鍵 | 作用 |
|---|---|
| i/I | 進(jìn)入插入模式: i: 從當(dāng)前光標(biāo)插入 I: 從當(dāng)前所在行的第一個(gè)非空格符處插入(即從開頭插入) |
| a/A | 進(jìn)入插入模式: a: 從當(dāng)前光標(biāo)的下一個(gè)字符處插入 A: 從當(dāng)前所在行的最后一個(gè)字符處插入(即從行末尾插入) |
| o/O | 進(jìn)入插入模式: o: 從當(dāng)前光標(biāo)的下一行插入新的一行 O: 從當(dāng)前光標(biāo)的上一行插入新的一行 |
| r/R | 進(jìn)入替換模式: r: 替換光標(biāo)所在的字符 R: 一直替換光標(biāo)所在的字符,直到按下[Esc]鍵為止 |
Note:
界面左下角出現(xiàn)--INSERT--或--REPLACE--字樣
2.3 末行模式的說明
2.3.1 常用命令
| 按鍵 | 作用 |
|---|---|
| :w | 將編輯的數(shù)據(jù)從內(nèi)存寫入硬盤 |
| :w! | 若文件屬性為只讀,強(qiáng)制寫入 |
| :q | 退出vim環(huán)境 |
| :q! | 強(qiáng)制退出,且不保存文件 |
| :wq! | 強(qiáng)制保存并退出 |
| :set nu | 顯示行號(hào) |
| :set nonu | 不顯示行號(hào) |
| :n | 光標(biāo)移動(dòng)到第n行 |
2.3.2 替換命令
| 按鍵 | 作用 |
|---|---|
| :s/word1/word2 | 將當(dāng)前光標(biāo)所在行的第一個(gè)word1替換為word2 |
| :s/word1/word2/g | 將當(dāng)前光標(biāo)所在行的所有word1替換為word2 |
| :%s/word1/word2 | 將全文中每一行的第一個(gè)word1替換為word2 |
| :%s/word1/word2/g | 將全文中所有的word1替換為word2 |
| :n,ms/word1/word2/g | 將n行到m行的所有word1替換為word2 |
| :.,$s/word1/word2/gc | 將光標(biāo)所在行到最后一行的所有word1替換為word2 注意:替換前需要用戶進(jìn)行確認(rèn)是否替換 |
2.3.3 查找命令
| 按鍵 | 作用 |
|---|---|
| /word | 在文本中從上至下搜索word |
| ?word | 在文本中從下至上搜索word |
| n | 重復(fù)前一個(gè)查找操作 |
| N | 反向進(jìn)行前一個(gè)查找操作 |
三、塊選擇
| 按鍵 | 作用 |
|---|---|
| [Ctrl] + v | 塊選擇,用矩形的方式選擇數(shù)據(jù) |
| v | 字符選擇,將光標(biāo)經(jīng)過的地方反白 |
| V | 行選擇,將光標(biāo)經(jīng)過的行反白 |
| y | 復(fù)制反白的數(shù)據(jù) |
| d | 刪除反白的數(shù)據(jù) |
Note:
界面左下角出現(xiàn)--VISUAL BLOCK--或--VISUAL--或--VISUAL LINE--字樣
四、多文件編輯
同時(shí)打開多個(gè)文件,如: vim hosts man.config
| 按鍵 | 作用 |
|---|---|
| :n | 編輯下一個(gè)文件 |
| :N | 編輯上一個(gè)文件 |
| :first | 打開第一個(gè)文件 |
| :last | 打開最后一個(gè)文件 |
| :files | 列出目前vim打開的所有文件 |
五、多窗口功能
| 按鍵 | 作用 |
|---|---|
| :sp filename | 打開一個(gè)新窗口 有filename: 打開一個(gè)新文件 無filename: 兩個(gè)窗口為同一個(gè)文件內(nèi)容(同步顯示) |
| [Ctrl] + w + ? | 光標(biāo)移動(dòng)到下方的窗口 |
| [Ctrl] + w + ? | 光標(biāo)移動(dòng)到上方的窗口 |