vi編輯�,通常�(chēng)之為vi,是一種廣泛存在于各種UNIX�Linux系統(tǒng)中的文本編輯程序。它的功能十分強(qiáng)�,但是命令繁�,不容易掌握,它可以�(zhí)行輸�、刪�、查�、替�、塊操作等眾多文本操�,而且用戶(hù)可以根據(jù)自己的需要對(duì)其�(jìn)行定�,這是其他編輯程序所�(méi)有的。vi不是基于窗口�,所以,這�(gè)多用途編輯程序可以用于在任何�(lèi)型的終端上編輯各式各樣的文件�
1、命令模式(command mode)—執(zhí)行命�
在該模式�,可以輸入命令來(lái)�(zhí)行許多種功能??刂破聊还鈽?biāo)的移�(dòng),字�、字或行的刪�,移�(dòng)�(fù)制某區(qū)段及�(jìn)入Insert mode�,或者到 last line mode�
2、輸入模式(Insert mode)—輸入文�
vi被運(yùn)行時(shí),通常處在命令模式�,鍵入以下命� 可以使vi退出命令模�,�(jìn)入輸入模式:I(i)、A(a�、O(o)�
3、末行模式(last line mode)—執(zhí)行待定命�
將文件保存或退出vi,也可以�(shè)置編輯環(huán)境,如尋找字符串、列出行�(hào)……等。不�(guò)一般我�?cè)谑褂脮r(shí)把vi�(jiǎn)化成兩�(gè)模式,就是將末行模式(last line mode)也算入命令行模式command mode��
1. vi的啟�(dòng)
輸入vi命令�,便�(jìn)入全屏幕編輯�(huán)境,此時(shí)的狀�(tài)為命令模��
(1) vi
�(jìn)入vi的一�(gè)臨時(shí)緩沖區(qū),光�(biāo)定位在該緩沖區(qū)�1行第1列的位置��
(2) vi file1
如果file1文件不存�,將建立此文�;如該文件存�,則將其拷貝到一�(gè)臨時(shí)緩沖區(qū)。光�(biāo)定位在該緩沖區(qū)�1行第1列的位置��
(3) vi + file1
如果file1文件不存�,將建立此文件;如該文件存在,則將其拷貝到一�(gè)臨時(shí)緩沖區(qū)。光�(biāo)定位在文�1行第1列的位置上�
(4) vi +N file1(N:為�(shù)�)
如果file1文件不存在,將建立此文件;如該文件存在,則將其拷貝到一�(gè)臨時(shí)緩沖區(qū)。光�(biāo)定位在文件第N行第1列的位置��
(5) vi +/string file1
如果file1文件不存在將建立此文�;如該文件存在則將其拷貝到一�(gè)臨時(shí)緩沖區(qū)。光�(biāo)定位在文件中次出�(xiàn)字符串string的行首位置�
2. 退出vi(末行模式(last line mode�)
建議在退出vi�,先按ESC�,以確保�(dāng)前vi的狀�(tài)為命令方�,然后再鍵入“:�(冒號(hào)),輸入下列命�,退出vi�
(1) :w
將編輯緩沖區(qū)的內(nèi)容寫(xiě)入文�,則新的�(nèi)容就替代了原始文�。這時(shí)并沒(méi)有退出vi,必須�(jìn)一步輸入下述命令才能退出vi�
:w filename(存入指定文件)
:q
(2) :wq
即將上面的兩步操作可以合成一步來(lái)完成,先�(zhí)行w,后�(zhí)行q�
(3) :x和ZZ(注意� ZZ前面�(méi)有�:�)
功能�(2)等價(jià)�
(4) :q!(�:quit)
�(qiáng)行退出vi,使被更新的�(nèi)容不�(xiě)回文件中。僅鍵入命令:q�(shí),如vi�(fā)�(xiàn)文本�(nèi)容已被更�,將提示用戶(hù)使用�:quit”命令退��
1、在文件中移�(dòng)光標(biāo)
h:向左移�(dòng)一�(gè)字符
l:向右移�(dòng)一�(gè)字符
j:向下移�(dòng)一�
k:向上移�(dòng)一�
^(即Shift+6):移動(dòng)到當(dāng)前行的開(kāi)頭處
$(即Shift+4):移動(dòng)到當(dāng)前行的結(jié)尾處
H(大�(xiě)�:使光�(biāo)移動(dòng)到屏幕的頂部
M(大�(xiě)�:使光�(biāo)移動(dòng)到屏幕的中間
L(大�(xiě)�:使光�(biāo)移動(dòng)到屏幕的底部
Ctrl+b:上滾一��
Ctrl+f:下滾一屏�
Ctrl+d:下滾半��
Ctrl+u: 上滾半屏�
2、插入文�
?�?)添加:
●輸入a�,在光標(biāo)的右邊插入文�
●輸入A,在一行的�(jié)尾處添加文本
�2)插入:
●通過(guò)在命令模式下輸入i,在光標(biāo)的左邊插入文�
●通過(guò)在命令模式下輸入I,在行首插入文本
�3)插入新行:
●輸入o,在�(dāng)前光�(biāo)位置下面打開(kāi)一�
●輸入O,在�(dāng)前光�(biāo)位置上面打開(kāi)一�
3、撤消更�
?�?)撤消前一�(gè)命令:在一�(gè)命令之后立即輸入u�(lái)撤消該命�
?�?)重�(fù)某�(gè)命令:�.�
�3)撤消對(duì)一行的更改:輸入U(xiǎn)�(lái)撤消你對(duì)一行所做的所有更�,這�(gè)命令只有在你�(méi)將光�(biāo)移動(dòng)到該行以外時(shí)才生��
4、刪除文�
�1)刪除一�(gè)字符�
●為刪除一�(gè)字符,需將光�(biāo)放置在要?jiǎng)h除的字符上并輸入x
●為刪除光標(biāo)之前(其左邊)的一�(gè)字符,需輸入X
?�?)刪除一�(gè)詞或詞的部分�(nèi)容:
●為刪除一�(gè)�,需將光�(biāo)放置到該詞的�(kāi)頭并輸入dw
●為刪除詞的部分�(nèi)容,需將光�(biāo)放置到該詞要保存部分的右�。輸入dw�(lái)刪除該詞余下的部�
?�?)刪除一行:將光�(biāo)放置到該行的任意處并輸入dd
?�?)刪除多行:ndd
?�?)刪除行的部分內(nèi)容:將光�(biāo)放置到該行要保存部分的右�,并輸入D。為刪除光標(biāo)左邊的所有內(nèi)�,須將光�(biāo)放置到該行要?jiǎng)h除部分的右邊,并輸入d0(d-零)�
�6)刪除到文件的結(jié)尾:為刪除從�(dāng)前行到文件結(jié)尾的所有內(nèi)�,需輸入dG
5、復(fù)制和移動(dòng)文本
●復(fù)制一行命令:yy
●粘貼命令:p
●移�(dòng)文本:先將要移動(dòng)的部分用刪除命令刪除,然后再粘貼就可以了
●復(fù)制指定文件的�(nèi)�
: r filename
6、查找一�(gè)字符�
●輸�/,并�/后面輸入要查找的�,然后按下回�(chē)
●輸入“n”跳�(zhuǎn)到該串的下一�(gè)出現(xiàn)�
●輸入“N”跳�(zhuǎn)到該串的上一�(gè)出現(xiàn)�
7、替換一�(gè)字符�
●在一行內(nèi)替換頭一�(gè)字符串old為新的字符串new
:s/old/new
●在一行內(nèi)替換所有的字符串old為新的字符串new
:s/old/new/g
●在兩行�(nèi)替換所有的字符串old為新的字符串new
:#,#s/old/new/g
●在文件�(nèi)替換所有的字符串old為新的字符串new
:%s/old/new/g
●�(jìn)行全文替換時(shí)�(xún)�(wèn)用戶(hù)確認(rèn)每�(gè)替換需添加c選項(xiàng)
:%s/old/new/gc
8、設(shè)置vi
●顯示行�(hào)
:set number
●取消行�(hào)顯示
:set nonumber
●設(shè)置顯示用�(hù)模式
:set showmode
●設(shè)置文件只讀
:set readonly