vi vim常用操作
光標(biāo)移動(dòng)
| 命令 | 說明 |
|---|---|
| w | 移動(dòng)光標(biāo)到下一個(gè)單詞開頭. |
| e | 移動(dòng)光標(biāo)到下一個(gè)單詞結(jié)尾 |
| b | 移動(dòng)光標(biāo)到上一個(gè)單詞. |
| 0 | 移動(dòng)光標(biāo)到本行最開頭. |
| ^ | 移動(dòng)光標(biāo)到本行最開頭的字符處. |
| $ | 移動(dòng)光標(biāo)到本行結(jié)尾處. |
| A | 移動(dòng)光標(biāo)至行尾并處于“追加”狀態(tài),直接編輯 |
| H | 移動(dòng)光標(biāo)到屏幕的首行. |
| M | 移動(dòng)光標(biāo)到屏幕的中間一行. |
| L | 移動(dòng)光標(biāo)到屏幕的尾行. |
| gg | 移動(dòng)光標(biāo)到文檔首行. |
| G | 移動(dòng)光標(biāo)到文檔尾行. |
| :n | 跳至第n行 |
| ctrl + f | 向下翻頁(yè) 同 page down. |
| ctrl + b | 向上翻頁(yè) 同 page up. |
| ctrl + d | 向下翻半頁(yè) 此比較有用 |
| ctrl + u | 向上翻半頁(yè) 此比較有用 |
| ctrl + e | 向下翻一行 |
| ctrl + y | 向上一行 |
| [[ | 轉(zhuǎn)到上一個(gè)位于第一列的“{” |
| ]] | 轉(zhuǎn)到下一個(gè)位于第一列的“}” |
| { | 轉(zhuǎn)到上一個(gè)空行 |
| } | 轉(zhuǎn)到下一個(gè)空行 |
| '' | 兩個(gè)單引號(hào) 此命令相當(dāng)有用, 它移動(dòng)光標(biāo)到上一個(gè)標(biāo)記處, 比如用 gd, * 等查找到某個(gè)單詞后, 再輸入此命令則回到上次停留的位置. |
| '. | 一單一點(diǎn) 此命令相當(dāng)好使, 它移動(dòng)光標(biāo)到上一次的修改行. |
| `. | 一倒引一點(diǎn) 此命令相當(dāng)強(qiáng)大, 它移動(dòng)光標(biāo)到上一次的修改點(diǎn). |
替換、刪除、復(fù)制、粘貼、撤銷、重復(fù)
| 命令 | 說明 |
|---|---|
| rc | 用 c 替換光標(biāo)所指向的當(dāng)前字符; |
| nrc | 用 c 替換光標(biāo)所指向的前 n 個(gè)字符; |
| 5rA | 用 A 替換光標(biāo)所指向的前 5 個(gè)字符; |
| x | 刪除光標(biāo)所指向的當(dāng)前字符; |
| nx | 刪除光標(biāo)所指向的前 n 個(gè)字符; |
| 3x | 刪除光標(biāo)所指向的前 3 個(gè)字符; |
| dw | 刪除光標(biāo)右側(cè)的字; |
| ndw | 刪除光標(biāo)右側(cè)的 n 個(gè)字; |
| 3dw | 刪除光標(biāo)右側(cè)的 3 個(gè)字; |
| db | 刪除光標(biāo)左側(cè)的字; |
| ndb | 刪除光標(biāo)左側(cè)的 n 個(gè)字; |
| 5db | 刪除光標(biāo)左側(cè)的 5 個(gè)字; |
| dd | 刪除光標(biāo)所在行,并去除空隙; |
| ndd | 刪除(剪切) n 行內(nèi)容,并去除空隙; |
| 3dd | 刪除(剪切) 3 行內(nèi)容,并去除空隙; |
| d$ | 從當(dāng)前光標(biāo)起刪除字符直到行的結(jié)束; |
| d0 | 從當(dāng)前光標(biāo)起刪除字符直到行的開始; |
| J | 刪除本行的回車符(CR),并和下一行合并。 |
| s | 用輸入的正文替換光標(biāo)所指向的字符; |
| S | 刪除當(dāng)前行,并進(jìn)入編輯模式; |
| ns | 用輸入的正文替換光標(biāo)右側(cè) n 個(gè)字符; |
| nS | 刪除當(dāng)前行在內(nèi)的 n 行,并進(jìn)入編輯模式; |
| cw | 用輸入的正文替換光標(biāo)右側(cè)的字; |
| cW | 用輸入的正文替換從光標(biāo)到行尾的所有字符(同 c$ ); |
| ncw | 用輸入的正文替換光標(biāo)右側(cè)的 n 個(gè)字; |
| cb | 用輸入的正文替換光標(biāo)左側(cè)的字; |
| ncb | 用輸入的正文替換光標(biāo)左側(cè)的 n 個(gè)字; |
| cd | 用輸入的正文替換光標(biāo)的所在行; |
| ncd | 用輸入的正文替換光標(biāo)下面的 n 行; |
| c$ | 用輸入的正文替換從光標(biāo)開始到本行末尾的所有字符; |
| c0 | 用輸入的正文替換從本行開頭到光標(biāo)的所有字符。 |
| p | 小寫字母 p,將緩沖區(qū)的內(nèi)容粘貼到光標(biāo)的后面; |
| P | 大寫字母 P,將緩沖區(qū)的內(nèi)容粘貼到光標(biāo)的前面。 |
| yy | 復(fù)制當(dāng)前行到內(nèi)存緩沖區(qū); |
| nyy | 復(fù)制 n 行內(nèi)容到內(nèi)存緩沖區(qū); |
| 5yy | 復(fù)制 5 行內(nèi)容到內(nèi)存緩沖區(qū); |
| “+y | 復(fù)制 1 行到操作系統(tǒng)的粘貼板; |
| “+nyy | 復(fù)制 n 行到操作系統(tǒng)的粘貼板。 |
| u | 撤消前一條命令的結(jié)果; |
| . | 重復(fù)最后一條修改正文的命令。 |
插入模式
| 命令 | 說明 |
|---|---|
| i | 在光標(biāo)左側(cè)插入正文 |
| a | 在光標(biāo)右側(cè)插入正文 |
| o | 在光標(biāo)所在行的下一行增添新行 |
| O | 在光標(biāo)所在行的上一行增添新行 |
| I | 在光標(biāo)所在行的開頭插入 |
| A | 在光標(biāo)所在行的末尾插入 |
保存,退出,環(huán)境變量
| 命令 | 說明 |
|---|---|
| :w | 將編輯的數(shù)據(jù)寫入硬盤檔案中(常用) |
| :w! | 若文件屬性為『只讀』時(shí),強(qiáng)制寫入該檔案。不過,到底能不能寫入, 還是跟你對(duì)該檔案的檔案權(quán)限有關(guān) |
| :q | 離開 vi (常用) |
| :q! | 若曾修改過檔案,又不想儲(chǔ)存,使用 ! 為強(qiáng)制離開不儲(chǔ)存檔案。 |
| :wq | 儲(chǔ)存后離開 |
| :wq! | 強(qiáng)制儲(chǔ)存后離開 |
| ZZ | 若檔案沒有更動(dòng),則不儲(chǔ)存離開,若檔案已經(jīng)被更動(dòng)過,則儲(chǔ)存后離開! |
| :w [filename] | 另存為 |
| :r [filename] | 在編輯的數(shù)據(jù)中,讀入另一個(gè)檔案的數(shù)據(jù)。亦即將 『filename』 這個(gè)檔案內(nèi)容加到光標(biāo)所在行后面 |
| :! command | 暫時(shí)離開 vi 到指令列模式下執(zhí)行 command 的顯示結(jié)果!例如 『:! cat ./test』即可在 vi 當(dāng)中察看當(dāng)前文件夾中的test文件中的內(nèi)容 |
| Esc | 退出插入模式,進(jìn)入命令模式 |
| :set nu | 顯示行號(hào),設(shè)定之后,會(huì)在每一行的前綴顯示該行的行號(hào),這一點(diǎn),非常有用,當(dāng)我們修改配置文件的時(shí)候,能知道多少行,就方便多了。 |
| :set nonu | 與 set nu 相反,取消行號(hào) |