第三章vi編輯器_第1頁(yè)
第三章vi編輯器_第2頁(yè)
第三章vi編輯器_第3頁(yè)
第三章vi編輯器_第4頁(yè)
第三章vi編輯器_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章VI文本編輯器李威liweizhisjb@163.comLinux編輯器概述文本編輯器與字處理程序文本編輯器只處理ASCII碼文件字處理程序進(jìn)行復(fù)雜的文字編輯工作文本編輯器類型行編輯器全屏幕編輯器流行的文本編輯器

vim、gedit、emacs、pico、nano、joe、jed…VI啟動(dòng)#VI

在系統(tǒng)提示字符(如$、#)下敲入vi<檔案名稱>,vi可以自動(dòng)幫你載入所要編輯的文件或是開(kāi)啟一個(gè)新文件(如果該文件不存在或缺少文件名)進(jìn)入vi后螢?zāi)蛔蠓綍?huì)出現(xiàn)波浪符號(hào),凡是列首有該符號(hào)就代表此列目前是空的。3vi工作方式vi編輯器有三種方式:命令方式、輸入方式和ex轉(zhuǎn)義方式?!蠲罘绞疆?dāng)進(jìn)入vi編輯器時(shí),就處于vi的命令方式。此時(shí),從鍵盤上輸入的任何字符都被作為編輯命令來(lái)解釋?!钶斎敕绞皆谳斎敕绞较拢瑥逆I盤上輸入的所有字符都被插入正在編輯的緩沖區(qū)中,被當(dāng)作該文件的正文,進(jìn)入輸入方式后,輸入的可見(jiàn)字符都在屏幕上顯示出來(lái),編輯命令不再起作用僅作為普通字符出現(xiàn)?!?/p>

ex命令方式在vi中使用ex轉(zhuǎn)義方式,需要輸入一個(gè)冒號(hào),冒號(hào)作為ex命令提示符出現(xiàn)在狀態(tài)行(通常在屏幕最下一行)。45退出vi:w將文章存入指定的文件名filename:wq保存離開(kāi):q不保存離開(kāi),如果文檔已經(jīng)編輯并未保存,將會(huì)提示保存。:q!強(qiáng)制離開(kāi):!代表強(qiáng)制。例如:w!:ZZ連按2次Z鍵,可將當(dāng)前正在編輯的文件保存并結(jié)束vi。(注:無(wú)文件名不可用)6文本輸入插入命令i在光標(biāo)前插入內(nèi)容,光標(biāo)后的內(nèi)容相應(yīng)向右移動(dòng)I在光標(biāo)所在行的行首插入新增文本,行首是本行的第一個(gè)非空白字符附加命令a在光標(biāo)后插入內(nèi)容A在光標(biāo)所在行的行尾添加文本,當(dāng)輸入命令A(yù)時(shí)光標(biāo)自動(dòng)移到該行的行尾打開(kāi)命令o在光標(biāo)所在行的下面新開(kāi)辟一行,插入內(nèi)容O在光標(biāo)所在行的上面新開(kāi)辟一行,插入內(nèi)容7光標(biāo)移動(dòng)☆輸入方式下光標(biāo)移動(dòng)Backspace鍵將光標(biāo)從當(dāng)前行新插入的字符回退一個(gè)字符Ctrl+U鍵將光標(biāo)回退到剛插入字符串的第一個(gè)字符,并重新開(kāi)始插入Ctrl+W鍵將光標(biāo)移到最后插入單詞的首字符Ctrl+T鍵在當(dāng)前行的開(kāi)頭插入縮進(jìn)所對(duì)應(yīng)的空格四個(gè)方向鍵可以在輸入方式下移動(dòng)光標(biāo)8光標(biāo)移動(dòng)☆命令方式下光標(biāo)移動(dòng)向右移動(dòng)一個(gè)字符l鍵、Space鍵、右向鍵都可向右移動(dòng)一個(gè)字符,如想向右移動(dòng)n個(gè)字符,則nl、n+Space例:6l表示右移6個(gè)字符;2+Space向右移動(dòng)2個(gè)字符向左移動(dòng)一個(gè)字符h鍵、Backspace鍵、左向鍵可向左移動(dòng)一個(gè)字符,如想向左移動(dòng)n個(gè)字符,則nh例:5h向左移動(dòng)5個(gè)字符移到下一行+、Enter鍵、j鍵、Ctrl+N、下向鍵,前兩個(gè)光標(biāo)移到下一行的開(kāi)頭;后面三個(gè)下移后光標(biāo)所在列不變;例:3+、3Enter、3j、3Ctrl+N、3↓表示下移3行移到上一行-、k鍵、Ctrl+p、上向鍵都表示上移一行;第一個(gè)把光標(biāo)移到上行的開(kāi)頭,其余三個(gè)保持光標(biāo)在同一行上。例:3-、3k都表示光標(biāo)上移3行9光標(biāo)移動(dòng)☆命令方式下光標(biāo)移動(dòng)移至行首^鍵、0鍵都表示把光標(biāo)移到當(dāng)前行的開(kāi)頭;0鍵把光標(biāo)移到當(dāng)前行的第一個(gè)字符,不管它是否為空白符;^鍵把光標(biāo)移到當(dāng)前行的第一個(gè)非空白字符移至行尾$移至當(dāng)前行的行尾,如果是n$表示光標(biāo)移到下面n-1行的行尾移至指定行[行號(hào)]G將光標(biāo)移至指定行的開(kāi)頭,行號(hào)缺省則移到文件的最后一行的開(kāi)頭移至指定列[列號(hào)]|將光標(biāo)移到當(dāng)前行指定列上,如果列號(hào)缺省則移到當(dāng)前行的第一列上按詞前移w、W表示將光標(biāo)下移一個(gè)詞的開(kāi)頭;w搜索的詞定義為以標(biāo)點(diǎn)符號(hào)或空白符分開(kāi)的字母數(shù)字串;W搜索的詞定義為非空白字符串按詞后移b、B將光標(biāo)后退到前一詞的開(kāi)頭b、B對(duì)搜索詞的定義和w、W一致。如果光標(biāo)已在一個(gè)詞中則移至該次的開(kāi)頭10光標(biāo)移動(dòng)☆命令方式下光標(biāo)移動(dòng)移至詞尾e、E將光標(biāo)移至詞尾,對(duì)搜索詞的定義和w、W一致。如果光標(biāo)在一個(gè)詞中則移至該詞的末尾按句移動(dòng)(、)將光標(biāo)移至上一個(gè)和下一個(gè)句子的開(kāi)頭。句子定義為以句點(diǎn)(.)、問(wèn)號(hào)(?)、或感嘆號(hào)(!)結(jié)尾、后隨兩個(gè)空格或一個(gè)換行的字符序列。句子在第一個(gè)非空白字符開(kāi)始在屏幕上移動(dòng)[位移]H移至屏幕的左上角;nH表示光標(biāo)移到距屏幕頂部(n-1)行的行首[位移]M移至屏幕中間行的開(kāi)頭;[位移]L移至屏幕的最低行,當(dāng)顯示內(nèi)容不足一屏?xí)r光標(biāo)則停留在最后一行;注意:dH表示刪除從當(dāng)前行至所顯示屏幕頂行的全部行;dM表示刪除從當(dāng)前行至命令M所指定行之間的所有行dL表示刪除從當(dāng)前行至屏幕底行之間的所有行11文本刪除x刪除光標(biāo)所在的字符,nx表示向右刪除n個(gè)字符;XX刪除光標(biāo)前面的那個(gè)字符,nX表示向左刪除n個(gè)字符;dd刪除光標(biāo)所在的整行D從光標(biāo)位置開(kāi)始刪除到行尾d與光標(biāo)移動(dòng)命令組合從光標(biāo)位置開(kāi)始刪除到由光標(biāo)移動(dòng)限定的文本對(duì)象的末尾。12文本刪除

