一文搞定Vim/Vi编辑器
1.Vi/Vim的工作模式介紹
2.命令模式
3.輸入模式
4.底線命令模式
1. Vi/Vim的工作模式介紹
命令模式:利用vi/vim [已經(jīng)存在的文件或不存在的文件]就會默認(rèn)的進(jìn)入命令模式
輸入模式:我們想要在vim編輯器下進(jìn)行插入數(shù)據(jù)的操作,那么就需要切換到此模式
末行模式:在末行模式可以輸入一些命令,比如保存退出等等
輸入模式不可以和底線命令模式相互轉(zhuǎn)換
2.命令模式
2.1 在命令模式下的常用指令
| h | 光標(biāo)左移 |
| j | 光標(biāo)上移 |
| k | 光標(biāo)下移 |
| l | 光標(biāo)右移 |
| 0 | 光標(biāo)移動(dòng)到本行行首 |
| $ | 光標(biāo)移動(dòng)到本行行尾 |
| gg | 移動(dòng)到文件的頭處 |
| G | 移動(dòng)到文件最后一行的開頭 |
| n+G | 跳轉(zhuǎn)n行 |
| x | 刪除光標(biāo)前邊的一個(gè)字符 |
| n+x | 刪除 |
| X | 刪除光標(biāo)后邊一個(gè)字符 |
| dw | (注意把光標(biāo)移動(dòng)到單詞的詞頭)刪除一個(gè)單詞 |
| d0 | 刪除本行光標(biāo)前面的數(shù)據(jù) |
| D(或者d加shift4) | 刪除本行光標(biāo)后邊的數(shù)據(jù) |
| dd | 刪除當(dāng)前光標(biāo)所在行 |
| n1,n2dd | 刪除指定范圍內(nèi)的行數(shù) |
| n+dd | 刪除從本行開始的n行 |
| u | 撤銷 |
| ctrl+r反撤銷 | |
| yy | 復(fù)制光標(biāo)本行內(nèi)容 |
| n+yy | 復(fù)制從本行開始后邊的n行 |
| P | 粘貼到光標(biāo)的所在行(如果本行有內(nèi)容那么把內(nèi)容下移一行) |
| p | 粘貼到光標(biāo)所在的小一行(如果下一行有內(nèi)容那么把下一行再往下移動(dòng)一行) |
| r | 光標(biāo)覆蓋的字符可以更改(只是一個(gè)字符) |
| K | (光標(biāo)放在該字符串上):可以查找函數(shù)等再man里邊的內(nèi)容 |
| << | 向左縮進(jìn)(前面可以跟數(shù)字) |
| >> | 向右縮進(jìn)(前面可以加數(shù)字) |
| d+G | 刪除光標(biāo)所在行一下的全部內(nèi)容 |
命令模式下所有的刪除操作都可以看成剪切,比如我們用x進(jìn)行剪切,那么p就可以粘貼剛才刪除的內(nèi)容
2.2 在命令模式下的查找指令
| /+字符串 | 查找指定字符串內(nèi)容 |
| ?+字符串 | 查找指定字符串內(nèi)容 |
| # | 選定指定的字符串 |
三種查找方式都可以使用N/n進(jìn)行遍歷
2.2 在命令模式下的可視化
在命令模式下輸入v進(jìn)入可視化,進(jìn)入可視化后的指令:
| y | 進(jìn)入可視化操作后的復(fù)制 |
| d | 進(jìn)入可視化操作的刪除 |
| P | 把復(fù)制的文本放在光標(biāo)所在的位置 |
| p | 把復(fù)制的文本放在光標(biāo)所覆蓋單詞后邊 |
3.輸入模式
進(jìn)入輸入模式的方式:
| a | 在光標(biāo)覆蓋的字符的后邊進(jìn)行插入 |
| A | 把光標(biāo)移動(dòng)到本行尾部插入 |
| i | 在光標(biāo)覆蓋字符前面插入 |
| I | 把光標(biāo)移動(dòng)到本行的頭部進(jìn)行插入 |
| o | 在光標(biāo)所處行的下一行開辟新的一行進(jìn)行插入 |
| O | 在光標(biāo)所處位置的上面一行進(jìn)行插入 |
| s | 刪除光標(biāo)所覆蓋的字符進(jìn)行插入 |
| S | 刪除本行所有的字符再重新編輯本行 |
4.底線命令模式
4.1進(jìn)出底線命令模式
1.輸入:進(jìn)入底線命令模式
2.以回車退出底線命令模式
4.2底線命令模式的字符串的替換
| s/需要替換的字符串/新的字符串 | 只能替換光標(biāo)所在行的第一個(gè)需要替換的字符串 |
| s/需要替換的字符串/新的字符串+/g | 替換所有光標(biāo)所在行指定需要替換的字符串 |
| 數(shù)字+,+數(shù)字+s/需要替換的字符串/新的字符串+/g | 替換兩個(gè)數(shù)字之間的所有行數(shù)需要替換的字符串 |
4.2底線命令模式的保存退出
| q | 不保存退出 |
| w | 保存修改 |
| wq | 保存修改并退出 |
| ZZ | 保存修改并退出(快捷鍵) |
| wq! | 保存修改并退出(文件擁有者和root可以使用) |
4.3底線模式的分屏
| sp | 為當(dāng)前文件水平分層(sp+其他文件) |
| vsp+ | 垂直分屏(vsp+其他文件) |
| ctrl+ww | 在兩個(gè)屏幕之間切換 |
| q | 分屏模式下退出光標(biāo)所在的窗口 |
| qall | 分屏模式下把所有窗口都刪除掉 |
4.4底線命令模式的其他操作
1.r 指定文件名就可以把指定文件的內(nèi)容導(dǎo)入進(jìn)去
2.! +系統(tǒng)的命令:可以在不退出vi模式下使用系統(tǒng)命令
3.r !使用的指令:把當(dāng)前用戶輸入指令的執(zhí)行結(jié)果導(dǎo)入vim所在文件中
4.set nu:給打開的文本加上行號
5.map 一系類指令 :把一系列指令定義成快捷鍵
6.ab:意思是把a(bǔ)替換成b
對于第3個(gè)其實(shí)是我們前兩點(diǎn)的聯(lián)合,我們舉個(gè)例子,把ls的查詢結(jié)果導(dǎo)入vim所處的文件中
我們回車后,會把我們所查詢到的內(nèi)容全部導(dǎo)入vim所在文件(從我們光標(biāo)所在行開始添加)
10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzM3MDY4,size_16,color_FFFFFF,t_70)
我們把第5個(gè)命令舉一個(gè)例子:
我們可以在命令模式下直接使用快捷鍵去注釋光標(biāo)所在行,我們把ctrl+p作為這一個(gè)快捷鍵,正常的操作,我們需要把光標(biāo)移動(dòng)到頭部并進(jìn)入插入模式,即命令I(lǐng),插入一個(gè)#表示注釋,再然后按【Esc】回到命令模式,那么我們就可以這么定義,即在命令行模式下輸入:map (ctrl+v+p或者ctrl+v和ctrl+p) I#<ESC>
即(此時(shí)光標(biāo)所在第二行):
我們回車后,在光標(biāo)的任意一行都可以按下ctrl+p進(jìn)行注釋的操作
我們設(shè)置快捷鍵的時(shí)候一定要有ctrl+v再加上我們需要設(shè)置的快捷鍵
關(guān)于第6點(diǎn)ab的意思是我們在底線命令行模式下可以設(shè)置字符的替換,比如我們把我們在文件里輸入的aa變成abccba,第一步,使用ab進(jìn)行替換:
第二部在插入模式寫入aa
回車后
總結(jié)
以上是生活随笔為你收集整理的一文搞定Vim/Vi编辑器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 彻底掌握Linux文件与目录管理命令?进
- 下一篇: 详解Linux的压缩解压缩命令