vi的用法

vi命令是UNIX操作系統(tǒng)和類UNIX操作系統(tǒng)中最通用的全屏幕純文本編輯器。

vi編輯器支持編輯模式和命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對(duì)文件的操作命令,要正確使用vi編輯器就必須熟練掌握著兩種模式的切換。默認(rèn)情況下,打開vi編輯器后自動(dòng)進(jìn)入命令模式。從編輯模式切換到命令模式使用“esc”鍵,從命令模式切換到編輯模式使用"A"、"a"、"O"、"o"、"I"、"i"鍵。

vi編輯器的三種工作方式之間的轉(zhuǎn)換如圖所示。



vi編輯器提供了豐富的內(nèi)置命令,有些內(nèi)置命令使用鍵盤組合鍵即可完成,有些內(nèi)置命令則需要以冒號(hào)“:”開頭輸入。常用內(nèi)置命令如下:

Ctrl+u:向文件首翻半屏;

Ctrl+d:向文件尾翻半屏;

Ctrl+f:向文件尾翻一屏;

Ctrl+b:向文件首翻一屏;

Esc:從編輯模式切換到命令模式;

ZZ:命令模式下保存當(dāng)前文件所做的修改后退出vi;

:行號(hào):光標(biāo)跳轉(zhuǎn)到指定行的行首;

:$:光標(biāo)跳轉(zhuǎn)到最后一行的行首;

x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的;

D:刪除從當(dāng)前光標(biāo)到光標(biāo)所在行尾的全部字符;

dd:刪除光標(biāo)行正行內(nèi)容;

ndd:刪除當(dāng)前行及其后n-1行;

nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字;

p:粘貼文本操作,用于將緩存區(qū)的內(nèi)容粘貼到當(dāng)前光標(biāo)所在位置的下方;

P:粘貼文本操作,用于將緩存區(qū)的內(nèi)容粘貼到當(dāng)前光標(biāo)所在位置的上方;

/字符串:文本查找操作,用于從當(dāng)前光標(biāo)所在位置開始向文件尾部查找指定字符串的內(nèi)容,查找的字符串會(huì)被加亮顯示;

?name:文本查找操作,用于從當(dāng)前光標(biāo)所在位置開始向文件頭部查找指定字符串的內(nèi)容,查找的字符串會(huì)被加亮顯示;

a,bs/F/T:替換文本操作,用于在第a行到第b行之間,將F字符串換成T字符串。其中,“s/”表示進(jìn)行替換操作;

a:在當(dāng)前字符后添加文本;

A:在行末添加文本;

i:在當(dāng)前字符前插入文本;

I:在行首插入文本;

o:在當(dāng)前行后面插入一空行;

O:在當(dāng)前行前面插入一空行;

:wq:在命令模式下,執(zhí)行存盤退出操作;

:w:在命令模式下,執(zhí)行存盤操作;

:w?。涸诿钅J较?,執(zhí)行強(qiáng)制存盤操作;

:q:在命令模式下,執(zhí)行退出vi操作;

:q?。涸诿钅J较拢瑘?zhí)行強(qiáng)制退出vi操作;

:e文件名:在命令模式下,打開并編輯指定名稱的文件;

:n:在命令模式下,如果同時(shí)打開多個(gè)文件,則繼續(xù)編輯下一個(gè)文件;

:f:在命令模式下,用于顯示當(dāng)前的文件名、光標(biāo)所在行的行號(hào)以及顯示比例;

:setnumber:在命令模式下,用于在最左端顯示行號(hào);

:set nonumber:在命令模式下,用于在最左端不顯示行號(hào);

vi(選項(xiàng))(參數(shù))

+<行號(hào)>:從指定行號(hào)的行開始先是文本內(nèi)容;

-b:以二進(jìn)制模式打開文件,用于編輯二進(jìn)制文件和可執(zhí)行文件;

-c<指令>:在完成對(duì)第一個(gè)文件編輯任務(wù)后,執(zhí)行給出的指令;

-d:以diff模式打開文件,當(dāng)多個(gè)文件編輯時(shí),顯示文件差異部分;

-l:使用lisp模式,打開“l(fā)isp”和“showmatch”;

-m:取消寫文件功能,重設(shè)“write”選項(xiàng);