例:d0從光標(biāo)位置刪至行首d3l從光標(biāo)位置向右刪3個(gè)字符d$從光標(biāo)位置刪至行尾,與D相同d5G從光標(biāo)所在行至第5行刪除dw刪除從光標(biāo)位置(包括該位)至該詞末尾(包括詞尾空白符)的所有字符d3B從光標(biāo)位置(不包括該位)反向刪除3個(gè)詞(光標(biāo)所在詞也算在內(nèi))dM刪除光標(biāo)所在行至屏幕中間行的所有行13文本編輯復(fù)原命令u取消之前剛輸入的一條命令的作用U把當(dāng)前行恢復(fù)成它被編輯之前的狀態(tài),不管對(duì)它編輯了多少次重復(fù)命令園點(diǎn)(.)用來(lái)重復(fù)實(shí)現(xiàn)最新一次使用的插入或刪除命令14修改命令c命令、C和cc的功能都是修改文本對(duì)象,并用新輸入的文本代替老的文本。輸入修改命令后就進(jìn)入輸入方式。另這里用$符號(hào)標(biāo)記同一行中修改內(nèi)容的范圍。修改命令cc后面緊隨光標(biāo)移動(dòng)命令,之后是輸入新文本,Esc鍵C修改從光標(biāo)位置到該行末尾的文本cc將光標(biāo)所在行的全部?jī)?nèi)容都由新輸入的內(nèi)容代替15修改命令練習(xí):請(qǐng)動(dòng)手練習(xí)給出下列命令實(shí)現(xiàn)的功能cW、c$、c6G

