版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
vim牛刀小試寧波城市職業(yè)技術(shù)學(xué)院顏晨陽vim牛刀小試寧波城市職業(yè)技術(shù)學(xué)院顏晨陽較復(fù)雜的編輯任務(wù)更高級(jí)的一些技巧用vim打開messages文件;另存為messages.bak文件設(shè)定行號(hào);禁止長(zhǎng)行自動(dòng)回繞;顯示光標(biāo)位置和未完成命令;設(shè)置自動(dòng)保存;打開查找高亮,突出顯示當(dāng)前行。移動(dòng)到第58行行首;再向右移動(dòng)30個(gè)字符;移動(dòng)到第8行行尾;再向左移動(dòng)3個(gè)單詞,最后移動(dòng)到第300行第1個(gè)“(”符號(hào)處。移動(dòng)到第1行行首,并且向下搜尋一下“/boot”這個(gè)字符串,移動(dòng)到末行行尾,向上查找“io”這個(gè)單詞。將50到100行之間的man替換MAN,并且逐個(gè)挑選是否需要修改。刪除11到30行之間的20行;去第29行首,并且刪除15個(gè)字符;刪除200行中所有用中括號(hào)“[]”括起來的代碼;刪除201行中從行首到第一個(gè)“[”符號(hào)為止的內(nèi)容,并進(jìn)入插入模式。刪除第210-250行的第一個(gè)字段,然后在210-250行行首插入一個(gè)“#”字符;撤銷第6-7步刪除操作;之后發(fā)現(xiàn)第7步正確,恢復(fù)第7步操作。復(fù)制51到60行這10行的內(nèi)容,并且粘貼到最后一行之后;復(fù)制第61行的頭20個(gè)字符,并且粘貼到最后一行的最后一個(gè)字符之后;剪切80到85行這6行的內(nèi)容,并且粘貼到最后一行之后。在1-100行每行前后都添加一個(gè)“#”號(hào)。在不關(guān)閉當(dāng)前文件的情況下,打開一個(gè)名為messages01的新文件;復(fù)制messages的1-100行,粘貼到新文件中;存儲(chǔ)兩個(gè)文件后,退出Vim11步第1步打開文件并另存為其他名字順手的vim環(huán)境事半功倍程序開發(fā)運(yùn)維人員.vimrc:set環(huán)境設(shè)置名均為一次性,vim關(guān)閉后就失效第2步vim環(huán)境設(shè)置第3步光標(biāo)移動(dòng)操作第4步查找字符串操作第5步替換字符串操作第6步刪除操作第7步在可視模式下進(jìn)行操作可視模式刪除messages第210-250行的第一個(gè)字段在210-250行行首插入一個(gè)“#”字符普通模式插入模式可視模式可視模式字符可視行可視塊可視第8步撤銷和重做操作撤銷第7步刪除操作第9步復(fù)制剪切粘貼操作第10步記錄回放操作第10步記錄回放操作在1-100行每行的行首和行末都添加一個(gè)“#”號(hào)手動(dòng)編輯完成記錄回放RECPLAY第11步打開多個(gè)文件/docs.phpVim用戶手冊(cè)vim牛刀小試寧波城市職業(yè)技術(shù)學(xué)院顏晨陽第1步任務(wù)命令打開當(dāng)前工作目錄下messages文件vim./messages另存為當(dāng)前工作目錄下messages.bak文件:w./messages.bak第2步任務(wù)命令設(shè)定行號(hào):setnu禁止長(zhǎng)行自動(dòng)回繞:setnowrap顯示光標(biāo)位置:setruler顯示未完成命令:setshowcmd設(shè)置自動(dòng)保存:setautowrite打開查找高亮:sethlsearch突出顯示當(dāng)前行:setcursorline第3步任務(wù)命令移動(dòng)到第58行行首58G0向右移動(dòng)40個(gè)字符40l移動(dòng)到第8行行尾8G$向左移動(dòng)3個(gè)單詞3b移動(dòng)到第300行第1個(gè)“(”處300G,f(光標(biāo)移動(dòng)快捷鍵快捷鍵用途h/j/k/l向左/下/上/右移動(dòng)1個(gè)字符0/$移動(dòng)到本行第1個(gè)/最后1個(gè)字符處^移動(dòng)到本行第1個(gè)非空白字符處gg/G移動(dòng)到本文件首行/末行b/w移動(dòng)到上/下1個(gè)“單詞”的第一個(gè)字符處,其中的“單詞”指的是由字母、數(shù)字或下劃線等非空白字符構(gòu)成的字符序列,并由空格、制表和換行或標(biāo)點(diǎn)符號(hào)分隔。f{字符}/F{字符}移動(dòng)到本行光標(biāo)右邊/左邊匹配的字符上;重復(fù)上一個(gè)f、F、t或T的移動(dòng)。如本行有三個(gè)“a”字母時(shí),“fa”會(huì)使光標(biāo)跳到第一個(gè)“a”上,此時(shí)按下“;”便相當(dāng)于重復(fù)了“fa”的操作,跳到第二個(gè)“a”上。,類似于“;”,不過是按反方向移動(dòng)。{/}移動(dòng)到上1個(gè)/下1個(gè)段落邊界(即空行)第4步任務(wù)命令移動(dòng)到第1行行首gg0向下查找“/boot”這個(gè)字符串/\/boot移動(dòng)到末行行尾G$向上查找“io”這個(gè)單詞?\<io\>:/\/boot第一個(gè)斜杠/表示查找命令“.、*、[、]、^、%、/、\、?、~、$”等都是Bash元字符。如要查找的字符串中包含這些字符,需在字符前加上“\”進(jìn)行轉(zhuǎn)義后面是要查找的字符串模式反斜杠“\”表示字符轉(zhuǎn)義,因?yàn)楹蟾檎业淖址杏刑厥庾址?”可以鍵入“n”或者“N”鍵來向后或者向前遍歷所有匹配的“/boot”字符串可以在“n”或者“N”前面增加計(jì)數(shù)前綴。如3n表示從當(dāng)前光標(biāo)位置向后移動(dòng)到第三個(gè)匹配點(diǎn):?\<io\>?與“/”類似,但進(jìn)行反方向(由后向前)查找“<”是一個(gè)特殊的記號(hào),匹配單詞開頭,同樣“>”表示匹配單詞末尾,但它們本身并不是特殊元字符,因此要加上\轉(zhuǎn)義來表明它們是元字符。:/\/boot正則表達(dá)式模式RegularExpressionPatterns:?\<io\>查找字符/或者?后面所跟的實(shí)際上是一個(gè)用來描述所查找字符串的“模式(Pattern)”,而不是要查找的字符串。Vim可以使用正則表達(dá)式(RegularExpression)定義要查找的對(duì)象模式,來完成更加復(fù)雜和精準(zhǔn)的查找。要用好正則表達(dá)式并非易事,需要經(jīng)過一些學(xué)習(xí)和練習(xí)才能夠初步掌握它。我們將會(huì)在任務(wù)5《處理文本》中初步接觸這個(gè)強(qiáng)大工具。:/\/boot正則表達(dá)式模式RegularExpressionPatterns第5步任務(wù)命令將50到100行間的“PXM”替換為“pxm”,逐個(gè)挑選是否需要修改:50,100s/PXM/pxm/gc:50,100s/PXM/pxm/gc替換的范圍,此處為50-100行??捎?表示范圍是所有行,可用$表示最后一行,如這部分省略,那么默認(rèn)作用范圍就是光標(biāo)所在行。替換命令,完整的命令是“substitute”,但很少鍵入完整命令,一般用“s”來替代。被替換的字符串,以斜杠字符“/”開頭。準(zhǔn)確地說,這是匹配被替換字符串的一種“模式(Pattern)”。替換字符串,以斜杠字符“/”開頭標(biāo)志位,這里標(biāo)志位上有兩個(gè)標(biāo)志:“g”和“c”這兩個(gè)標(biāo)志各有其功用:50,100s/PXM/pxm/gc“g”標(biāo)志表示對(duì)范圍內(nèi)所有匹配點(diǎn)起作用。默認(rèn)情況下,“s”命令只對(duì)指定范圍內(nèi)的每行第一個(gè)匹配點(diǎn)起作用,例如前面例子中如果去掉“g”標(biāo)志,那么命令只會(huì)替換50-100行中每行的第一個(gè)匹配“PXM”的字符串,而不是替換50-100行中所有匹配“PXM”的字符串:50,100s/PXM/pxm/gc“c”標(biāo)志表示Vim找到每一個(gè)匹配點(diǎn)的時(shí)候會(huì)向用戶詢問下一步要執(zhí)行的動(dòng)作?;卮鹱饔脃是,執(zhí)行替換n否,跳過a對(duì)剩下的匹配點(diǎn)全部執(zhí)行替換,不需要再確認(rèn)q退出,不再執(zhí)行任何替換l替換完當(dāng)前匹配點(diǎn)后退出ctrl+e向上滾動(dòng)一行ctrl+y向下滾動(dòng)一行第6步任務(wù)命令刪除10到29行之間的20行10G,20dd去第29行首,并且刪除15個(gè)字符29G,15x移刪除200行中所有用中括號(hào)“[]”括起來的代碼200G,f[,di[(重復(fù),直到本行所有用中括號(hào)“[]”括起來的內(nèi)容都被刪除)刪除201行中從行首到第一個(gè)“[”符號(hào)為止的內(nèi)容,并進(jìn)入插入模式201G,cf[快捷鍵用途x/Xx為向右/左刪除一個(gè)字符,在前面加上數(shù)字表示刪除多個(gè)字符,如15x就表示從當(dāng)前光標(biāo)所在字符開始向右刪除15個(gè)字符,5X則表示從當(dāng)前光標(biāo)所在字符開始向左刪除5個(gè)字符。dd/cc刪除光所在的那一整行(并進(jìn)入插入模式),在前面加上數(shù)字表示刪除多行,如5dd就表示從光標(biāo)所在行開始向下刪除5行,10cc則表示表示從光標(biāo)所在行開始向下刪除10行后進(jìn)入插入模式。D/C從當(dāng)前光標(biāo)位置開始,刪除到行尾(并進(jìn)入插入模式)J表示刪除光標(biāo)所在行的換行符Vim并不使用按鍵組合(keycombination,多個(gè)鍵同時(shí)按下),而是通過構(gòu)建按鍵序列(keysequence,按照特定的順序按下一系列按鍵)來完成復(fù)雜的編輯操作operator(操作符)+motion(動(dòng)作)/textobject(文本對(duì)象)operator表示具體的操作,也即做什么,motion或textobject則表示操作的對(duì)象,也即操作對(duì)哪些文本做Vim語法(Vimgrammar)以按鍵序列“cf[”為例,其中“c”是操作,表示修改(刪除并進(jìn)入插入模式),“f[”是動(dòng)作,也即motion,“f”表示移動(dòng)光標(biāo)到本行中光標(biāo)右側(cè)的第一個(gè)匹配字符,移動(dòng)的范圍就是刪除的范圍,也即本行光標(biāo)當(dāng)前位置開始直到右側(cè)第一個(gè)匹配的“[”字符。以按鍵序列“di[”為例,其中“d”是操作符,表示刪除;“i[”則是一個(gè)文本對(duì)象,也即textobject,是Vim用來捕獲文本結(jié)構(gòu)(textstructure)所特有的操作:其中“i”表示“處于……內(nèi)部(inner)”的意思,“[”表示一個(gè)中括號(hào),合起來就是光標(biāo)所處的那個(gè)中括號(hào)“[]”括起范圍內(nèi)的字符。operator(操作符)+motion(動(dòng)作)/textobject(文本對(duì)象)Vim語法充分體現(xiàn)了Vim作為“程序員專用”文本編輯器的一個(gè)重要特征:將編輯文本視為編程(Texteditingasprogramminglanguage)。Vim語法(Vimgrammar)第7步任務(wù)命令刪除第210-250行的第一個(gè)字段210G,crtlv,2l,40j,d在210-250行行首插入一個(gè)“#”字符210G,crtlv,40j,I,#,esc快捷鍵命令用途v字符模式,左下會(huì)出現(xiàn)--可視--,會(huì)將光標(biāo)經(jīng)過的字符反白選擇V行模式,左下會(huì)出現(xiàn)--可視行--,會(huì)將光標(biāo)經(jīng)過的行反白選擇ctrl+v塊模式,左下會(huì)出現(xiàn)--可視塊--,可用長(zhǎng)方形范圍的方式選擇文本第8步任務(wù)命令刪除有誤,撤銷第7步的刪除和插入步驟u之后發(fā)現(xiàn)刪除步驟正確,重做刪除ctrlr快捷鍵用途u撤銷前一個(gè)動(dòng)作ctrl+r重做上一個(gè)動(dòng)作第9步任務(wù)命令復(fù)制51到60行這10行的內(nèi)容,粘貼到最后一行后51G,10yy,G,p復(fù)制61行頭20個(gè)字符,粘貼到最后一行最后一個(gè)字符后61G0,y20l,G$,p剪切81到100行這20行的內(nèi)容,粘貼到最后一行后81G,20dd,G,p剪切101行尾20個(gè)字符,粘貼到最后一行最后一個(gè)字符后101G$,20x,G,p快捷鍵用途y復(fù)制命令,可以與動(dòng)作或者對(duì)象按鍵連用。如y10b表示從光標(biāo)所在位置開始向左復(fù)制10個(gè)單詞,y20l表示從光標(biāo)所在位置開始向右復(fù)制20個(gè)字符,y$表示從光標(biāo)所在位置開始復(fù)制到行尾,yi{表示復(fù)制光標(biāo)所在大括號(hào)中括起的內(nèi)容。yy復(fù)制光標(biāo)所在的那一行,也可以與動(dòng)作或者對(duì)象按鍵連用,如20yy表示復(fù)制從光標(biāo)所在行開始的20行。p將復(fù)制內(nèi)容粘貼在光標(biāo)之后P將復(fù)制內(nèi)容粘貼在光標(biāo)之前刪除=剪切在1-100行每行的行首和行末都添加一個(gè)“#”號(hào)手動(dòng)編輯完成記錄回放RECPLAY第10步任務(wù)命令在1-100行每行的行首和行末都添加一個(gè)“#”號(hào)gg,qa,0,i,#,esc,$,a,#,esc,j,q,99@a用“:q+寄存器名
”命令啟動(dòng)操作錄制,錄制結(jié)果保存到寄存器名指定的寄存器中,寄存器名可以用a到z中任一個(gè)字母表示,此時(shí)窗口左下角會(huì)出現(xiàn)記錄中的字樣,表示開始錄制操作。輸入命令,完成要錄制的操作鍵入q結(jié)束錄制在合適位置,用“數(shù)字@寄存器名
”命令回放錄制好的操作指定的次數(shù)。第11步任務(wù)命令在不關(guān)閉當(dāng)前文件的情況下,打開一個(gè)名為messages01的新文件:editmessage01或:tabeditmessage01或:spmessage01或:vspmessage01復(fù)制messages的1-100行,粘貼到新文件中g(shù)g,100yy,P存儲(chǔ)兩個(gè)文件后,退出Vim:wqall最常見的就是用“:edit”命令來實(shí)現(xiàn):“:edit文件名”可在不關(guān)閉已打開文件的情況下,打開一個(gè)新文件用“:bp”切換到前一個(gè)打開的文件中,gg移到首行,用100yy復(fù)制首行開始的100行用“:bn”切換到后一個(gè)打開的文件中,gg移到首行,用P粘貼可用“:ls”命令來查看已經(jīng)打開的所有文件列表,文件名前面的“+”表示文件已經(jīng)被修改,但尚未保存,“#”代表上一次編輯的文檔,“%”是目前正在編輯中的文檔。可以按照常規(guī)方法,用“:wq”命令或者ZZ快捷鍵逐個(gè)保存退出來完成,也可以“:w”或“:q”命令后加上”all”來一次性完成也可用vim的標(biāo)簽頁功能來打開多個(gè)文件,“:tabedit文件名”這個(gè)命令將在新標(biāo)簽頁中打開文件,在窗口頂部會(huì)出現(xiàn)有一個(gè)打開的文件名的標(biāo)簽可以使用“數(shù)字”加上“gt”命令在各個(gè)標(biāo)簽頁之間進(jìn)行切換:如可以用“1gt”來切換到第一個(gè)標(biāo)簽頁,用“2gt”來切換到第二個(gè)標(biāo)簽頁,依次類推,如不加數(shù)字前綴,單“gt”就表示在各個(gè)標(biāo)簽頁之間順序切換可以用“:sp文件名”命令把屏幕水平分解成兩個(gè)窗口,并將新文件在上面的窗口打開,同時(shí)光標(biāo)也置于新窗口中??捎谩癱trl+w+方向
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026黑龍江黑河學(xué)院招聘博士考試參考題庫及答案解析
- 2026內(nèi)蒙古呼和浩特市劍橋中學(xué)高中部教師招聘2人考試備考題庫及答案解析
- 2026江西九江市湖口縣市場(chǎng)監(jiān)督管理局面向社會(huì)招聘3人考試備考題庫及答案解析
- 2026濟(jì)南高新區(qū)龍奧大廈附近小學(xué)招聘派遣制小學(xué)數(shù)學(xué)代課老師考試參考題庫及答案解析
- 2026四川華豐科技股份有限公司招聘生產(chǎn)計(jì)劃等崗位6人筆試備考試題及答案解析
- 2026嵐圖汽車制造領(lǐng)域招聘筆試模擬試題及答案解析
- 2026年地質(zhì)勘察在新能源開發(fā)中的應(yīng)用
- 2026山西中醫(yī)藥大學(xué)附屬醫(yī)院急需緊缺高層次人才招聘2人考試參考題庫及答案解析
- 2026云南紅河州建水滇南云水環(huán)境治理有限公司招聘1人考試備考題庫及答案解析
- 2026浙江省中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司溫州市分公司校園招聘10人筆試備考題庫及答案解析
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國(guó)民間美術(shù)文化遺產(chǎn)行業(yè)市場(chǎng)競(jìng)爭(zhēng)格局及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2026西藏自治區(qū)教育考試院招聘非編工作人員11人備考考試試題及答案解析
- 2026內(nèi)蒙古鄂爾多斯市伊金霍洛旗九泰熱力有限責(zé)任公司招聘熱電分公司專業(yè)技術(shù)人員16人筆試模擬試題及答案解析
- 2025至2030中國(guó)現(xiàn)代物流業(yè)智慧化轉(zhuǎn)型與多式聯(lián)運(yùn)體系構(gòu)建研究報(bào)告
- 馬年猜猜樂(猜地名)打印版
- 河南豫能控股股份有限公司及所管企業(yè)2026屆校園招聘127人筆試模擬試題及答案解析
- 2025年浙江省嘉興市嘉善縣保安員考試真題附答案解析
- 要謙虛不要驕傲課件
- 2026國(guó)家保安員資格考試題庫及參考答案【完整版】
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國(guó)滑板車行業(yè)發(fā)展前景及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 微生物檢驗(yàn)質(zhì)控措施分析
評(píng)論
0/150
提交評(píng)論