作為軟件測試工程師,不可避免需要操作到 Linux 系統,vi/vim 是 Linux 系統內置的不可或缺的文本編輯命令,VIM 是 vi 的加強版本,兼容 vi 的所有指令,不僅能編輯文本,而且還具有 shell 程序編輯的功能,可以不同顏色的字體來辨別語法的正確性,極大方便了程序的設計和編輯性。
vi/vim 三種模式:命令模式/壹般模式(command mode)、插入模式(input mode)、末行模式/指令命令模式(last line mode)。
命令模式/壹般模式:
剛剛啟動 vi/vim,則進入壹般模式,可以移動光標、復制粘貼、刪除字符等。此狀態下鍵盤輸入會被識別為命令操作,常用到的包括 i(切換到插入模式),x(刪除當前光標所在字符),:(切換到命令行模式)。
插入模式:
在壹般模式下按下鍵盤i, I, o, O, a, A進入插入模式,屏幕的左下方會出現--INSERT--的字樣,表示當前模式下,用戶可以編輯修改文本的內容。按下Esc則退出編輯模式。
末行模式/指令命令模式:
在壹般模式下按下鍵盤: / ?任意壹個,光標移動到最下面壹行,進入末行模式。可以查找數據、替換、可保存文件、退出 vi、顯示行號等操作。
1、vi lemon.txt:
打開 lemon.txt 文件進入壹般模式;當 lemon.txt 不存在則會創建 lemon.txt 文件,保存退出後,則新建成功。
2、移動光標:
進入壹般模式後,可在鍵盤輸入以下,移動光標位置。
[Ctrl]+[f]:光標向下移動壹頁。
[Ctrl]+[b]:光標向上移動壹頁。
0:移動到光標所在這壹行的最前面字符處。
$:移動到光標所在這壹行的最後面字符處。
[PgUp]/[PgDn]/[Home]/[End]按鍵:從當前光標處往上、下、左、右移動。
G:移動到這個文件的最後壹行。
g:移動到這個文件的第壹行。
N[Enter]:N 為數字,光標向下移動 N 行。
3、刪除、復制和粘貼:
進入壹般模式後,可在鍵盤輸入以下,實現刪除、復制、粘貼。
x,X:在壹行字中,x 為向後刪除壹個字符(相當於[Del]鍵),X 為向前刪除壹個字符(相當於[Backspace])。
dd:刪除光標所在的壹整行。
ndd:刪除光標所在的向下 n 行。
yy:復制光標所在的壹行。
nyy:復制光標所在的向下 n 行。
p,P:p 為將已復制的內容在光標的下壹行粘貼,P 則為粘貼在光標的上壹行。
4、壹般模式切換到插入模式:
進入壹般模式後,可在鍵盤輸入以下,切換到插入模式,進行文件編輯操作。
i,I:進入插入模式,i 為從目前光標所在處插入。I 為在目前所在行的第壹個非空格字符處開始插入。
a,A:進入插入模式。a 為從目前光標所在處的下壹個字符處開始插入。A 為從所在行的最後壹個字符處開始插入。
o,O:進入插入模式。o 為在下壹行插入。O 為在上壹行插入。
5、查找和替換:
按 vi 進入文件後,可進行以下操作進行查找和替換
/lemon:向下尋找壹個名稱為 lemon 的字符串。
?lemon:向上尋找壹個名稱為 lemon 的字符串。
:n1,n2s/lemon1/lemon2/g:在第 n1 行和 n2 行之間尋找 lemon1 這個字符串,並且將其替換為 lemon2.
:1,$s/lemon1/lemon2/g:從第壹行到最後壹行尋找 lemon1 這個字符串,並且將其替換為 lemon2.
:1,$s/lemon1/lemon2/gc:從第壹行到最後壹行尋找 lemon1 這個字符串,並且將其替換為 lemon2.且在替換前顯示提示字符給用戶確認是否需要替換。
6、編輯數據後切換到末行模式:
進行文件編輯後,按鍵盤Esc退出編輯模式,並可以進行以下操作,
:w:將編輯的數據寫入到硬盤中。
:q:不保存退出 vi;後面加!為強制退出 vi。
:wq:保存後退出 vi。後面加!為強制保存後退出 vi。
VIM 是 vi 的升級版本,除了兼容 vi 的所有指令,VIM 還具有壹些新的特性,主要體現在:
多級撤銷
我們知道在 vi 裏,按 u 只能撤消上次命令,而在 VIM 裏可以無限制的撤消。
易用性
vi 只能運行於 unix 中,而 VIM 不僅可以運行於 unix,windows ,mac 等多操作平臺。
語法加亮
VIM 可以用不同的顏色加亮顯示代碼。
可視化操作
VIM 不僅可以在終端運行,也可以運行於 x window、 mac os、 windows。