、C16取代命令取代命令r用隨后輸入的單個(gè)字符取代光標(biāo)所在的字符?;蛟趓前面給出一個(gè)數(shù)字,表示在光標(biāo)位開(kāi)始向右共有n個(gè)字符分別被新字符所代替R用隨后輸入的文本取代光標(biāo)位及其右面的若干字符,每輸入一個(gè)字符就替代原有的一個(gè)字符,如果新輸入的字符超過(guò)原有對(duì)應(yīng)的字符數(shù),則多出的部分就附加在后面。另如果R前面加數(shù)字n代表新輸入的正文重復(fù)出現(xiàn)n次但是被覆蓋的字符數(shù)不變;即使新輸入的文本占多行時(shí)也只有光標(biāo)所在行的對(duì)應(yīng)字符被覆蓋(新輸入的文本字符個(gè)數(shù)計(jì)算不包括換行和Esc鍵但包含空格)

17取代命令練習(xí):請(qǐng)動(dòng)手練習(xí)給出下列命令實(shí)現(xiàn)的功能3rA、3RA18替換命令r命令和s命令的區(qū)別:r命令僅完成置換;s命令在完成置換后,工作模式從命令方式轉(zhuǎn)換成輸入方式,因此r=s+Esc;替換命令s用隨后輸入的正文替換光標(biāo)所在的字符;ns表示光標(biāo)所在字符以及其后的(n-1)個(gè)字符被新輸入的字符序列替換S命令用新輸入的文本替代當(dāng)前行;nS表示當(dāng)前行和下面的(n-1)行19文本編輯文本編輯命令文本行合并命令J用來(lái)將光標(biāo)所在行和下面一行合并成一行;nJ表示把當(dāng)前行和后面的(n-1)行進(jìn)行合并文本行移動(dòng)命令<、<<將限定正文行向左移動(dòng)8個(gè)空格,移動(dòng)正文行的范圍由光標(biāo)所在行和隨后輸入的光標(biāo)移動(dòng)命令所限定>、>>使用方式和<、<<相同,只是方向相反20屏幕命令屏幕命令滾屏

命令Ctrl+U屏幕向上滾動(dòng)半個(gè)窗口Ctrl+D屏幕下滾動(dòng)半個(gè)窗口分頁(yè)

命令Ctrl+F向前將屏幕分頁(yè)Ctrl+B向后將屏幕分頁(yè)如果在Ctrl前鍵入一個(gè)數(shù)字n,則屏幕相應(yīng)滾過(guò)n行,以后在用Ctrl+U和Ctrl+D命令也相應(yīng)滾過(guò)同樣的行數(shù)。在Ctrl前鍵入一個(gè)數(shù)字n表示移動(dòng)的頁(yè)數(shù)。21屏幕命令屏幕命令編輯一個(gè)文件vi+行號(hào)文件名表示從表示從指定行進(jìn)入vi,將所指定行作為屏幕中間行出現(xiàn),光標(biāo)停在行首vi+/詞文件名表示從某一指定詞進(jìn)入vi,首先在文件中找出指定詞的第一次出現(xiàn),以該行作為屏幕的中間行,光標(biāo)停在該行行首編輯多個(gè)文件vi文件1文件2同時(shí)調(diào)入多個(gè)文件,依次對(duì)它們進(jìn)行編輯22屏幕命令屏幕調(diào)零命令[行號(hào)]z[行數(shù)]按Enter鍵表示指定行作為首行顯示在屏幕頂端并顯示指定的行數(shù)[行號(hào)]z[行數(shù)].表示指定行作為屏幕的中間行顯示在屏幕中間并顯示指定的行數(shù)[行號(hào)]z[行數(shù)]-表示指定行作為底部行顯示在屏幕的底部并顯示指定的行數(shù)23屏幕命令☆

