作者:永不落的夢(mèng)想
作者主頁(yè):傳送
座右銘:過(guò)去屬于死神,未來(lái)屬于自己
本文專欄:Liunx篇????? 神器使用篇
今日雞湯:當(dāng)你想要放棄的時(shí)候想想當(dāng)初為什么堅(jiān)持到這里
目錄
一、vi和vim介紹
二、vim的三種模式
1.三種模式
2.vim的進(jìn)入和退出
三、vim模式切換
1.切換到命令模式
2.切換到末行模式
3.切換到編輯模式
四、命令模式
1.光標(biāo)移動(dòng)
2.復(fù)制與粘貼
3.剪切/刪除
4.撤銷與恢復(fù)
五、末行模式
1.保存
2.退出
3.調(diào)用外部命令
4.搜索/查找
5.替換
6.顯示行號(hào)
7.切換文件
六、編輯模式
七、vim功能模塊
1.代碼著色
2.簡(jiǎn)易計(jì)算器
八、補(bǔ)充內(nèi)容
1.vim的配置
2.異常退出
3.新建別名
4.退出方式
一、vi和vim介紹
二、vim的三種模式(重點(diǎn))
1.三種模式
命令模式:不能對(duì)文件直接編輯,只能通過(guò)快捷鍵進(jìn)行一些操作(如移動(dòng)光標(biāo)、復(fù)制、粘貼等),打開(kāi)vim后默認(rèn)進(jìn)入命令模式;
末行模式:可在末行輸入一些命令對(duì)文件進(jìn)行操作(如搜索、替換、保存、退出、高亮等);
編輯模式:可對(duì)文件內(nèi)容進(jìn)行編輯;
2.vim的進(jìn)入和退出
進(jìn)入:
語(yǔ)法1:vim 文件路徑??????? //直接打開(kāi)指定文件(光標(biāo)位于首行或上次關(guān)閉文件時(shí)光標(biāo)的所在行)
語(yǔ)法2:vim +數(shù)字 文件路徑????? //打開(kāi)指定文件并將光標(biāo)移動(dòng)到指定行(數(shù)字對(duì)應(yīng)的行數(shù))
語(yǔ)法3:vim +/關(guān)鍵詞 文件路徑??? //打開(kāi)指定文件并高亮顯示關(guān)鍵詞
語(yǔ)法4:vim 文件路徑1 文件路徑2 文件路徑3???? //可同時(shí)打開(kāi)多個(gè)文件,文件之間可切換操作
退出:
語(yǔ)法::q?????????? //鍵盤(pán)輸入英文:號(hào)進(jìn)入末行模式,輸入字母q再回車
三、vim模式切換(重點(diǎn))
1.切換到命令模式
????????用vim指令打開(kāi)文件時(shí)默認(rèn)為命令模式;
??????? 按一下鍵盤(pán)ESC鍵可從編輯模式切換到命令模式;
??????? 按一下或連按兩下ESC鍵或用鍵盤(pán)刪除末行模式下的英文符號(hào):可從末行模式切換到命令模式
2.切換到末行模式
??????? 命令模式下鍵盤(pán)輸入英文符號(hào):可切換到末行模式;
3.切換到編輯模式
??????? 命令模式下鍵盤(pán)輸入字母i或a(還有其他字母也可以這兩個(gè)比較常用)可切換到編輯模式以編輯
注意:vim剛打開(kāi)文件時(shí)默認(rèn)為命令模式,命令模式可切換到末行模式或編輯模式,但末行模式與編輯模式之間不能直接相互切換;
四、命令模式
1.光標(biāo)移動(dòng)
語(yǔ)法1:^???????? //鍵盤(pán)輸入符號(hào)^,光標(biāo)移動(dòng)到光標(biāo)所在行的行首
語(yǔ)法2:$??????? //鍵盤(pán)輸入符號(hào)$,光標(biāo)移動(dòng)到光標(biāo)所在行的行尾
語(yǔ)法3:gg????? //鍵盤(pán)輸入字母gg,光標(biāo)移動(dòng)到文件的首行
?上圖中,當(dāng)輸入一個(gè)g時(shí)不是正確語(yǔ)法在右下角可以看到輸入的內(nèi)容g,當(dāng)輸入兩個(gè)g時(shí)立刻會(huì)執(zhí)行命令,這里不便演示,只需按語(yǔ)法輸入命令即可執(zhí)行
語(yǔ)法4:G??????? //鍵盤(pán)輸入字母G,光標(biāo)移動(dòng)到文件的尾行
語(yǔ)法5:ctrl+b?????? //鍵盤(pán)ctrl+b,向上翻屏(前提是文件內(nèi)容足夠翻屏)
語(yǔ)法6:ctrl+f??????? //鍵盤(pán)ctrl+f,向下翻屏
語(yǔ)法7:數(shù)字G??? //鍵盤(pán)輸入數(shù)字+字母G,光標(biāo)移動(dòng)到指定行(數(shù)字對(duì)應(yīng)的行數(shù))
語(yǔ)法8:數(shù)字+鍵盤(pán)方向鍵上/下??? //鍵盤(pán)輸入數(shù)字+鍵盤(pán)方向鍵上/下,光標(biāo)以光標(biāo)所在行為準(zhǔn)向上/下移動(dòng)指定行(對(duì)應(yīng)的數(shù)字)
語(yǔ)法9:數(shù)字+鍵盤(pán)方向鍵左/右? ? //鍵盤(pán)輸入數(shù)字+鍵盤(pán)方向鍵左/右,光標(biāo)以光標(biāo)所在位置為準(zhǔn)向左/右移動(dòng)指定個(gè)字符(對(duì)應(yīng)的數(shù)字)
語(yǔ)法10::數(shù)字????? //鍵盤(pán)輸入英文符號(hào):+數(shù)字再回車,光標(biāo)移動(dòng)到指定行(屬于末行模式)
2.復(fù)制與粘貼
語(yǔ)法1:yy???????? //鍵盤(pán)輸入字母yy,復(fù)制光標(biāo)所在行
語(yǔ)法2:數(shù)字yy?????? //鍵盤(pán)輸入數(shù)字+字母yy,從光標(biāo)所在行開(kāi)始向下復(fù)制指定行(數(shù)字對(duì)應(yīng)的行數(shù),包括了光標(biāo)所在行)
語(yǔ)法3:ctrl+v????? //鍵盤(pán)ctrl+v進(jìn)入可視化復(fù)制,用鍵盤(pán)的方向鍵控制復(fù)制區(qū)域,然后鍵盤(pán)輸入字母yy即可完成復(fù)制
?上圖中,進(jìn)入可視化復(fù)制后可用鍵盤(pán)方向鍵控制復(fù)制區(qū)域,選中區(qū)域后輸入yy即可完成復(fù)制,右下角的3*6表示當(dāng)前復(fù)制區(qū)域的大小,17,4表示光標(biāo)的當(dāng)前位置是第17行第4個(gè)字符
粘貼語(yǔ)法:p?????? //鍵盤(pán)輸入字母p即可在光標(biāo)處粘貼復(fù)制的內(nèi)容
3.剪切/刪除
語(yǔ)法1:dd????? //鍵盤(pán)輸入字母dd,剪切光標(biāo)所在行,光標(biāo)所在行的下面行會(huì)上移填補(bǔ)剪切行
語(yǔ)法2:數(shù)字dd???? //鍵盤(pán)輸入數(shù)字+字母dd,從光標(biāo)所在行起向下剪切指定行(數(shù)字對(duì)應(yīng)的行數(shù),包括了光標(biāo)所在行),后面行會(huì)上移填補(bǔ)剪切部分
語(yǔ)法3:D????????? //鍵盤(pán)輸入字母D,剪切光標(biāo)所在行但后面行不會(huì)上移填補(bǔ)剪切行,剪切行變空
刪除語(yǔ)法:刪除即剪切后不復(fù)制,刪除操作使用剪切語(yǔ)法
4.撤銷與恢復(fù)
撤銷語(yǔ)法::u?????? //鍵盤(pán)輸入符號(hào):和字母u再回車(屬于末行模式),撤銷上一步操作
恢復(fù)語(yǔ)法:ctrl+r??? //鍵盤(pán)ctrl+r,恢復(fù)撤銷操作(即取消之前的撤銷操作)
五、末行模式
1.保存
語(yǔ)法1::w??????? //鍵盤(pán)輸入英文符號(hào):+字母w再回車,保存當(dāng)前文件
語(yǔ)法2::w 文件路徑????? //鍵盤(pán)輸入英文符號(hào):+字母w+空格+文件路徑再回車,另存為指定文件
2.退出
語(yǔ)法1::q????? //鍵盤(pán)輸入英文符號(hào):+字母q再回車,退出當(dāng)前文件
語(yǔ)法2::wq????? //鍵盤(pán)輸入英文符號(hào):+字母wq再回車,保存當(dāng)前文件并退出
語(yǔ)法3::q!??? //鍵盤(pán)輸入英文符號(hào):+字母q+英文符號(hào)!再回車,不保存對(duì)文件的修改并退出
3.調(diào)用外部命令
語(yǔ)法::q外部命令?? //鍵盤(pán)輸入英文符號(hào):+字母q+外部命令再回車,外部命令如 ls 命令等,不退出文件的同時(shí)執(zhí)行外部命令,執(zhí)行后按任意鍵可以切換回文件
4.搜索/查找
語(yǔ)法1::/關(guān)鍵詞????? //鍵盤(pán)輸入英文符號(hào):+/+關(guān)鍵詞再回車,按關(guān)鍵詞查找,查找到的內(nèi)容會(huì)被高亮顯示
語(yǔ)法2:N/n???? //鍵盤(pán)輸入字母N/n,光標(biāo)移動(dòng)到上/下一個(gè)查找到的內(nèi)容(屬于命令模式)
語(yǔ)法3::nohl???? //鍵盤(pán)輸入英文符號(hào):+字母nohl再回車,取消查找到的內(nèi)容的高亮顯示,若不取消內(nèi)容會(huì)一直高亮顯示
5.替換
語(yǔ)法1::s/搜索的內(nèi)容/新內(nèi)容??????? //用新內(nèi)容替換光標(biāo)所在行第一處被搜索到的內(nèi)容
語(yǔ)法2::s/搜索的內(nèi)容/新內(nèi)容/g ?????? //用新內(nèi)容替換光標(biāo)所在行全部被搜索到的內(nèi)容
語(yǔ)法3::%s/搜索的內(nèi)容/新內(nèi)容??????? //用新內(nèi)容替換整個(gè)文件每一行第一處被搜索到的內(nèi)容
語(yǔ)法4::%s/搜索的內(nèi)容/新內(nèi)容/g ?????? //用新內(nèi)容替換整個(gè)文件全部被搜索到的內(nèi)容
6.顯示行號(hào)
語(yǔ)法1::set nu???? //鍵盤(pán)輸入英文符號(hào):+字母set+空格+字母nu再回車,顯示文件每行的行號(hào),顯示行號(hào)是暫時(shí)的下次打開(kāi)該文件不會(huì)再顯示
語(yǔ)法2::set nonu??? //鍵盤(pán)輸入英文符號(hào):+字母set+空格+字母nonu再回車,取消行號(hào)顯示
7.切換文件
語(yǔ)法1::files???? //鍵盤(pán)輸入英文符號(hào):+字母files再回車,查看同時(shí)打開(kāi)的所有文件的名稱
上圖中,%a表示它對(duì)應(yīng)的文件是當(dāng)前操作的文件,#表示它對(duì)應(yīng)的文件是上一個(gè)操作的文件,行數(shù)處顯示第0行表示從未切換到它對(duì)應(yīng)的文件進(jìn)行操作
語(yǔ)法2::open 文件名?????? //鍵盤(pán)輸入英文符號(hào):+字母open+空格+文件名再回車,切換到其他打開(kāi)的文件進(jìn)行操作
語(yǔ)法3::bn????? //鍵盤(pán)輸入英文符號(hào):+字母bn再回車,切換到下一個(gè)打開(kāi)的文件
語(yǔ)法4::bp ???? //鍵盤(pán)輸入英文符號(hào):+字母bn再回車,切換到上一個(gè)操作的文件
注意:每執(zhí)行完一次末行模式下的命令之后,都會(huì)自動(dòng)退回到命令模式,因此每次執(zhí)行末行模式下的命令都需要先鍵盤(pán)輸入英文符號(hào):后再輸入命令
六、編輯模式
命令模式下鍵盤(pán)輸入以下字母可進(jìn)入編輯模式進(jìn)行對(duì)應(yīng)的操作:
i | 在光標(biāo)所在字符前開(kāi)始插入 |
a | 在光標(biāo)所在字符前開(kāi)始插入 |
o | 在光標(biāo)所在行的下面另起一行開(kāi)始插入 |
I | 在光標(biāo)所在行的行首開(kāi)始插入,若行首有空格則在空格后插入 |
A | 在光標(biāo)所在行的行尾開(kāi)始插入 |
O | 在光標(biāo)所在行的上面另起一行開(kāi)始插入 |
S | 刪除光標(biāo)所在行并開(kāi)始插入 |
????????按照以上不同的方式進(jìn)入編輯模式后,正常使用鍵盤(pán)進(jìn)行增刪改即可,重點(diǎn)掌握前兩種方式,退出編輯模式鍵盤(pán)按ESC鍵;
七、vim功能模塊
1.代碼著色
語(yǔ)法1::syntax on????? //鍵盤(pán)輸入英文符號(hào):+字母syntax+空格+on,開(kāi)啟代碼著色,默認(rèn)是開(kāi)啟的
語(yǔ)法2::syntax off????? //鍵盤(pán)輸入英文符號(hào):+字母syntax+空格+off,關(guān)閉代碼著色(該操作是暫時(shí)的)
2.簡(jiǎn)易計(jì)算器
????????當(dāng)編輯文件中需要用計(jì)算器計(jì)算時(shí),不需要退出文件,可以使用vim的簡(jiǎn)易計(jì)算器完成計(jì)算;
使用方法:
??????? 在編輯模式下鍵盤(pán)ctrl+r,然后鍵盤(pán)輸入符號(hào)=,光標(biāo)就會(huì)移動(dòng)到末行,鍵盤(pán)輸入計(jì)算格式后回車,計(jì)算結(jié)果就會(huì)出現(xiàn)在原光標(biāo)位置處;
八、補(bǔ)充內(nèi)容
1.vim的配置(重點(diǎn))
常用配置:
????????syntax on/off??????? //開(kāi)啟/關(guān)閉代碼著色
????????set nu/nonu?????? ? //顯示/不顯示行號(hào)
配置分類:
????????臨時(shí)配置:在末行模式下輸入配置,此配置是暫時(shí)的,下次打開(kāi)文件時(shí)不會(huì)生效;
????????個(gè)人配置:個(gè)人配置文件路徑是~/.vimrc,即當(dāng)前用戶家目錄下的隱藏文件.vimrc,此配置只對(duì)當(dāng)前用戶永久生效,若不存在.vimrc文件可自行創(chuàng)建編輯加入vim配置;
????????全局配置:全局配置文件路徑是/etc/vim/vimrc,不同版本目錄路徑可能有點(diǎn)差異,此配置對(duì)所有用戶永久生效,可編輯全局配置文件加入vim配置;
注意:對(duì)于同一配置項(xiàng),當(dāng)個(gè)人配置存在此配置項(xiàng)時(shí)遵循個(gè)人配置,否則遵循全局配置;
2.異常退出
????????編輯中的文件未保存直接退出(按終端右上角的叉或斷電等),這就是異常退出;異常退出會(huì)產(chǎn)生一個(gè)隱藏的交換文件(.文件名.swp,編輯中產(chǎn)生的臨時(shí)文件,可以指令ls -a查看),并且在下一次打開(kāi)該異常退出的文件時(shí)會(huì)報(bào)錯(cuò),將交換文件刪除即可正常打開(kāi);
3.別名機(jī)制(非常有趣)
????????依靠一個(gè)別名映射文件(路徑時(shí)~/.bashrc)來(lái)執(zhí)行自己創(chuàng)建的指令,這就是別名機(jī)制;在映射文件中按特定格式加入自己的指令即可執(zhí)行自己創(chuàng)建的指令;
上圖中, vim打開(kāi).baserc文件,找到上圖內(nèi)容處可按格式加入自己創(chuàng)建的指令,如最后一行是我加的,即haha指令將等效于clear指令(笑兩下就可以清屏了,不過(guò)我的失敗了,好像是添加的位置不對(duì));
注意:加入自己的指令后需要重啟才能生效;
4.退出方式
語(yǔ)法::x??????? //文件未被修改直接退出,文件被修改過(guò)保存并退出
:x和:wq的區(qū)別:
????????使用:wq,文件的修改時(shí)間一定會(huì)改變;
????????而使用:x,在文件未被修改的情況下,并不會(huì)改變文件的修改時(shí)間;文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-593332.html
建議:使用:x代替:q和:wq,更加簡(jiǎn)便的同時(shí)不會(huì)在未修改文件的情況下改變文件的修改時(shí)間文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-593332.html
到了這里,關(guān)于編輯器之神——vim編輯器(詳細(xì)、完整)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!