版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第五章全屏幕文本編輯器vi內(nèi)容提要:vi的三種模式進入vi的多種方法及打開多個文件的方法熟悉vi中保存和退出的命令熟悉光標(biāo)移動命令,掌握光標(biāo)移動與文本修改命令的配合多種修改文件的命令模式的概念,查找和替換命令復(fù)制文件內(nèi)容的方法5.1vi簡介vi是visualinterface的簡稱,是交互式的全屏幕編輯程序.5.1.1vi的特點文本編輯器(沒有排版功能,處理純文本字符)全屏幕編輯(從行編輯發(fā)展過來)命令模式,不提供菜單,與dos提供的edit有很大的差異.用戶可以根據(jù)自己的需要和愛好定制vi2
5.1.2vi的工作模式圖
5.1.2vi的工作模式在vi中工作一定要注意在什么模式中工作,否則會造成混亂三種模式是:命令模式、輸入模式、末行模式命令模式:用戶一進入vi就進入了命令模式,在該模式中任何鍵入的字符都被看成vi的命令,鍵入后立即執(zhí)行。輸入模式:當(dāng)用戶需要輸入文本時,使用某個命令,進入輸入模式,才可開始輸入文本。末行模式:也稱ex模式,在命令模式中鍵入冒號(:),就進入了末行模式,在末行模式中輸入ex?瘄命令,例如w(寫)和回車,就可將編輯的內(nèi)容存入文件。5.1.2vi的工作模式(續(xù))三種工作模式之間轉(zhuǎn)換(1)在操作系統(tǒng)提示符下鍵入vi,就進入了命令模式(2)由命令模式進入輸入模式,鍵入編輯命令,如插入命令i、添加命令a、建立新行命令o、取代命令r、替換命令s等等。(3)由命令模式進入末行模式,只需鍵入冒號(:),每次只執(zhí)行一條,執(zhí)行完畢立即回到命令模式(4)不論在什么模式,只要鍵入【ESC】鍵,就可回到命令模式。(5)輸入模式和末行模式之間不能直接切換,必須通過命令模式。(6)在命令模式,用二個ZZ(大寫),可以退出vi;在末行模式用q或q!,還可以用wq。5.2vi的進入與退出5.2.1vi的進入(二種方法)vifilename這是編輯一個新文件或編輯一個已經(jīng)存在的文件的方法如果是新文件,系統(tǒng)會為你創(chuàng)建一個文件名是filename的文件如果你需要對一個存在的文件進行修改,系統(tǒng)會把文件的內(nèi)容讀入vi使用的緩沖區(qū),供你進行編輯,完成編輯后,用相關(guān)命令寫入原文件或?qū)懭胍粋€另一個新的文件.vi這是編輯一個新的文件的方法在編輯完成后必須用相關(guān)命令寫入一個新的文件,否則一切編輯動作都無效.5.2.1vi的進入(續(xù))進入vi后光標(biāo)停留在文件的第一行行首,如希望停留在其他行,可用下面的命令:vi+nfillename(進入vi后當(dāng)前光標(biāo)位置為第n行)vi+filename(進入vi后當(dāng)前光標(biāo)位置為文件尾)vi+/stringfilename(進入vi后當(dāng)前光標(biāo)位置為字符串srting所在行的行首。)5.2.2輸入一段文本進入vi后,鍵入i(或a)命令,就可輸入文本了,不僅在當(dāng)前光標(biāo)位置可輸入,也可用帶箭頭的方向鍵移動光標(biāo)后再輸入。如果輸入有錯誤,按【Delete】
鍵刪除前一字符。(光標(biāo)移動過則【Delete
】不起作用。)文本輸入完畢,用【ESC】結(jié)束本次輸入模式,回退到命令模式.5.2.3退出退出vi有三種情形:(1)以原有的文件名保存已經(jīng)作過的編輯,退出vi進入末行模式下退出,用以下命令::wq(等價于:w及:q)或:x在命令模式下退出,用二個大寫的ZZ即可(2)以新的文件名保存,必須進入末行模式,用以下命令::wnewfilename(保存到新文件):q(退出)(3)不保存所作過的一切編輯動作,在末行模式下退出vi::q!在末行模式可以不離開vi執(zhí)行一條linux命令::!cmd5.2.4vi的幫助在操作系統(tǒng)提示符下使用man命令:$manvi在vi的末行模式下使用help命令::help(用:q!退出):helpvcmd(用:q!退出)5.3vi的編輯操作和命令移動光標(biāo)文本插入操作修改文本5.3.1行號vi的工作是在文本緩沖區(qū)中做的,為了幫助用戶觀看,可為文本的行設(shè)置一個行號,放在文本的左側(cè)(行首前)可以用末行命令set來設(shè)置和取消::setnumber(:setnu):setnonumber(:setnonu)可以用:nu來獲得當(dāng)前光標(biāo)的行號和當(dāng)前行的內(nèi)容可以用【
crtl+g】來獲得當(dāng)前行在文件中的相對位置,在系統(tǒng)提示行上顯示在整個文件中的百分數(shù)5.3.2移動光標(biāo)光標(biāo)可移動的單位:(1)字符:漢字由二個ASCII字符寬度,移動的單位是一個漢字,英文或數(shù)字等是一個ASCII字符寬度(2)行:文本的一行,可用行號定位(3)屏幕:分成半個屏幕高或整個屏幕高(頁)(4)行首和行尾:文本行的行尾和行首(5)字:廣義字和狹義字廣義字:由空格作為間隔符狹義字:英文單詞、標(biāo)點符號及一些特殊字符均作為一個字(6)句:以逗號、句號、問號、感嘆號結(jié)尾且后面有二個以上(含二個)空格或一個換行符的字符序列。(7)段:以一個空白行開始和結(jié)束的字符序列5.3.2移動光標(biāo)(續(xù))按字符移動的鍵:(1)四個帶箭頭的方向鍵:各自按方向移動一個字符(2)j、k、h、l:各自按上、下、左、右移動一個字符(3)【spacebar】:光標(biāo)右移一個字符【backspace】:光標(biāo)左移一個字符【ctrl+n】:光標(biāo)下移一個字符【ctrl+p】:光標(biāo)上移一個字符按行來移動光標(biāo):【Home】:光標(biāo)移動到本行行首?(0行首,^第一個非空白字符)$或【End】(?):光標(biāo)移動到本行行尾-:光標(biāo)移動到上一行的行首5.3.2移動光標(biāo)(續(xù))跳到指定的行[行號]G缺省為到文件的最后行在屏幕上移動H:光標(biāo)移動到屏幕首行行首M:光標(biāo)移動到屏幕顯示文件的中間行行首L:光標(biāo)移動到屏幕最底行行首按字移動光標(biāo)(小寫字母對狹義的字,大寫字母對廣義的字)w和W
將光標(biāo)移動到下一個字的字首e和E將光標(biāo)移動到下一個字的字尾b和B將光標(biāo)移動到前一個字的字首5.3.2移動光標(biāo)(續(xù))按句移動(:將光標(biāo)移到上一個句子的開頭):將光標(biāo)移到下一個句子的開頭按段移動:{:將光標(biāo)移到上一個段的開頭}:將光標(biāo)移到下一個段的開頭屏幕滾動【ctrl+u】:將屏幕向文件頭方向翻滾半屏【ctrl+d】:將屏幕向文件尾方向翻滾半屏【ctrl+f】:將屏幕向文件尾方向翻滾一整屏【ctrl+b】:將屏幕向文件頭方向翻滾一整屏5.3.3文本插入操作輸入任意的文本,都要將vi的工作模式從命令模式切換到文本輸入模式.切換的命令有:i
:在當(dāng)前光標(biāo)之前插入文本I:在當(dāng)前行的行首插入文本a:在當(dāng)前光標(biāo)之后添加文本A:在當(dāng)前行的行尾添加文本o:在當(dāng)前行的下面開一個新行O:在當(dāng)前行的上面開一個新行5.3.4修改文本文本的刪除x:刪除光標(biāo)處的字符nx:刪除光標(biāo)位置起的右n個字符X:刪除光標(biāo)前的字符nX:刪除光標(biāo)位置前的左n個字符dd:刪除當(dāng)前行ndd:刪除當(dāng)前行起的n行D或
d$:刪除光標(biāo)起到行尾的內(nèi)容d0:刪除光標(biāo)前一個字符到行首的內(nèi)容dw:刪除一個單詞ndw:刪除n個單詞5.3.4修改文本(續(xù))恢復(fù)刪除u、U命令和重復(fù)(.)命令u:取消上一次的編輯動作(可多次)U:取消在本行所有的編輯動作重復(fù)命令(.):再一次執(zhí)行剛執(zhí)行過的命令九個寄存器的使用vi提供九個寄存器,以數(shù)字1,2,…,9命名,每次用dd命令刪除一行就送往寄存器1,而原寄存器1的內(nèi)容則送往寄存器2,寄存器2的內(nèi)容送往寄存器3,…。超過9次,則最早被刪除的內(nèi)容就不再保留。如果要恢復(fù)第n次用d命令刪除的內(nèi)容,則可用"
np
命令(n<10).5.3.4修改文本(續(xù))修改命令c注意鍵入命令后就進入了輸入模式,所以輸入完畢必須用【ESC】回到命令模式.c
object:改變光標(biāo)位置起到object位置的內(nèi)容.C或c$:改變光標(biāo)位置起到行尾的內(nèi)容.nC:改變光標(biāo)位置起的n行內(nèi)容cc:改變當(dāng)前行的內(nèi)容.ncc:改變當(dāng)前行起n行的內(nèi)容5.3.4修改文本(續(xù))文本替換文本替換是用新的文本替換原有的文本命令:r和Rrx:
用x字符替換光標(biāo)位置的字符nrx:用x字符替換光標(biāo)位置起的n個字符R:用跟隨其后的字符一對一地替換文本,結(jié)束后應(yīng)用【ESC】鍵回到命令模式nR:表示R后面輸入的內(nèi)容重復(fù)n次5.3.4修改文本(續(xù))s和S命令s:用跟隨在其后的字符串替換光標(biāo)位置的字符,結(jié)束后應(yīng)用【ESC】鍵回到命令模式ns:用跟隨在其后的字符串替換光標(biāo)位置起的n個字符,結(jié)束后應(yīng)用【ESC】鍵回到命令模式S:用跟隨在其后的字符串替換當(dāng)前行,結(jié)束后應(yīng)用【ESC】鍵回到命令模式nS:用跟隨在其后的字符串替換當(dāng)前行起的n行,結(jié)束后應(yīng)用【ESC】鍵回到命令模式字替換cw:用跟隨在其后的字符串替換光標(biāo)位置的字(狹義),結(jié)束后應(yīng)用【ESC】鍵回到命令模式5.3.4修改文本(續(xù))行的合并J:把光標(biāo)所在行與下一行合并成一行nJ:把光標(biāo)所在行與下面的n-1行合并成一行5.3.4修改文本(續(xù))文本行的移動“>”:將限定的文本右移8個空格,限定的文本由當(dāng)前行與在>后的光標(biāo)移動命令所限定.例如:>L表示將當(dāng)前行到屏幕末行為至的文本都右移8個空格?!?lt;”:將限定的文本左移8個空格,限定的文本由當(dāng)前行與在<后的光標(biāo)移動命令所限定.例如:<H表示將當(dāng)前行到屏幕首行為至的文本都左移移8個空格?!?gt;>”:將當(dāng)前行右移8個空格.“<<”:將當(dāng)前行左移8個空格.“n>>”:將當(dāng)前行和其后的n-1行右移8個空格.“n<<”:將當(dāng)前行和其后的n-1行左移8個空格.5.3.4修改文本(續(xù))文本行的異行移動:其實質(zhì)是先把要移動的n行先刪除,然后粘貼到目的行,步驟如下:(1)將光標(biāo)移到要移動的n行首行(2)ndd(3)將光標(biāo)移到目的行處(4)鍵入1p,將被刪除的n行從1號寄存器中取出.使用末行命令:n1,n2mk(將從n1行到n2行的文本移動到k行處,其中m是移動命令)5.3.4修改文本(續(xù))屏幕調(diào)零命令[行號]z[行數(shù)]<回車>:將由行號(缺省為當(dāng)前行)指定的行顯示在屏幕的首行,行數(shù)指定了顯示的行數(shù)[行號]z[行數(shù)].:將由行號(缺省為當(dāng)前行)指定的行顯示在屏幕的中間,行數(shù)指定了顯示的行數(shù)[行號]z[行數(shù)]-:將由行號(缺省為當(dāng)前行)指定的行顯示在屏幕的最末行,行數(shù)指定了顯示的行數(shù)5.4字符串的查找字符串查找重復(fù)查找:n和N命令字符查找命令光標(biāo)靠近字符命令全局替換命令模式表達式5.4.1字符串查找向前(文件的尾部)查找命令方式/模式【Enter】:光標(biāo)將停留在查找到的第一個和模式匹配的字符上/模式/-:光標(biāo)將停留在查找到的第一個和模式匹配的字符所在行的上一行上/模式/+:光標(biāo)將停留在查找到的第一個和模式匹配的字符所在行的下一行上/模式/-n:光標(biāo)將停留在查找到的第一個和模式匹配的字符所在行的上n行上/模式/+n:光標(biāo)將停留在查找到的第一個和模式匹配的字符所在行的下n行上5.4.1字符串查找(續(xù))向后(文件的頭部)查找命令方式?模式【Enter】:光標(biāo)將停留在查找到的第一個和模式匹配的字符上?模式?-:光標(biāo)將停留在查找到的第一個和模式匹配的字符所在行的上一行上?模式?+:光標(biāo)將停留在查找到的第一個和模式匹配的字符所在行的下一行上?模式?-n:光標(biāo)將停留在查找到的第一個和模式匹配的字符所在行的上n行上?模式?+n:光標(biāo)將停留在查找到的第一個和模式匹配的字符所在行的下n行上5.4.2檢索下一個字符串n命令:重復(fù)上一個查找,查找方向與上一次相同.N命令:重復(fù)上一個查找,查找方向與上一次相反.5.4.3字符檢索使用f命令可在當(dāng)前行上向前查找給定的字符:f字符5.4.4光標(biāo)靠近字符t:從光標(biāo)當(dāng)前行向前查找指定的字符,光標(biāo)停留在指定字符之前的字符.T:從光標(biāo)當(dāng)前行向后查找指定的字符,光標(biāo)停留在指定字符之后的字符.5.4.5全局替換命令在末行模式下的組合命令,可以對文件進行復(fù)雜的修改命令格式如下::g/模式/命令表命令表中可以有以下命令:p:顯示找到字符串的行的內(nèi)容5.4.5全局替換命令(續(xù))s:替換字符串命令,其具體格式為:s/s1/s2/x
s是替換命令,s1是被替換的字符串,s2是替換串,當(dāng)s1缺省時表示被替換的對象時前面找到的RE,s2不可使用規(guī)則表達式,s2缺省時表示空串,(其中的/不可省略)x
是選項,可取值c:由用戶確認是否要替換g:對一行中所有匹配模式的字符串執(zhí)行命令(否則僅第一個)p:顯示出匹配字符串修改后的行的內(nèi)容5.4.5全局替換命令(續(xù))下面是一些常用的命令:(1)g/s1/p(2)g/s1/s//s2/(3)g/s1/s//s2/g(4)g/s1/s//s2/gp(5)g/s0/s/s1/s2/g(6)g!/模式/命令表(7)g/^/s///g(8)s/模式/替換文本/選項全局命令例
1-rw-r--r--1zhaozhao10079Jun2109:47b012-rw-r-----1zhaozhao0Sep1111:38c13-rw-rw-rw-1zhaozhao0Sep1111:44c24drwx------2zhaozhao4096Oct816:05d3/5drwxrwxr-x2zhaozhao4096Oct1515:01d5/6-rw-rw-r--1zhaozhao39Oct814:18data17-rw-rw-r--2zhaozhao24Oct1314:44f18drwxrwxr-x3zhaozhao4096Oct1310:28mydoc/9-rw-rw-r--1zhaozhao16Oct809:54odtest10-rwx------1zhaozhao238Sep2013:33select_li2*11-rw-r--r--1zhaozhao63Oct1116:05student112-rw-r--r--3zhaozhao38May2116:24t1115.4.6模式表達式正則表達式和模式(pattern)正則表達式是由一些特殊字符和普通字符構(gòu)成的字符串,用來表示某類特征的文本.模式則是由正則表達式和一些操作符進一步構(gòu)成的用來表示含有某種特征的文本.在模式可使用的特殊字符及其含義:(1)點號“.”:表示任意的單個字符(2)星號“*”:表示0個或多個在它前面的字符(3)方括號“[]”:表示匹配在其中的字符集中的某個字符,在其中的字符集如是有序的,可以用“-”表示.5.4.6模式表達式(續(xù))(4)“^”符號:在[]中,如位置緊跟在[之后,則表示在[]種的字符集的“非”;如在其他位置,僅表示它自己.在[]之外的表達式中,則表示匹配“行首”
(5)“$”符號:表示匹配“行尾”模式表達式例例1:ab.c代表第一個字符為a第二個字符為b第三個字符為任意字符,第四個字符為c的四個字符構(gòu)成的字符串例2:ab*c可以代表ac、abc、abbc、abbbc等等例3:[abc]代表字母a或b或c例4:[^a-z]代表除小寫字母以外的字符例5:^[a-z]代表行首是小寫字母例6:abc$代表以abc結(jié)尾的例7:.*代表任意的任意長的字符串5.5編輯多個文件在vi中可以同時編輯多個文件,多文件的編輯可以利用公共的緩沖區(qū)來交換文件的內(nèi)容,還可共享同一個vi的環(huán)境設(shè)置。5.5.1打開多個文件方法一:vi文件列表(列表中可使用通配符)方法二:在末行模式下使用e命令,即:e文件名5.5.2在多個文件之間切換使用第一種方法打開多文件時,可使用下面的命令實現(xiàn)文件間的切換::n(打開下一個文件):n!(拋棄對文件的編輯,打開下一個文件):args(列出被編輯的文件名表):efilename(編輯由filename指定的文件):rew(重新從列表的第一個文件進行編輯):rew!(放棄所做的編輯,重新從列表的第一個文件進行編輯)5.6文件內(nèi)容的復(fù)制刪除寄存器:以數(shù)字1-9命名刪除時,最近被刪除的內(nèi)容放在1號寄存器,而上一次被刪除的內(nèi)容則被放到2號寄存器,2號寄存器被放到3號寄存器,等等。例:ndd(刪除當(dāng)前行起的n行,并放入在1號寄存器)字母緩沖區(qū):以字母a-z命名復(fù)制時把被復(fù)制內(nèi)容放到某緩沖區(qū)(?為字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025標(biāo)識標(biāo)牌行業(yè)發(fā)展趨勢分析與預(yù)測合同3篇
- 二零二五版辦公區(qū)域租賃合同(含物業(yè)增值服務(wù))
- 二手住宅交易服務(wù)合同(2024年版)3篇
- 二零二五年度股權(quán)分割協(xié)議書模板
- 2025年度礦業(yè)權(quán)出讓與地質(zhì)安全監(jiān)管合同
- 2025年度車輛借出免責(zé)及車輛使用責(zé)任界定協(xié)議
- 2025年度城市綜合體物業(yè)保安勞務(wù)管理合同
- 2025年度生鮮供應(yīng)鏈金融服務(wù)合作協(xié)議
- 二零二五年度電視節(jié)目制作與播出合同
- 2025年度商業(yè)空間轉(zhuǎn)租合同
- 小兒甲型流感護理查房
- 霧化吸入療法合理用藥專家共識(2024版)解讀
- 拆遷評估機構(gòu)選定方案
- 趣味知識問答100道
- 鋼管豎向承載力表
- 2024年新北師大版八年級上冊物理全冊教學(xué)課件(新版教材)
- 人教版數(shù)學(xué)四年級下冊核心素養(yǎng)目標(biāo)全冊教學(xué)設(shè)計
- JJG 692-2010無創(chuàng)自動測量血壓計
- 三年級下冊口算天天100題(A4打印版)
- CSSD職業(yè)暴露與防護
- 飲料對人體的危害1
評論
0/150
提交評論