-M:關(guān)閉修改功能;

-n:不實(shí)用緩存功能;

-o<文件數(shù)目>:指定同時(shí)打開指定數(shù)目的文件;

-R:以只讀方式打開文件;

-s:安靜模式,不現(xiàn)實(shí)指令的任何錯(cuò)誤信息。

知識(shí)擴(kuò)展

vi編輯器有三種工作方式:命令方式、輸入方式和ex轉(zhuǎn)義方式。通過相應(yīng)的命令或操作,在這三種工作方式之間可以進(jìn)行轉(zhuǎn)換。

命令方式

在Shell提示符后輸入命令vi,進(jìn)入vi編輯器,并處于vi的命令方式。此時(shí),從鍵盤上輸入的任何字符都被作為編輯命令來(lái)解釋,例如,a(append)表示附加命令,i(insert)表示插入命令,x表示刪除字符命令等。如果輸入的字符不是vi的合法命令,則機(jī)器發(fā)出“報(bào)警聲”,光標(biāo)不移動(dòng)。另外,在命令方式下輸入的字符(即vi命令)并不在屏幕上顯示出來(lái),例如,輸入i,屏幕上并無(wú)變化,但通過執(zhí)行i命令,編輯器的工作方式卻發(fā)生變化:由命令方式變?yōu)檩斎敕绞健?/p>

輸入方式

通過輸入vi的插入命令(i)、附加命令(a)、打開命令(o)、替換命令(s)、修改命令(c)或取代命令(r)可以從命令方式進(jìn)入輸入方式。在輸入方式下,從鍵盤上輸入的所有字符都被插入到正在編輯的緩沖區(qū)中,被當(dāng)做該文件的正文。進(jìn)入輸入方式后,輸入的可見字符都在屏幕上顯示出來(lái),而編輯命令不再起作用,僅作為普通字母出現(xiàn)。例如,在命令方式下輸入字母i,進(jìn)到輸入方式,然后再輸入i,就在屏幕上相應(yīng)光標(biāo)處添加一個(gè)字母i。

由輸入方式回到命令方式的辦法是按下Esc鍵。如果已在命令方式下,那么按下Esc鍵就會(huì)發(fā)出“嘟嘟”聲。為了確保用戶想執(zhí)行的vi命令是在命令方式下輸入的,不妨多按幾下Esc鍵,聽到嘟聲后再輸入命令。

ex轉(zhuǎn)義方式

vi和ex編輯器的功能是相同的,二者的主要區(qū)別是用戶界面。在vi中,命令通常是單個(gè)字母,如a,x,r等。而在ex中,命令是以Enter;鍵結(jié)束的命令行。vi有一個(gè)專門的“轉(zhuǎn)義”命令,可訪問很多面向行的ex命令。為使用ex轉(zhuǎn)義方式,可輸入一個(gè)冒號(hào)(:)。作為ex命令提示符,冒號(hào)出現(xiàn)在狀態(tài)行(通常在屏幕最下一行)。按下中斷鍵(通常是Del鍵),可終止正在執(zhí)行的命令。多數(shù)文件管理命令都是在ex轉(zhuǎn)義方式下執(zhí)行的(例如,讀取文件,把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。轉(zhuǎn)義命令執(zhí)行后,自動(dòng)回到命令方式。例如:

:1,$s/I/i/g?按Enter鍵

則從文件第一行至文件末尾($)將大寫I全部替換成小寫i

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,714評(píng)論 0 5
  • vi(vim)可以說是linux中用得最多的工具了,不管你配置服務(wù)也好,寫腳本也好,總會(huì)用到它。但是,vim作為一...
    梁世勇閱讀 1,705評(píng)論 2 12
  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,334評(píng)論 0 10
  • Vim幾句話介紹Vim是Unix系統(tǒng)上的文本編輯軟件(你該不會(huì)不知道什么是文本編輯軟件吧?。?,在windows上也...
    何必遠(yuǎn)方閱讀 3,327評(píng)論 0 3
  • dpkg 學(xué)習(xí) 安裝mysql apt-get install mysql-server-5.6 apt-get ...
    sharonji閱讀 540評(píng)論 0 0

友情鏈接更多精彩內(nèi)容