vim教程
學習自:Linux vi/vim
0、常用(本節為常用指令,初學者請從第1節開始)
命令模式下:
- i:光標處輸入
- a:光標后輸入
- o:下一行輸入
- u:后退一步(相當于CTRL+Z)
- CTRL+R:前進一步(相當于CTRL+Y)
- .:重復前一個動作(相當于再執行一次前一個動作)
- SHIFT+G:移到末尾
- 0或HOME:行首
- $或END:行尾
- d$:剪切光標到該行末尾所有字符
- dG:剪切光標到尾行所有字符
- d1G:剪切光標到首行所有字符
- dd:剪切當前行
- 數字+dd:剪切當前行及之后共n行
- yG:復制光標到尾行
- y1G:復制光標到首行
- yy:復制當前行
- p、P:行后/前粘貼
- g:移動至該行開頭
- G:尾行
- GG:首行
- /word:向下查找
- ?word:向上查找
- n:重復查找并向下移動光標至找到的word
- N:重復查找并向上移動
- 取消查找時的高亮顯示 :nohl
- 數字+方向:向指定方向移動若干個光標/行
- :set nu:顯示行號 :set nonu:不顯示行號
輸入模式下:
- HOME:行首
- END:行尾
- pageup/pagedown:翻頁
- ESC/CTRL+C:返回命令模式
1、何為vim
vim是從vi發展而來的一種文本編輯器,是一種程序開發工具。具有代碼補全、編譯、錯誤跳轉等方便編程的功能。
vim官網:https://www.vim.org/
2、vim鍵盤圖

3、vim模式
vim有3種模式:
- 命令(Command):該模式下敲擊鍵盤會被識別為某個指令;
- 輸入(Insert):輸入、編輯文本;
- 末行(Last Line):也是一種命令模式
模式進入與轉換

