Vi編輯器
一.簡(jiǎn)介
Vi是Unix/Linux系統(tǒng)中最通用的文本編輯器,功能強(qiáng)大!!
使用vi能夠編輯Linux中的配置文件,甚至進(jìn)行編程開(kāi)發(fā)(shell腳本開(kāi)發(fā),C開(kāi)發(fā),Java開(kāi)發(fā))。
通過(guò)適當(dāng)?shù)呐渲?/span>vi還支持編程語(yǔ)言的語(yǔ)法加亮。
Linux下的vi編輯器,實(shí)際上是vi的增強(qiáng)版本,叫做vim,但是為了和Unix等系統(tǒng)兼容,linux下可以使用vi或者vim來(lái)打開(kāi)vi編輯器。
二.基本應(yīng)用
1. 如何打開(kāi)編輯器
直接輸入vi,后回車(chē)即可。(會(huì)打開(kāi)一個(gè)空文件,并且給出歡迎界面。這種方式打開(kāi)vi時(shí),當(dāng)保存內(nèi)容時(shí)需要給出文件名):
輸入vi filename (filename如果已存在,則打開(kāi)此文件,反之則創(chuàng)建新文件,當(dāng)保存后新文件才會(huì)寫(xiě)入磁盤(pán)):
2.vi的運(yùn)行模式切換
這是學(xué)習(xí)vi的重要部分。因?yàn)樵?/span>vi中所有的命令和正文編輯都來(lái)自鍵盤(pán)輸入,如何區(qū)分輸入的字符時(shí)命令還是正文呢?依靠運(yùn)行模式。
命令模式:此模式下鍵盤(pán)的輸入全都被認(rèn)為是vi命令。
編輯模式:此模式下鍵盤(pán)的輸入全都被認(rèn)為是文件正文。注意:ESC鍵除外。
當(dāng)打開(kāi)vi時(shí),默認(rèn)的模式是“命令模式”。
從命令模式切換到編輯模式(或插入模式):輸入適當(dāng)?shù)?/span>vi命令實(shí)現(xiàn)切換到編輯模式(a,A,i,I,o,O,s,S , r , R)
從編輯模式切換到命令模式:按下ESC鍵即可。
2. 保存退出類(lèi)命令(在命令模式下,冒號(hào)也需要輸入)
保存:“:w”(write)
保存:“:w filename”
退出:“:q”(quit)
保存并退出:“:wq”
強(qiáng)制保存:“:w!”
不保存修改直接退出:“:q!”
以冒號(hào)開(kāi)頭的命令又被成為末行指令(因?yàn)槊铒@示在最后一行)
保存并退出:“:x”
保存并退出:“ZZ”(輸入時(shí),按著shift鍵連按兩次z鍵即可。)
3.光標(biāo)的定位
四個(gè)箭頭鍵
特殊的鍵盤(pán)命令:h,j,k,l(在命令模式下)
“
“$”(在命令模式下輸入$即可):光標(biāo)移動(dòng)到當(dāng)前行行尾。
“H”(在命令模式下輸入H即可):光標(biāo)移動(dòng)到當(dāng)前屏幕的最上邊行首。
“L”(在命令模式下輸入H即可):光標(biāo)移動(dòng)到當(dāng)前屏幕的最下邊行首。
“nG”(在命令模式下輸入一個(gè)數(shù)字,時(shí)候輸入G即可):光標(biāo)移動(dòng)到數(shù)字所代表的行。
“n”(在命令模式下輸入一個(gè)數(shù)字即可):光標(biāo)向下移動(dòng)數(shù)字所代表的行數(shù)。
“n+space”(在命令模式下輸入一個(gè)數(shù)字,然后輸入空格鍵即可):光標(biāo)向后移動(dòng)數(shù)字所代表的字符數(shù)。
3. 查找與替換
“/keywords”:從當(dāng)前光標(biāo)位置向文件尾部查找指定的關(guān)鍵字。
“?keywords” 從當(dāng)前光標(biāo)位置向文件頭部查找指定的關(guān)鍵字。
查找過(guò)程中,可以使用“n”(與查找方向相同)和“N”(與查找方向相反)進(jìn)行查找下一個(gè)。
替換:
“:1,$ s/sword/rword/g” :從第一行到最后一行進(jìn)行替換。
4. 復(fù)制,刪除,粘貼
復(fù)制
“yy”:復(fù)制光標(biāo)所在行。
“nyy”:復(fù)制光標(biāo)所在行下的n行內(nèi)容。
“p”:將已經(jīng)復(fù)制的內(nèi)容粘貼到光標(biāo)所在行的下面一行。
“P”:將已經(jīng)復(fù)制的內(nèi)容粘貼到光標(biāo)所在行的上面一行。
刪除
“dd”刪除光標(biāo)所在行內(nèi)容。
“ndd” 刪除光標(biāo)所在行后的n行內(nèi)容。
“x”刪除光標(biāo)所在位置的字符
“X” 刪除光標(biāo)所在位置到行尾地字符。
“nx”刪除光標(biāo)位置后的n各字符。
“U”:撤銷(xiāo)對(duì)當(dāng)前行的操作。
“u”撤銷(xiāo)上一步操作
5.其它有用的命令
“:set nu”(等價(jià)于“:set number”)顯示行號(hào)
“:set nonu” (等價(jià)于“:set nonumber”) 取消顯示行號(hào)
“:!command”不退出vi而執(zhí)行shell命令,執(zhí)行完后輸入回車(chē)后返回vi操作界面。
“:n1,n
“:e!”將文件還原到初始狀態(tài)