例:10z+Enter將第10行作為顯示的首行;10z.將第10行作為顯示屏幕的中間行,顯示一行;10z-將第10行作為顯示屏幕的底行,顯示一行;10z5-將第10行作為顯示屏幕的底行,顯示5行;24字符串檢索字符串檢索命令/模式+Enter鍵系統(tǒng)從光標(biāo)所在行開(kāi)始向前查找這個(gè)模式,找到后停留在該模式的第一個(gè)字符上,否則在狀態(tài)行顯示“Patternnotfound”/模式/-n+Enter鍵從光標(biāo)所在行向前查找指定模式,光標(biāo)停留在匹配行前n行的行首,即行號(hào)=匹配行號(hào)-n/模式/+n+Enter鍵從光標(biāo)所在行向前查找指定模式,光標(biāo)停留在匹配行后n行的行首,即行號(hào)=匹配行號(hào)+n/模式/-+Enter鍵從光標(biāo)所在行向前查找指定模式,光標(biāo)停留在匹配行前一行的行首/模式/++Enter鍵從光標(biāo)所在行向前查找指定模式,光標(biāo)停留在匹配行下一行的行首25字符串檢索字符串檢索命令?模式+Enter鍵從光標(biāo)所在行向后查找指定模式?模式?-n+Enter鍵從光標(biāo)所在行向后查找指定模式,光標(biāo)停留在指定行前n行的行首,即行號(hào)=匹配行號(hào)-n?模式?+n+Enter鍵從光標(biāo)所在行向后查找指定模式,光標(biāo)停留在匹配行后n行的行首,即行號(hào)=匹配行號(hào)+n?模式?-+Enter鍵從光標(biāo)所在行向后查找指定模式,光標(biāo)停留在匹配行前一行的行首?模式?++Enter鍵從光標(biāo)所在行向后查找指定模式,光標(biāo)停留在匹配行下一行的行首26字符串檢索例:/8+Enter/8/-2+Enter

?8?+2+Enter27字符檢索字符檢索命令n和Nn和N可以重復(fù)上一個(gè)檢索命令,n重復(fù)檢索方向和上一個(gè)檢索命令相同,N則相反f字符在當(dāng)前行上向前查找給定的字符F字符在當(dāng)前行上向后查找給定的字符;字符重復(fù)上一次查找動(dòng)作,方向相同,字符重復(fù)上一次查找動(dòng)作,方向相反28字符檢索☆

光標(biāo)靠近字符命令t和T移動(dòng)光標(biāo)靠近字符,t光標(biāo)停在字符前一位;T光標(biāo)停在字符后一位;☆置標(biāo)記對(duì)文件中某些特定位置做上標(biāo)記便于以后進(jìn)行快速查找、定位。置標(biāo)記命令的格式如下:m小寫字母29字符檢索☆

