模式切換
| 模式 | 說(shuō)明 |
|---|---|
| 普通模式 | 打開(kāi)文件后默認(rèn)模式,該模式下可進(jìn)行光標(biāo)移動(dòng)、頁(yè)面翻轉(zhuǎn)等查看操作;任意模式下按ESC即可退回該模式 |
| 可視模式 | 高亮選中的文本時(shí)會(huì)進(jìn)入該模式,常用于選中區(qū)域文本;最簡(jiǎn)單的按v然后移動(dòng)光標(biāo)即可選中多行文本 |
| 插入模式 | 即可通過(guò)鍵盤(pán)修改文本的模式,編寫(xiě)代碼一般處于該模式中;一般按i進(jìn)入編輯狀態(tài),輸出文本 |
打開(kāi)文件
vim外部
| 命令 | 說(shuō)明 |
|---|---|
| vim filename | 打開(kāi)或新建filename文件 |
vim內(nèi)部
| 命令(普通模式下) | 說(shuō)明 |
|---|---|
| :e new_filename | 再打開(kāi)new_filename文件 |
| :split new_filename | 水平分屏打開(kāi)new_filename |
| :vsplit new_filename | 垂直分屏打開(kāi)new_filename |
分屏切換窗口
| 命令(普通模式下) | 說(shuō)明 |
|---|---|
| ctl+w+j | 移動(dòng)到下邊窗口 |
| ctl+w+k | 移動(dòng)到上邊窗口 |
| ctl+w+h | 移動(dòng) 到左邊窗口 |
| ctl+w+l | 移動(dòng)到后邊窗口 |
刷新文件內(nèi)容
| 命令(普通模式下) | 說(shuō)明 |
|---|---|
| :e | 強(qiáng)制刷新整個(gè)文件內(nèi)容,跟磁盤(pán)保持一致 |
退出文件
| 命令(普通模式下) | 說(shuō)明(如果強(qiáng)制執(zhí)行,在后面加 '!' 符號(hào)即可) |
|---|---|
| :w | 保存文件的修改內(nèi)容到文件 |
| :q | 退出文件編輯 |
| :wq | 保存文件并退出 |
移動(dòng)光標(biāo)
| 命令(普通模式下) | 說(shuō)明(n表示數(shù)字) |
|---|---|
| j | 向下移動(dòng)1行 |
| k | 向上移動(dòng)1行 |
| h | 向左移動(dòng)1個(gè)字符 |
| l | 向右移動(dòng)1個(gè)字符 |
| nj | 向下移動(dòng)n行 |
| nk | 向上移動(dòng)n行 |
| nh | 向左移動(dòng)n個(gè)字符 |
| nl | 向右移動(dòng)n個(gè)字符 |
| w | 向右移動(dòng)到下一個(gè)詞首 |
| b | 向左移動(dòng)到上一個(gè)詞首 |
| e | 向右移動(dòng)到下一個(gè)詞尾 |
| ) | 移動(dòng)到句尾 |
| ( | 移動(dòng)到句首 |
| } | 移動(dòng)到段落尾 |
| { | 移動(dòng)到段落首 |
| gg | 移動(dòng)到第一行 |
| G | 移動(dòng)到最后一行 |
| nG | 移動(dòng)到第n行 |
| 0 | 移動(dòng)到當(dāng)前行首 |
| ^ | 移動(dòng)到當(dāng)前行首第一個(gè)非空字符處 |
| $ | 移動(dòng)到當(dāng)前行尾 |
文本插入
| 命令 | 說(shuō)明 |
|---|---|
| i | 在光標(biāo)位置開(kāi)始編輯 |
| I(大寫(xiě)i) | 在當(dāng)前行首開(kāi)始編輯 |
| a | 在光標(biāo)后開(kāi)始編輯 |
| A | 在當(dāng)前行尾開(kāi)始編輯 |
| o | 當(dāng)前行下面新建一行開(kāi)始編輯 |
| O | 當(dāng)前行上面新建一行開(kāi)始編輯 |
| s | 刪除當(dāng)前光標(biāo)字符,并開(kāi)始編輯 |
| S | 清除當(dāng)前行內(nèi)容,并在行首開(kāi)始編輯 |
| cc | 刪除當(dāng)前行,并開(kāi)始編輯 |
| r | 按下后,輸入新的字符,替換當(dāng)前光標(biāo)所在字符 |
| R | 按夏侯,輸入新的字符串,替換當(dāng)前光標(biāo)后同長(zhǎng)度的字符串,直到ESC退出 |
文本刪除
| 命令 | 說(shuō)明 |
|---|---|
| x | 刪除當(dāng)前光標(biāo)所在字符 |
| dw | 刪除當(dāng)前光標(biāo)位置的詞 |
| dnw | 刪除當(dāng)前光標(biāo)位置n個(gè)詞 |
| d0 | 刪除當(dāng)前光標(biāo)到行首的所有字符 |
| d$ | 刪除當(dāng)前光標(biāo)到行尾的所有字符 |
| dd | 刪除當(dāng)前行 |
| ndd | 刪除當(dāng)前光標(biāo)坐在行開(kāi)始的n行字符 |
| dnj | 刪除當(dāng)前行以及下面n行 |
| dnk | 刪除當(dāng)前行以及上面n行 |
文本復(fù)制粘貼
| 命令 | 說(shuō)明 |
|---|---|
| p | 粘貼文本到當(dāng)前光標(biāo)位置 |
| yy | 復(fù)制一行 |
命令回退
| 命令 | 說(shuō)明 |
|---|---|
| u | 回退前一次操作 |
查找和替換
| 命令 | 說(shuō)明 |
|---|---|
| /pattern + enter | 向下查找pattern匹配的字符,并高亮顯示 |
| ?pattern + enter | 向上查找pattern匹配的字符,并高亮顯示 |
| n | 光標(biāo)定位到下一個(gè)匹配的字符位置,并高亮顯示 |
| N | 光標(biāo)定位到上一個(gè)匹配的字符位置,并高亮顯示 |
| cw newword | 光標(biāo)所在詞替換為newword |
| . | 光標(biāo)所在詞替換為上一次替換的詞 |
| :%s/old_p/new_p/g | 將當(dāng)前文本所有old_p替換為new_p |
| :%s/p//gn | 統(tǒng)計(jì)當(dāng)前文件命令p的字符的個(gè)數(shù) |
代碼跳轉(zhuǎn)
| 命令 | 說(shuō)明 |
|---|---|
| ctl+] | 轉(zhuǎn)到符號(hào)定義 |
| :tag 函數(shù)名 | 轉(zhuǎn)到函數(shù) |
| ctl + o | 回到上一個(gè)位置 |
| ctl+ i | 回到下一個(gè)位置 |
| [{ | 跳到函數(shù)頭 |
| ]} | 跳到函數(shù)尾 |
| gd | 跳轉(zhuǎn)到函數(shù)定義,或者當(dāng)前同名變量高亮 |