作者:Gakki
vi / vim 的基本概念
- 什么是 vi,vi 即終端中的一款編輯器。
- 在很多 Linux 發(fā)行版中,直接把 vi 做成 vim 的軟鏈接。vim 即 vi improved,是從 vi 發(fā)展來的一個文本編輯器。支持代碼補全、編譯、錯誤跳轉(zhuǎn)等多項功能,被稱之為 " 編輯器之神 "。
- vi / vim 沒有圖形界面,只能編輯文本內(nèi)容,不支持鼠標(biāo)操作,沒有菜單,只有命令。
- 基本上 vi / vim 共分為三種模式,分別為命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。
命令模式(Command mode)
命令模式(Command mode):控制屏幕光標(biāo)的移動,字符、字或行的刪除,移動復(fù)制某區(qū)段及進(jìn)入輸入模式(Insert mode)或底線命令模式(Last line mode)。
- 當(dāng)我們啟動 vi/vim 命令時,如
vim test.txt,便進(jìn)入命令模式。在此狀態(tài)下,敲擊鍵盤動作會被 Vim 識別為命令,而非輸入字符。如當(dāng)我們按下i,并不要輸入 i 字符,而是會被當(dāng)作命令。在命令模式中,常用的幾個命令有:- i:切換到輸入模式,以輸入字符。
- x:刪除當(dāng)前光標(biāo)所在處的字符。
-
:(英文冒號):切換到底線命令模式,在最底一行輸入命令。
輸入模式(Insert mode)
輸入模式(Insert mode):只有在輸入模式(Insert mode)下,才可以進(jìn)行文字輸入。在命令模式中按下 i 就進(jìn)入輸入模式;按 [ ESC ] 鍵可回到命令行模式。在輸入模式中,可以使用以下按鍵:
- 字符按鍵以及Shift組合:輸入字符
- ENTER:回車鍵,換行
- BACK SPACE:退格鍵,刪除光標(biāo)前一個字符
- DEL:刪除鍵,刪除光標(biāo)后一個字符
- 方向鍵:在文本中移動光標(biāo)
- HOME/END:移動光標(biāo)到行首/行尾
- Page Up/Page Down:上/下翻頁
- Insert:切換光標(biāo)為輸入/替換模式,光標(biāo)將變成豎線/下劃線
- ESC:退出輸入模式,切換到命令模式
底線命令模式(Last line mode)
底線命令模式(Last line mode):在命令模式下按下 :(英文冒號)就進(jìn)入底線命令模式;按 [ ESC ] 鍵可回到命令行模式。在底線命令模式中,基本命令有:
| 命令 | 功能 |
|---|---|
| w | (write)保存文件 |
| q | (quit)退出程序 |
| q! | (quit)不保存強制退出 vi |
| wq | (write&quit)保存并退出 vi |
vi / vim 使用實例
1. 進(jìn)入命令模式
- 輸入 vi 文件名稱,就進(jìn)入 vi 全屏編輯畫面
- 如:
vi test.txt
vi test.txt
注:
- 如果沒有 text.txt 文件,會自動創(chuàng)建一個 text.txt 文件。
- 現(xiàn)在是處于命令模式。需要按下
i或者a或者o等字符切換到輸入模式才可以輸入文字。
2. 進(jìn)入輸入模式
- 進(jìn)入命令模式之后,按下
i或者a或者o等字符即可進(jìn)入輸入模式。在輸入模式中,你可以發(fā)現(xiàn)在左下角有個 --INSERT--,這表示當(dāng)前可輸入字符了。
進(jìn)入輸入模式
注: - 按下 [ESC] 建可回到命令模式。
3. 進(jìn)入底線命令模式
- 當(dāng)我們寫完之后需要保存或者是不保存退出 vi。只需要先在輸入模式中按下[ESC] 建回到命令模式,然后輸入
:切換到底線命令模式。最后在輸入命令即可。 - 如:輸入
wq(保存并退出 vi)或q(不保存直接退出 vi)或q!(不保存強制退出 vi)
退出 vi 模式
4. 其他
- 底線命令模式中可用的命令說明
| 命令 | 功能 |
|---|---|
| w | (write)保存文件(常用) |
| w! | 若文件屬性為 [只讀] 時,強制寫入該文檔。但具體能否寫入,需要看該文檔的權(quán)限。 |
| q | (quit)退出程序 |
| q! | (quit)不保存強制退出 vi |
| wq | (write&quit)保存并退出 vi |
| w [file1] | 將編輯的數(shù)據(jù)另存為 file1 |
| r [file1 | 在編輯的數(shù)據(jù)中,讀取 file1 的數(shù)據(jù)。也就是將 file1 文檔里的內(nèi)容加到游標(biāo)所在行后面 |
| n1,n2 w [file1] | 將 n1 到 n2 的內(nèi)存存儲到 file1 文件里。 |
| :! command | 暫時離開 vi 到底線命令模式下執(zhí)行 command 的顯示結(jié)果。如::! ls /home即在 vi 模式中察看 /home 中執(zhí)行 ls
|
注: ! 在 vi 當(dāng)中,常常具有 [強制] 的意思。