1)命令模式
①如何進入
剛剛啟動vim時進入的就是vim模式。
在輸入、末行模式下按ESC進入命令模式。
②常用的命令
- i a o:切換到輸入模式;
- : :切換為末行命令模式。
- :wq :保存并退出
- x:刪除光標所在處的字符
- u:后退一步(相當于CTRL+Z)
- CTRL+R:前進一步(相當于CTRL+Y)
- .:重復前一個動作(相當于再執行一次前一個動作)
命令模式只有一些最基本的命令,而末行命令模式可以輸入更多命令。
③其他一些指令(有:的說明是在末行模式下)
命令模式下的數字,代表指令重復次數。
移動光標 |
|
| h ← | 左移一個字符 |
| j ↓ | 下 |
| k ↑ | 上 |
| l → | 右 |
|
數字+方向 例如:30h 30← |
向指定方向移動指定數量的光標 |
| CTRL+ F 或 Page Down | 下移一頁 |
| CTRL + B 或 Page Up | 上移一頁 |
| CTRL + D | 下移半頁 |
| CTRL + U | 上移半頁 |
| + | 移動到下一行(該行第一個非空格符(Space)之后) |
| - | 移動到上一行(該行第一個非空格符(Space)之后) |
| 數字+空格(space) | 右移指定光標(區別于數字+→,這里可以跨行) |
| 0或HOME | 移動至該行首 |
| $或END | 移動至該行末尾 |
| H(Head) | 移動至屏幕最上方那行行首 |
| M(Median) | 移動至屏幕中間那行行首 |
| L(Last) | 移動至屏幕末尾行行首 |
| g | 移動至文檔該行開頭 |
| G | 移動至文檔尾行 |
| 數字+G | 移動至文檔第幾行 |
| GG | 移動至文檔首行,相當于1G |
| 數字+ENTER | 光標下移n行(等同步于 數字+↓+ENTER) |
查找 |
|
| /word | 向光標之下查找所有word |
| ?word | 向光標之上查找所有word |
| n | 重復上一次查找結果,并向下移動至下一個查找到的word字符首 |
| N | 重復上一次查找結果,并向上移動至下一個查找到的word字符首 |
| 使用/word + n/N可以實現不停地向上/向下定位到某個想要字符處 | |
替換 |
|
| :n1,n2s/word1/word2/g |
在n1和n2行(這兩行都包含)之間查找word1,并將其替換為word2。 :100,200s/vbird/VBIRD/g
|
|
:1,$s/word1/word2/g 或 :%s/word1/word2/g |
從首行到尾行查找word1,并將其替換為word2 |
|
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc |
從首行到尾行查找word1,并將其替換為word2。 但在替換前會讓用戶確認 |
刪除、剪切 |
|
| x或DEL | 刪除光標后的字符 |
| X或BACKSPACE | 刪除光標前的字符 |
| 數字+x | 連續刪除若干個光標后的字符 |
| dd | 剪切光標所在行 |
| 數字+dd | 剪切光標后若干行 |
| d1G | 剪切光標到首行所有行 |
| dG | 剪切光標到末行所有行 |
| d$ | 剪切光標到該行末尾所有字符 |
| d0 | 剪切光標到該行行首所有字符 |
復制、粘貼 |
|
| yy | 復制光標所在行 |
| 數字+yy | 復制光標向下若干行 |
| y1G | 復制光標行至首行的所有行 |
| yG | 復制光標行至尾行的所有行 |
| y0 | 復制光標至該行行首所有數據 |
| y$ | 復制光標至該行行尾所有數據 |
| p | 粘貼在光標下一行(不會覆蓋該行) |
| P | 粘貼在光標上一行(不會覆蓋該行) |
| J | 合并光標及下一行為一行 |
| cc | 清空某行字符,并在該行進入編輯模式 |
| C | 清空光標至該行尾的字符,并在光標處進入編輯模式 |
切換編輯模式(切換后左下角會出現INSERT或REPLACE字樣) |
|
| i | 從光標處輸入 |
| I | 從光標行首第一個非空格字符處輸入 |
| a | 從光標后一個字符處輸入 |
| A | 從光標行尾處輸入 |
| o | 在當前光標下一行輸入新的一行 |
| O | 在當前光標上一行輸入新的一行 |
| r | replace模式,替換光標處的字符 |
| R | replace模式,一直替換下去,直到按ESC |
| ESC | 退出編輯模式 |
切換至末行模式(此時命令會跳轉到最后一行,并以:開始) |
|
存儲文件、離開退出 |
|
| :w | 將編輯的文件寫入硬盤中 |
| :w! | 強制寫入(用于只讀模式) |
| :q | 離開vi |
| :q! | 強制離開(不保存檔案) |
| :wq | 存儲后離開 |
| :wq! | 強制存儲后離開(等同于按CTRL Z) |
| !代表強制 | |
| ZZ | 保存文件(如果修改過)并退出 |
| ZQ | 不保存并強制退出 |
| :w 文件名 | 另存為新文件 |
| :r 文件名 | 讀入另一個文件,以追加的形式加入當前光標行之后 |
| :n1,n2 w 文件名 | 將行n1至n2間的內容另存為新文件 |
| :! 命令 |
暫時離開末行模式,到命令模式下執行命令并顯示結果。 |
vim環境變更 |
|
| :set nu | 顯示所有行號 |
| :set nonu | 取消行號 |
2)輸入模式
①如何進入
在命令模式下按i、a、o進入命令模式
②按鍵
- BACKSPACE←:刪除(光標處)單個字符
- DEL:刪除光標后的單個字符
- ↑↓←→:移動光標
- HOME/END:移動光標至行首/行尾
- Page Up/Page Down:翻頁
- Insert:切換為替換模式,此時會覆蓋文本而不是插入
- ESC/CTRL+C:切換到命令模式
3)末行命令模式
①如何進入
在命令模式下按:(英文冒號)進入末行命令模式;
②與命令模式區別
末行命令模式可以輸入單個/多個字符的命令,因此可用命令更多。
③基本命令(這些命令不一定要寫到多行,可以寫到同一行,每多一個字符就代表多一個指令和功能)
- q:退出程序
- w:保存文件
- wq:保存并退出
- ESC:退出末行命令模式
4、用法
1)創建/進入文件,并進入命令模式
①指令
-
vim 文件:打開指定文件
vim /test/a.txt
- vim +n 文件:打開指定文件,移動至第n行(+號是語法,不能省略)
vim +3 /test/a.txt![]()
- vim +/關鍵字 文件:打開指定文件,并高亮關鍵字
vim +/root /test/a.txt
![]()
②示例
vim test.txt
初始頁面

2)編輯模式
①指令
-
進入
在命令模式下按i,a,o進入編輯模式,此時左下角狀態欄出現INSERT字樣。

此時除了ESC,其他按鍵都視為一般輸入按鈕。
-
回到命令模式:ESC
- 保存并退出:在命令模式下輸入 :wq(其實就是末行模式下輸入wq)



浙公網安備 33010602011771號