全局替換命令全局替換是一種組合命令,命令格式:g/模式/命令表全局替換命令g/s1/p將包含字符串s1的所有行顯示在屏幕上g/s1/s//s2/在包含字符串s1的所有行中用字符串s2替換g/s1/s//s2/g用字符串s2替換字符串s1,包括一行中s1出現(xiàn)多次g/s1/s//s2/gp用字符串s2替換字符串s1,包括一行中s1出現(xiàn)多次,并將修改過(guò)的行顯示在屏幕上g/s1/s//s2/gc確認(rèn)替換,s1每出現(xiàn)一次就詢問(wèn)是否用s2替換30字符檢索全局替換命令g/s0/s/s1/s2/g對(duì)包含s0的所有行作標(biāo)記,然后對(duì)有標(biāo)記的行中的s1用s2進(jìn)行替換g!/模式/命令表對(duì)所有不匹配給定模式的文本行執(zhí)行命令表g/^/s///g在文件的每一行的開(kāi)頭插入給定的空格s/模式/替代文本/選項(xiàng)對(duì)每一行與給定模式匹配的第一個(gè)字符串用“替代文本”取代;選項(xiàng)中g(shù)對(duì)所有匹配的字符串都替換;c替換前提示用戶確認(rèn);31字符檢索例:1、g/this/p+Enter在屏幕上顯示所有包含字符串this的行2、g/IF/s//if/將當(dāng)前文件中所有的IF都替換成小寫的if(一行中包括多個(gè)IF時(shí)只替換第一個(gè)字符串)3、g/IF/s//if/g將當(dāng)前文件中所有的IF都替換成小寫的if(一行中包括多個(gè)IF時(shí)都被替換)4、g/print/s/n1/value/g對(duì)所有包含print的行,如果其中含有字符串n1則用value替換5、g!/print/s/n1/value/g將不包含print的所有行用value替換n132ex命令命令定位方法指定行號(hào):20+Enter將光標(biāo)移到第20行的行首給定模式:/this/按Enter鍵從光標(biāo)所在行向前查給定模式this:?this?按Enter鍵從光標(biāo)所在行向后查找給定模式this.當(dāng)前行n編輯器緩沖區(qū)中的第n行,行號(hào)從1開(kāi)始順序編排33ex命令命令定位方法$緩沖區(qū)中的最后一行%1,$從第1行至最后一行的縮寫+n或-n表示相對(duì)當(dāng)前行的位移.當(dāng)前行`x快速回到有標(biāo)記的正文行上34ex命令☆

e命令:可以編輯當(dāng)前文件時(shí)編輯另外的文件。當(dāng)前文件名由vi記住,用%表示;編輯緩沖區(qū)中的上一個(gè)文件名用#表示命令定位方法e文件名編輯由文件名指定的文件。這里編輯器會(huì)先檢查自上次執(zhí)行寫(w)命令緩沖區(qū)內(nèi)容是否被修改過(guò),如果改過(guò)就發(fā)出警告信息并中止該命令;如未修改過(guò)就刪除緩沖區(qū)內(nèi)的全部?jī)?nèi)容,把指定的文件當(dāng)作當(dāng)前文件e!文件名它不把修改過(guò)的當(dāng)前文件從緩沖區(qū)中寫出去,從而忽略在編輯新文件之前的全部修改e+n文件名從第n行開(kāi)始編輯指定的文件35ex命令☆

w命令:把編輯緩沖區(qū)中全部或者部分內(nèi)容寫到當(dāng)前文件或者另外某個(gè)文件中。命令定位方法w文件名把做的修改寫回指定的文件,并顯示所寫的行數(shù)和字符數(shù)w>>文件名把緩沖區(qū)內(nèi)容附加到文件的末尾w!文件名跳過(guò)通常寫命令對(duì)文件的檢查,把緩沖區(qū)的內(nèi)容寫到系統(tǒng)允許的任何文件上w!命令將指定的各行寫入指定命令中36ex命令☆

r命令:把文本讀入編輯緩沖區(qū)的任意指定位置,讀入文本必須至少一行長(zhǎng)。命令定位方法r文件名將指定的文件副本讀入緩沖區(qū)中指定行之后r!命令將命令輸出讀到緩沖區(qū)指定行之后37ex命令☆

q命令:退出命令命令定位方法q退出vi。由于編輯器緩沖區(qū)的內(nèi)容不會(huì)自動(dòng)保存因此此時(shí)vi會(huì)顯示警告信息,不會(huì)從vi中退出q!強(qiáng)制退出,不保留所作的修改wq文件名保存退出wq!文件名忽略執(zhí)行w命令之前所作的檢查。例如,用戶有個(gè)文件并沒(méi)有打開(kāi)它的寫權(quán)限但是使用wq!就允許用戶用任何方式修改該文件x文件名如果文件做過(guò)修改且沒(méi)有寫出去則該命令是保存后退出,否則直接退出38文本移動(dòng)☆

把文本從一個(gè)緩沖區(qū)放到編輯緩沖區(qū)中,語(yǔ)法如下:如不指定緩沖區(qū)則文本取自無(wú)名緩

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論