版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Word版,可自由編輯!】.、八、-刖言文本編輯是電腦系統(tǒng)最普通的操作任務(wù)之一,而vi編輯器是系統(tǒng)上最有效的標(biāo)準(zhǔn)文本編輯器之一。通過vi編輯器你可以創(chuàng)建新的文件或是編輯任何已有的純 文本文件。Vi編輯器如同很多在Unix早期階段開發(fā)的應(yīng)用程序一樣,有著不易使用的名 聲。Bram Molenaar 的克隆加強(qiáng)版,vim (Vi Improved )已經(jīng)走了很長(zhǎng)的一段 路來消除這樣的印象。Vim包含了很多的便利功能,如直觀的指示、幫助頁(yè)面等。 它可能已經(jīng)成為一種最流行的vi編輯器版本,所以本書的第七版為此專門在第二 部分辟出七個(gè)新單元,并命名為vim。當(dāng)然,還有很多其它有價(jià)值的vi克隆版本 同樣存
2、在,我們?cè)诘谌糠诌x取了它們中的三個(gè),并命名為other vi in clo nes 。本書的范圍本書包括的18個(gè)單元和4個(gè)附錄被分成了四個(gè)部分。第一部分,vi的基礎(chǔ)與進(jìn)階, 是為了讓你快速入手vi,并且后面的高級(jí)技巧會(huì)讓你vi用的更加得心應(yīng)手。最初的兩個(gè)單元,單元1,vi文本編輯器,和單元2,簡(jiǎn)單的編輯,介紹了一些你 可以入門的簡(jiǎn)單vi命令。你應(yīng)當(dāng)不斷練習(xí)直到這些命令成為你的第二天性。你可 以在第2單元后停止閱讀,在已經(jīng)學(xué)習(xí)了一些基礎(chǔ)的編輯工具后。但是vi意味著干很多又不僅僅是和基本詞匯有關(guān)的過程;各種各樣的命令和選項(xiàng) 能使你應(yīng)對(duì)很多編輯的苦差事時(shí)更加簡(jiǎn)便。第3單元,Moving Aroun
3、d in aHurry,和第4單元beyond the basis ,專注于用更簡(jiǎn)單的方法去完成目標(biāo)。在 你第1次閱讀期間,你至少會(huì)了解到vi能做什么和你可以利用什么命令來完成你 特定的需求。后來,你可以回過來再看這些單元做更深一步的學(xué)習(xí)。第5單元,介紹ex編輯器,第6單元,全局替換,和第7單元高級(jí)編輯,提供工 具幫助你轉(zhuǎn)移更多的編輯重?fù)?dān)到電腦上。這幾單元向你介紹基于vi的ex line編輯 器,這幾單元還向你展示了如何分配 ex命令通過vi。第8單元,vi克隆版本的介紹,材料如何體現(xiàn)我們的基本思想是給你們一些我們覺得對(duì)新用戶有用的vi知識(shí)的概述。學(xué)習(xí)一個(gè)新的編輯器,尤其是Vi命令的討論一個(gè)鍵
4、盤按鈕的圖片。約定第一部分Vi編輯器的基礎(chǔ)與進(jìn)階第1部分是第一單元Vi文本編Unix有很多可以改進(jìn)文本內(nèi)容的編輯器一個(gè)簡(jiǎn)潔的歷史觀點(diǎn)在鉆研vi的來龍去脈之前,它會(huì)幫助你理解你工作平臺(tái)上的 vi的理念。尤其,這 會(huì)幫助你搞很多清楚vi各樣更多的隱蔽的錯(cuò)誤信息,同樣可以體會(huì)vi的克隆版在 原始vi基礎(chǔ)上如何進(jìn)步。Vi的數(shù)據(jù)會(huì)回來當(dāng)用戶在終端上工作通過串行線連接到中央微型計(jì)算機(jī)。在全世 界有成百上千不同類型的終端存在并被使用。每一種都做著相同的事情(清屏, 移動(dòng)光標(biāo)等等),但是那些被用來讓它們執(zhí)行的命令卻是不同的。另外,unix系統(tǒng)讓你自己選擇字符用作退格,產(chǎn)生一個(gè)中斷信號(hào),或是其它有用的命令在串行
5、 終端上,例如暫停和恢復(fù)輸出。這些設(shè)備以前是(現(xiàn)在仍然是)管理著設(shè)備終端。原始的通用字符緩沖器版本的vi摘錄終端控制信息打開和關(guān)閉文件你可以用vi編輯任何文本文件。Vi復(fù)制需要編輯的文件到緩沖區(qū)中(一個(gè)在儲(chǔ)存 器中臨時(shí)儲(chǔ)存數(shù)據(jù)的地方),顯示緩沖區(qū)的內(nèi)容(雖然你同時(shí)只能看到一屏幕的 東西),然后讓你增加,刪除,和更改文本。當(dāng)你儲(chǔ)存你編輯好的東西,vi復(fù)制編輯好的緩存區(qū)的內(nèi)容回到外存貯器,覆蓋相同名字的舊文件。要記住你一直在復(fù)制了你的文件的緩沖區(qū)上工作,你的編輯將不會(huì)影響你的原始文件直到你儲(chǔ)存 緩沖區(qū)。儲(chǔ)存你的編輯文件也叫做“寫入緩沖區(qū)”,或更普通“寫入你的文件”。打開文件Vi是用來啟動(dòng)vi編輯器
6、來打開一個(gè)已存在的文件或是一個(gè)全新的文件的unix命令。Vi命令的語(yǔ)法是:$vi【文件名】括號(hào)在如上的命令行中顯示出文件名是可選擇的。括號(hào)不可以被打出來。$符號(hào)是unix的提示。如果文件名被忽略,vi編輯器將打開一個(gè)沒有名字的緩沖區(qū)。你可 以指定名字當(dāng)將緩沖區(qū)寫入文件。就現(xiàn)在,不過,還是讓我們堅(jiān)持在命令行給文 件起名。文件名在它的目錄下必須是獨(dú)一無(wú)二的。 一個(gè)文件名可以包括任何8-bit的字符除 了斜線號(hào)(/),這個(gè)符號(hào)是保留用來在路徑名中分離文件名和目錄名的 ,空字符, 零bit的字符。你甚至可以在文件名中包括空格通過打反斜杠號(hào)在空格之前。 實(shí)際 上,不過,文件名通常包含各種組合的大小寫字母
7、,數(shù)字,點(diǎn)號(hào)( .),和下劃線(_)。記住unix系統(tǒng)是區(qū)分大小寫:小寫字母和大寫字母是區(qū)分的。也要記住 你必須按ENTER去告訴unix你已經(jīng)輸入完你的命令。當(dāng)你在目錄下想打開一個(gè)新文件是,在文件名前加上vi命令。例如,如果你想打開一個(gè)新文件叫practice在當(dāng)前目錄下,你需要輸入:$vi practice既然這是一個(gè)新文件,緩沖區(qū)是空的,屏幕顯示如下:practicenew file波浪線()遞降排列在屏幕左邊顯示出在文件中沒有內(nèi)容,甚至不空行。在底部 的提示行(也叫狀態(tài)行)顯示文件名和文件狀態(tài)。你也能編輯在目錄下任何存在的文本文件只要通過指定文件名。如果有unix文件有這樣的路徑/ho
8、me/john/letter 。如果你已經(jīng)在/home/john 目錄下,用相對(duì)路 徑。例如:$vi letter將文件letter副本復(fù)制到屏幕。如果你在另一個(gè)目錄,要給出完全路徑才能開始編輯:$vi /home/joh n/letter打開文件的問題當(dāng)你調(diào)用vi是,信息open mode出現(xiàn)。你的終端類型可能沒有被正確的識(shí)別??焖偻顺鼍庉嬆J酵ㄟ^輸入:q。檢查環(huán)境變量$TERM它應(yīng)當(dāng)符合你的終端名?;蛘呷ジ嬖V你的系統(tǒng)管理員提供準(zhǔn)確的終端 類型設(shè)置。你看見如下信息之一:Visual n eeds addressable cursor or upli ne capabilityBad term
9、cap entryTermcap entry too longTerminal:Unknown terminal typeBlock device requiredNot a typewriter你的終端類型要么沒有定義,要么terminfo和termcap進(jìn)入方面可能有一些問題。 輸入:q退出。檢查你的$TERM環(huán)境變量,或者告訴你的系統(tǒng)管理員為你的環(huán)境選 擇一個(gè)終端類型。new file信息出現(xiàn)當(dāng)你覺得這個(gè)文件早已存在。檢查一下你在文件名是否用對(duì)了大小寫(unix的文件名是區(qū)分大小寫的)。如果 你沒有錯(cuò),你可能在錯(cuò)誤的目錄下。輸入:q退出。然后檢查文件是否在正確的目 錄下(在unix提示下
10、輸入pwd)o如果你在正確的目錄下,檢查在這目錄下的文 件列表(通過Is )是否有存在文件名相近的名字。你調(diào)用vi,但是你卻得到冒號(hào)提示(顯示你在 ex行編輯模式)。你可能在輸入了什么東西在vi刷屏前。進(jìn)入vi通過輸入vi在ex提示(:)下。如下之一的信息出現(xiàn):Read onlyFile is read onlyPermissi on denied“Read only ”表明你只能查看文件;你不能保存你的修改。你可能調(diào)用了vi的查看模式(按了 view或是vi -R),或者你對(duì)此文件沒有權(quán)限。 看一下在第10頁(yè) 標(biāo)題為“保存文件的問題”的內(nèi)容。如下之一的信息出現(xiàn):Bad file nu mbe
11、rBlock special fileCharacter special fileDirectoryExecutableNon-ascii fileFile non-ASCII你要打開編輯的文件不是一個(gè)正常的文本文件。輸入:q!退出,然后檢查你想編輯的文件,可能有文件命令。當(dāng)你輸入q因?yàn)榍懊嫣岬降娜我焕щy出現(xiàn)時(shí),出現(xiàn)如下信息:No write since last cha nge (:quit! Overrides)你已經(jīng)不小心修改了文件。通過輸入:q!退出vi。你在對(duì)話期間的修改將不會(huì)保存 在文件中。做法正如先前提到的,現(xiàn)在的“模式”的概念是非常重要的對(duì)于vi的工作來說。有兩種模式,命令模式
12、和插入模式,你起始于命令模式,你的任何鍵盤敲擊都將被看做是命令。在插入模式,你輸入的任何東西都將變成你文件中的文本。有時(shí),你可能不小心進(jìn)入插入模式,或是相反的,離開插入模式一不小心。不論 發(fā)生何種情況,你輸入的東西將會(huì)影響你的文件時(shí)是你所不期望。按ESC鍵去強(qiáng)制vi進(jìn)入命令模式。如果你早已進(jìn)入命令模式,vi編輯器會(huì)嘟嘟響 提示當(dāng)你按ESC鍵時(shí)。(因此命令模式此時(shí)有時(shí)又叫做“嘟嘟響模式”)一旦你安全的再命令模式中,你就可以動(dòng)手修復(fù)任何突發(fā)性的變化,然后繼續(xù)編 輯你的文本。保存和退出一個(gè)文件你可以退出編輯文件任何時(shí)候,保存你的編輯,然后退出到unix的提示界面。Vi編輯器的退出并保存的命令是 ZZ
13、。ZZ是大寫的。讓我們假定你創(chuàng)建了一個(gè)文件叫practice來練習(xí)vi命令,你打了六行的內(nèi)容。 為了保存文件,首先檢查你在命令模式通過按ESC鍵,然后按ZZ。按的鍵結(jié)果ZZ結(jié)束編輯和保存命令,ZZ。你的文件被保存為正常的unix文件。Ls你同樣可以用ex命令保存你的編輯。輸入:w保存你的文件但是不會(huì)退出vi ;輸 入:q退出如果你沒有做任何編輯; 輸入:wq同時(shí)保存你的文件和退出。(:wq和 ZZ相等。)我們會(huì)在第5章詳盡解釋如何用ex命令;暫時(shí),你只需要記住一些關(guān) 于編輯和保存的命令。退出并不保存編輯當(dāng)你第一次學(xué)習(xí)vi編輯器,尤其如果你是一個(gè)無(wú)謂的實(shí)驗(yàn)者,有兩個(gè)其它的ex命令可以容易的解除你
14、創(chuàng)造的任何混亂。如果你想清除所有你在對(duì)話框內(nèi)的編輯然后回到原始文件怎么辦?如下命令::e! ENTER你就退回到你上一次保存的文件內(nèi)容,你現(xiàn)在可以重新開始了。如果,你想清除你的編輯內(nèi)容并只是退出vi怎們辦?如下命令::q! ENTER你就退出了編輯而且回到了 unix的提示符。這兩個(gè)命令,你將失去自從你上一次 保存到現(xiàn)在所有你編輯在緩沖區(qū)的東西。Vi 一般不會(huì)讓你知道扔掉了你的編輯。 感嘆號(hào)加到:e和:q命令后面讓vi忽略這個(gè)禁止,繼續(xù)操作即使緩沖區(qū)已經(jīng)被修 改。保存文件的問題你嘗試寫入文件,但是得到如下之一的信息:File existsFile file exists -use w!Exis
15、ting fileFile is read only輸入:w! file覆蓋已存在的文件,或是輸入:w newfile 保存已編輯的文件到新的文件。你想寫入文件,但是你沒有寫入這個(gè)文件的權(quán)限。你得到信息“ Permiss on denied ” 用:w newfile 將緩沖區(qū)的內(nèi)容寫出到新的文件,如果你在這個(gè)目錄下有寫入的權(quán) 限,你可以用mv取代原來版本通過復(fù)制這個(gè)文件。如果你沒有這個(gè)目錄下寫入的 權(quán)限,輸入:w path name/file將緩沖區(qū)的內(nèi)容保存到你有權(quán)限寫入的目錄下去(例如你的主目錄或是/tmp).你嘗試寫入你的文件,但是你得到信息告訴你文件系統(tǒng)已滿。輸入:!rm junkf
16、ile去刪除(很大)沒用的文件釋放一些空間。(通過一個(gè)感嘆號(hào)開始ex命令讓你使用 unix。)或是輸入:!df看一下在其它的文件系統(tǒng)里是否有空間。如果有,在文件系統(tǒng)上選 擇一個(gè)目錄,寫入你的文件到那目錄下:w path name。( df是unix命令檢查一個(gè) 磁盤上的空閑空間。)系統(tǒng)讓你處在打開狀態(tài)然后告訴你文件系統(tǒng)已滿。Vi在磁盤上的臨時(shí)文件已被存滿。輸入:!ls /tmp看一下是否有其它文件你可以移走已得到一些磁盤空間。#如果有,建立一個(gè)臨時(shí)的unix shell以移除文件或 建立其它的unix命令。你可以建立一個(gè)Shell通過輸入:sh ;輸入CTRL-D或exit 終止shell回到
17、vi。(在現(xiàn)在的unix系統(tǒng)上,當(dāng)使用一個(gè)作業(yè)控制 shell ,你可 以簡(jiǎn)單的輸入CTRL-Z暫停vi回到unix提示符;輸入fg回到vi。)一旦你已經(jīng) 釋放一些空間,寫入你的文件用 W。你嘗試寫入你的文件,但是你得到一個(gè)信息說 你的磁盤配額已經(jīng)達(dá)標(biāo)。嘗試強(qiáng)行系統(tǒng)保存你緩沖區(qū)的內(nèi)容通過 ex命令:pre(:preserve 的縮寫)。如果沒 用,找一些文件移除。用:sh(或CTRL-Z如果你正在用作業(yè)控制系統(tǒng))搬離 vi和 移除文件。用CTRL-D(或fg )回到vi當(dāng)你已經(jīng)做完。然后寫入你的文件用:w!。練習(xí)學(xué)習(xí)vi的唯一方法就是練習(xí)。你現(xiàn)在知道了足夠的知識(shí)去創(chuàng)建新的文件和回到 unix提
18、示符。創(chuàng)建一個(gè)文件叫practice,插入一些文本,然后保存并退出文件。打開一個(gè)叫practice 的文件在當(dāng)前目錄下:vi practice插入文本:i am text you like回到命令模式:ESC退出vi,保存編輯:ZZ#你的vi可能 保持它的臨時(shí)文件在/usr/tmp ,/var/tmp或你現(xiàn)在的目錄;你可能 要到處閑逛明確找到是哪里空間用完了。 Vim 般保持它的臨時(shí)文件在你編輯文件 的目錄下。單元簡(jiǎn)單編輯這一章將介紹用vi編輯,本章是用來當(dāng)自學(xué)教程的。本章我們將學(xué)習(xí)如何移動(dòng)光 標(biāo)和如何做一些簡(jiǎn)單的編輯。如果你從沒有用vi工作過,你應(yīng)該閱讀全章。稍后本章將向你展示如何長(zhǎng)進(jìn)你的技
19、術(shù)以更快更好的編輯。對(duì)于精于vi的用戶來說一個(gè)最大的好處就是有很多的選項(xiàng)可供選擇。(對(duì)于新手來說一個(gè)最大的壞處 就是vi有太多的復(fù)雜編輯命令。)你不可能學(xué)習(xí)vi通過學(xué)習(xí)沒一個(gè)vi命令。起步通過學(xué)習(xí)本章介紹的基礎(chǔ)命令。 記錄下常見的命令使用時(shí)的圖像。當(dāng)你學(xué)習(xí)vi,注意讓更多的任務(wù)你是可以交給編輯器的,然后找到命令完成它。 在接下來的一章你會(huì)學(xué)到更多vi高級(jí)的特征,但是在你掌握高級(jí)的之前,你必須 先掌握簡(jiǎn)單的。這一章包括:移動(dòng)光標(biāo)加入和改變文本刪除,移動(dòng),和復(fù)制文本更多的方法進(jìn)入插入模式Vi命令Vi有兩個(gè)模式:命令模式和插入模式。你一進(jìn)入文件,你就進(jìn)入命令模式,編輯 器就一直等你輸入命令。命令能讓
20、你移動(dòng)到文件的任何地方,去編輯,或是進(jìn)入 插入模式和加入新的文本。命令同樣可以被用來退出文件(保存或忽視你的編輯) 以回到unix的提示符。你可以理解為不同的模式代表了兩種不同的鍵盤。在插入模式,你的鍵盤功能相 當(dāng)于一個(gè)打字機(jī)。在命令模式,每一個(gè)鍵有一個(gè)新的意義或初始一些指令。有好幾種方法告訴vi你想進(jìn)入插入模式。最常用的方法之一就是按i。i不會(huì)出現(xiàn)在屏幕上,但是之后你按的無(wú)論你按什么都將會(huì)出現(xiàn)在屏幕上也將會(huì)存入緩沖 區(qū)。光標(biāo)標(biāo)記現(xiàn)在插入點(diǎn)。*想告訴vi你想停止插入文本,按ESC按ESC就移動(dòng) 光標(biāo)回到一個(gè)地方(所以那是你最后輸入的字符)回到 vi的命令模式。例如,假如你已經(jīng)打開一個(gè)新文件想插
21、入單詞“ in troduction 。”如果你輸入了 iin troduct ion,在屏幕上顯示的是in troduct ion當(dāng)你打開一個(gè)新的文件,vi開始于命令模式只要第一個(gè)按(i )就打斷進(jìn)入插入模 式。之后所有的鍵盤輸入都將被認(rèn)為是文本輸入直到你按ESC如果你需要修正一個(gè)錯(cuò)誤然而你卻在插入模式,退格并修正錯(cuò)誤?;谀阍谑褂玫慕K端類型,退格 可能會(huì)清除你先前已經(jīng)輸入的或可能只是回退了。在其它的事情中,所有你回退 的都將被刪除。記住你不能用退格鍵回退到你進(jìn)入插入模式的點(diǎn)的前面。(如果 你已經(jīng)禁用了 vi的兼容性,vim允許你用退格回退到你進(jìn)入到插入模式的點(diǎn)的之 前。)Vi有一個(gè)選擇讓你
22、定義一個(gè)正確的頁(yè)邊白和提供自動(dòng)回車當(dāng)你到達(dá)它的時(shí)候。就 目前,當(dāng)你正在插入文本,按 ENTER換行。有時(shí)你自己不知道是在插入模式還是在命令模式。無(wú)論什么時(shí)候vi不會(huì)回應(yīng)如你所期望的,按ESC 兩次以檢查你在什么模式下。當(dāng)你聽到蜂鳴聲,你就在命令 模式。移動(dòng)光標(biāo)你可能用只用一小會(huì)的時(shí)間在編輯會(huì)話加入新的文本在插入模式;很多時(shí)候你會(huì) 很多時(shí)間編輯以退出文本。在插入模式你可以定位光標(biāo)到文件的任何地方。既然你開始所有基礎(chǔ)編輯(改變, 刪除和復(fù)制文本)通過定位光標(biāo)到你想改變的地方,你想能移動(dòng)光標(biāo)到目的地越 快越好。*一些版本在狀態(tài)行顯示你在(input mode )插入模式有以下vi命令來移動(dòng)光標(biāo):上,
23、下,做和右一一每一次移動(dòng)一個(gè)字母向前或向后一個(gè)文本塊如一個(gè)單詞,一個(gè)句子,一個(gè)段落。向前或向后翻過一個(gè)文件,一屏幕一次。在圖2-1,一個(gè)下劃線表示出現(xiàn)在光標(biāo)的位置。 圈圈顯示了光標(biāo)從它現(xiàn)在的位置移 動(dòng)到通過不同的vi命令到的位置。圖2-1,簡(jiǎn)單的移動(dòng)命令。簡(jiǎn)單的移動(dòng)鍵h, j , k和I,權(quán)利在你指尖,將移動(dòng)光標(biāo) h左,一個(gè)空格j下,一行k上,一行I右,一個(gè)空格 你同樣可以用光標(biāo)箭頭鍵(,用+和-上升和下降,或用ENTER 口 BACKSPACE!它們不常用。一開始,似乎用字母鍵替代箭頭鍵移動(dòng)光標(biāo)有點(diǎn)麻煩。 過了一段時(shí)間,然而,你就會(huì)發(fā)現(xiàn)這將是你最喜歡vi的一點(diǎn)之一一你可以移動(dòng)光 標(biāo)甚至不用將
24、你的手指離開中心鍵盤區(qū)域。在你移動(dòng)光標(biāo)之前,按ESC以確認(rèn)你已經(jīng)在命令模式下。用 h, j , k和I在文件 中從光標(biāo)現(xiàn)在的位置前后的移動(dòng)。當(dāng)你在一個(gè)位置已經(jīng)移動(dòng)到極限時(shí),你會(huì)聽一 記嘟聲然后光標(biāo)停止了。例如,一旦你在一行的開始或者結(jié)尾處,你就不能用h或I回到前一行或下一行;你必須用j或k。+簡(jiǎn)單說來,就是你不能移動(dòng)光標(biāo)超 過代表空行的波浪線(),你也不能移動(dòng)光標(biāo)到第一行文本之上。數(shù)值參數(shù)你可以先于移動(dòng)命令前加入數(shù)字。圖2-2顯示出4l命令如何光標(biāo)向左移動(dòng)四個(gè)字符,就好像你已經(jīng)輸入l四遍了( llll )。圖2-2,和數(shù)字的復(fù)合命令能輸入復(fù)合命令給你更多的選擇和每一個(gè)你學(xué)的命令更強(qiáng)的功能。把這
25、個(gè)記住就 如你被介紹了額外的命令。當(dāng)你保存文件practice時(shí),vi顯示一個(gè)信息告訴你有在那個(gè)文件里有多少行。行不一定如出現(xiàn)在屏幕上的輪廓線一樣有相同長(zhǎng)度 (一般限制在80個(gè)字符)。一行 就是任何文本被插入在新行之間(新的一行將被插入進(jìn)文件當(dāng)你在插入模式中按 ENTE鍵。)如果你在按ENTEF鍵之前輸入了 200個(gè)字符,vi認(rèn)為這200個(gè)字符 就是一行(即使這些200個(gè)字符在屏幕上明顯的被分成了好幾行)。正如我們?cè)诘谝徽轮刑岬降?,vi有一個(gè)選項(xiàng)允許你設(shè)置到右邊白的距離然后 vi會(huì) 自動(dòng)換行。這個(gè)選項(xiàng)是wrapmargin (它的縮寫是wn)。你可以設(shè)置一個(gè) wrapmargin 10個(gè)字符:
26、:set wm=10這個(gè)命令不會(huì)影響你已經(jīng)輸入的行。我們會(huì)談?wù)摳嗟脑O(shè)置選項(xiàng)在第7章。(這個(gè)真的不能等!)如果你不用vi的自動(dòng)wrapmargin選項(xiàng),你應(yīng)該換行用回車鍵以保持可控制的行 的長(zhǎng)度。+vim,有nocompatible (兼容模式)設(shè)置,允許你“跳過空白”行的尾部到下一 個(gè)用I或空格。兩個(gè)在一行中移動(dòng)的有用的命令:0 (數(shù)字零)移動(dòng)到行首。$移動(dòng)到行尾。在如下的例子中,行號(hào)被顯示出來。(行號(hào)可以在vi中被顯示出來通過用數(shù)字選項(xiàng),通過在命令模式下輸入:set nu開啟這個(gè)功能。這個(gè)操作將在第七章介紹。)邏輯上的第(3)行并不符合你在屏幕上所看見的第(5)行。如果光標(biāo)現(xiàn)在在單 詞wo
27、rd的d上,然后你按$,光標(biāo)會(huì)移動(dòng)到這一周期最后的單詞word。如果你輸入0,光標(biāo)會(huì)移回到單詞 move中的m,第2行的開頭。文本塊的移動(dòng)你同樣可以在文本塊間移動(dòng)光標(biāo):?jiǎn)卧~,句子,段落,等等。 w命令光標(biāo)每一次向 前移動(dòng)一個(gè)單詞,計(jì)數(shù)符號(hào)和標(biāo)點(diǎn)符號(hào)相當(dāng)于單詞。如下的一行顯示出用w命令的光標(biāo)的移動(dòng):Cursor,delete, lin es,i nsert characters,你同樣可以移動(dòng)光標(biāo)通過一個(gè)單詞,而不包括計(jì)數(shù)符號(hào)和標(biāo)點(diǎn)符號(hào),用W命令。(你可以把它看做一個(gè)“大的”或“大寫”的Word)光標(biāo)的移動(dòng)用W就是這樣:Cursor,delete, lin es,i nsert characte
28、rs,一個(gè)單詞的向后移動(dòng),就用b命令。大寫的B允許你回移一個(gè)單詞,不包括計(jì)數(shù) 符號(hào)。正如先前所提到的,移動(dòng)命令采取數(shù)值參數(shù);所以,用無(wú)論是 w或b命令以可以 用數(shù)字增加移動(dòng)。2w向前移動(dòng)兩個(gè)單詞;5B向后移動(dòng)5個(gè)單詞,不包括計(jì)數(shù)符號(hào)。為了移動(dòng)到專門的一行,你可以用 G命令。單個(gè)G移動(dòng)到文件末尾,1G到文件的 開頭,還有42G則到第42行。這個(gè)將會(huì)有更多的細(xì)節(jié)描述在接下來的第 43頁(yè)的 一章“ G (GO TO 命令”。圖2-3校對(duì)編輯我們將討論句子和段落的移動(dòng)在第 3章。現(xiàn)在呢,練習(xí)使用你所知道的光標(biāo)移動(dòng) 命令,將它們結(jié)合數(shù)字乘數(shù)。簡(jiǎn)單的編輯當(dāng)你進(jìn)入你文件的文本時(shí),它很少是完美的。你找到打字錯(cuò)
29、誤或是想改進(jìn)短語(yǔ); 有時(shí)你的程序有一個(gè)錯(cuò)誤。一旦你進(jìn)入文本,你就能去改變它,刪除它,移動(dòng)它, 或復(fù)制它。圖2-3顯示出你對(duì)于這個(gè)文件想編輯成的樣子。編輯被校對(duì)符號(hào)標(biāo)示 出來。在vi編輯器中你可以實(shí)現(xiàn)這些編輯通過一些簡(jiǎn)單的基礎(chǔ)的按鍵:i是插入(你早已經(jīng)看到過了); a是附加;c是改變;和d是刪除。要移動(dòng)或復(fù)制文件你用了很多組命令。你移動(dòng)文本用d為了“刪除”,然后用p為了“放置”;你復(fù)制文本用y 為了“移出”,然后p為了“放置”。每一種編輯在本節(jié)中都會(huì)被描述。圖2-4顯示出你所用的vi命令編輯在圖2-3中所做的標(biāo)記。插入新的文本你已經(jīng)看到在插入模式下向文件中輸入新的文本。你同樣可以在插入模式下當(dāng)編
30、 輯存在的文本增加遺失的字母,單詞和句子。在文件practice,如果你有以下句子:You can scrollThe page, move the cursor,deleteLin e,a nd in sert characters.圖2-4用vi命令編輯正如光標(biāo)標(biāo)示出來的位置。要插入 With a screen editor在句子的開頭,輸入如下:按鍵結(jié)果2k用k命令移動(dòng)光標(biāo)向上兩個(gè),移動(dòng)到你想要插入的地方iwith a按i進(jìn)入插入模式開始編輯文本屏幕編輯器ESC完成編輯文本,按ESC結(jié)束插入模式回到命令模式附加文本你可以附加文本在你文件的任何地方只要用附加命令,a。這個(gè)工作幾乎和i是一個(gè)
31、樣的,除了文本被插入在光標(biāo)后而不是光標(biāo)前。你可能已經(jīng)意識(shí)到當(dāng)你按i進(jìn)入插入模式,光標(biāo)不會(huì)移動(dòng)直到你輸入了一些文本之后。相反,當(dāng)你按a進(jìn)入插入模式,光標(biāo)向右移動(dòng)一個(gè)空格。當(dāng)你輸入文本,它出現(xiàn)原始光標(biāo)位置的后面。改變文本你可以替換你文件中的任何文本用修改命令, C。要告訴C多少文本要修改,你可 以符合C和移動(dòng)命令。這種方式,一個(gè)移動(dòng)命令充當(dāng)成文本對(duì)象讓 C命令去影響。 例如,C可以被用來從光標(biāo)改變文本:cw到單詞的末尾c2b回到前兩個(gè)單詞c$到行的末尾cO到行的開頭發(fā)表一個(gè)修改命令之后,你可以用選中的文本替換任何多的新文本,一個(gè)字母沒 有,一個(gè)字母,或成百上千行也行。C,就像i和a 一樣,讓你進(jìn)入
32、插入模式直到 你按ESC鍵。當(dāng)修改只在本行起效時(shí),vi在文本的末尾用$標(biāo)記要被修改的東東,所以你可以看 到行的什么部分被影響。(再看 cw的例子。)單詞去修改一個(gè)單詞,結(jié)合c命令(修改)與w對(duì)付單詞。你可以用一個(gè)長(zhǎng)一點(diǎn)的或 短一點(diǎn)的單詞(或任何文本)替換一個(gè)單詞(cw)。cw可以被認(rèn)為是“標(biāo)示刪除 單詞和插入新的文本直到ESC被按?!奔偃缒阌腥缦乱恍形谋驹谀愕奈募?practice中:With an editor you can scroll the page,你想修改an成a screen。你只需要修改一個(gè)單詞:按鍵結(jié)果w用w移動(dòng)到你想開始編輯的地方cw敲修改單詞的命令。文本的末尾將會(huì)被標(biāo)示
33、一個(gè)$ (英鎊符號(hào))A scree n輸入替換的文本,然后按 ESC回到命令模式。cw同樣可以用在一個(gè)單詞的部分上,例如, 要修改spelling 到spelled,你可以 定位光標(biāo)到i,輸入cw,然后輸入ed,用ESC完成操作。一般vi命令的組成在修改命令我們也提到到這一點(diǎn),你可能已經(jīng)注意到如下形式:(命令)(文本對(duì)象)命令就是修改命令c,文本對(duì)象就是移動(dòng)命令(你不需要輸入括號(hào))。但是 c不是 唯一一個(gè)需要文本對(duì)象的命令。d命令(刪除)和y命令(拷貝)如同這樣的形式 一樣。記住移動(dòng)命令同樣可以采取數(shù)值參數(shù),所以數(shù)字可以被加到文本對(duì)象的c,d和y命令。例如,d2w和2dw是刪除兩個(gè)單詞的命令。
34、按照這種思路,你可以看到很多 vi命令有如下一般形式:(命令)(數(shù)字)(文本對(duì)象)或者等價(jià)的形式:(數(shù)字)(命令)(文本對(duì)象)這就是如何工作的。數(shù)字和命令是可選擇的。沒有它們,你只簡(jiǎn)單的有移動(dòng)命令。 如果你加入一個(gè)數(shù)字,你有一個(gè)復(fù)合移動(dòng)。在另一個(gè)方面,復(fù)合一個(gè)命令(c,d或y )與一個(gè)文本對(duì)象組成一個(gè)編輯命令。當(dāng)你意識(shí)到有多少?gòu)?fù)合體以這樣一種方式出現(xiàn),vi就確實(shí)變成了一個(gè)強(qiáng)大的編輯器!行要替換當(dāng)前整個(gè)一行,用到特殊修改命令,cc。Cc修改整個(gè)一行,用輸入無(wú)論多 少的文本替換這一行直到輸入 ESC它不關(guān)注光標(biāo)在這一行的哪里;cc替換整個(gè) 一行的文本。一個(gè)命令像cw工作與cc這樣的命令是不同的。在
35、使用 cw,原來的文本保持直到 你輸入替換它,任何原來的遺留下來的文本(到 $)消失當(dāng)你按ESC在使用cc, 然而,原來文本先被刪除,讓你在空行插入文本。“覆蓋”發(fā)生時(shí)的任何修改命令只會(huì)影響少于一整行,但是“空行”發(fā)生時(shí)的任 何修改命令會(huì)影響到一或更多行。C替換字母從當(dāng)前光標(biāo)的位置到行末。它有相同的功能如復(fù)合c與特殊行末標(biāo)志$( c$)。命令cc和C對(duì)于其他命令來說是真的很簡(jiǎn)潔,所以它們和其它vi命令的一般形式是不一樣的。你會(huì)看到其它快捷鍵當(dāng)我們討論刪除和拷貝命令的時(shí)候。字符一個(gè)其它的替換編輯就是r命令。r以一個(gè)字符替換另一個(gè)字符。你不用按ESC鍵 退回到命令模式當(dāng)編輯完之后。如下這行中有一個(gè)
36、拼寫錯(cuò)誤:Pith a scree n editor you can scroll the page,只有一個(gè)字母需要改正。你不希望用 cw在這個(gè)例子中因?yàn)槟菢拥脑捘憔托枰卮蛘麄€(gè)單詞。用r替換光標(biāo)所在的一個(gè)字母:按鍵結(jié)果rW輸入替換命令r,接著輸入要替換的字母 W替換文本假如你想修改只是一些字母,不是整個(gè)單詞。替換命令(s),它本身,替換一個(gè)字 母。與前面的計(jì)數(shù),你可以替換許多字符。正如修改命令( c),文本的最后一個(gè) 字符將會(huì)被標(biāo)記上一個(gè)$所以你可以看到多少文本將被修改。S命令,通常情況下是大寫的,讓你修改整個(gè)一行。相對(duì)比 C命令,修改從當(dāng)前光 標(biāo)開始行剩余的部分,S命令刪除整個(gè)一行,無(wú)論
37、光標(biāo)在哪。 Vi讓你在行首進(jìn)插 入模式。前面的計(jì)數(shù)替換許多行。S和s命令都讓你進(jìn)入插入模式;當(dāng)你結(jié)束輸入新的文本,按 ESCR命令,就像他的小寫的副本,替換文本。不同的是 R簡(jiǎn)單的進(jìn)入重?fù)裟J?。你?入的字母替換了屏幕上顯示的,字母替換字母,直到你輸入 ESC你可以一行最多 一個(gè);當(dāng)你輸入ENTER vi將開新的一行,高效的讓你進(jìn)入插入模式。修改大小寫修改字母的大小寫是一項(xiàng)特殊的替換工作。波浪()命令會(huì)修改一個(gè)小寫字母成 一個(gè)大寫字母或一個(gè)大寫字母成小寫。定位你的光標(biāo)到你想改變大小的字母下, 然后輸入一個(gè)。這個(gè)字母的大小寫將會(huì)修改。光標(biāo)將會(huì)移動(dòng)到下一個(gè)字母。在老的vi版本中,你不能指定一個(gè)數(shù)字
38、前綴或文本對(duì)象用去起作用?,F(xiàn)在的版本允許數(shù)字前綴。如果你想同時(shí)修改多于一行的大小寫,你必須篩選文本通過unix命令如tr,將在第7單元描述。刪除文本你同樣可以刪除你文件中任何文本用刪除命令, d。想修改命令,刪除命令要求一 個(gè)文本對(duì)象(一部分要修改的文本)。你可以刪除單詞(dw),行(dd或D), 或用其它移動(dòng)命令我們以后會(huì)學(xué)到。所有這些刪除,你要移動(dòng)到你想開始編輯的地方,給出用刪除命令( d)和文本對(duì) 象,如w代表單詞。單詞假如你有如下的文本段:Scree n editors are are very popular,Since they allowed you to makeChange
39、as you read though file.光標(biāo)正如顯示的。你想刪除在第一行的一個(gè)are :按鍵結(jié)果2w移動(dòng)光標(biāo)到你想開始編輯的地方(are)dw給出刪除單詞命令(dw)去刪除單詞aredw刪除光標(biāo)標(biāo)記開頭的這個(gè)單詞。注意單詞后面的空格也被刪除了。dw同樣可以被用來刪除單詞的一部分。在這個(gè)例子中:Since they allowed you to make你想刪除allowed結(jié)尾的ed。按鍵結(jié)果dw給出刪除命令(dw)去刪除單詞,開始于光標(biāo)所在的位置。dw直刪除在這一行中下一個(gè)單詞前的空格, 但是我們不想這么干在這個(gè)例子中。 要保留單詞間的空格,用de,只刪除一個(gè)單詞的末尾。輸入 dE刪
40、除單詞的末尾, 包括 標(biāo)點(diǎn)符號(hào)。你同樣可以刪除反向(db)或到一行的開頭或結(jié)尾(4$或dO)行dd命令刪除光標(biāo)所在的整個(gè)行。dd不會(huì)刪除行的一部分。像它的補(bǔ)充,cc,dd是 一個(gè)特殊的命令。使用在前面的例子中相同的文本,正如所示的光標(biāo)所在的第一 行的位置:Scree n editors are are very popular,Since they allowed you to makeChange as you read though file.你可以刪除前兩行:按鍵結(jié)果2dd給出命令刪除前兩行(2dd)。注意即使光標(biāo)沒有定位在行的開頭,整個(gè)一行還是被刪除D命令刪除從光標(biāo)開始到行末。(D是d
41、$的縮寫。)例如,與光標(biāo)定位所示:Scree n editors are are very popular,Since they allowed you to makeChange as you read though file.你可以刪除行的一部分即從光標(biāo)往右的部分。按鍵結(jié)果D給出命令刪除行的一部分即光標(biāo)的右邊(D)。字符通常你只想刪除一個(gè)或兩個(gè)字符。正如r是一個(gè)特殊的修改命令去替換一個(gè)字符, x是一個(gè)特殊的刪除命令去刪除一個(gè)字符。x只刪除光標(biāo)所在的字符。如行所示:zYour can move text by delet ing text and them你可以刪除字母z通過按x。?一個(gè)大寫
42、的X刪除光標(biāo)之前的字符。前綴在前面任 一命令加上一個(gè)數(shù)字就是刪除字符的個(gè)數(shù)。例如: 5x會(huì)刪除光標(biāo)下和右邊的五個(gè) 字符。刪除出現(xiàn)的問題你已經(jīng)刪除錯(cuò)文本你想恢復(fù)到原來。有好幾種方法恢復(fù)已刪除的文本。如果你剛剛刪除什么東西然后你意識(shí)到你想恢復(fù),只要簡(jiǎn)單的輸入u取消上一次操作即可(例如,一個(gè)dd)。這個(gè)只對(duì)你還沒有 給出其它進(jìn)一步操作時(shí)有效,因?yàn)?u只能取消最近一次操作?;蛘?,一個(gè) U會(huì)還 原行道它原始的狀態(tài),這個(gè)方法不管前面做過任何次修改都可以使用。你可以還是回復(fù)最近一次刪除,然而,用命令p,由于vi保存最近九次刪除到九個(gè)刪除緩存區(qū)。如果你知道,例如,第三次刪除時(shí)你想恢復(fù)的,輸入:“3p”去把緩存
43、區(qū)的數(shù)字為3的內(nèi)容放到行光標(biāo)下。這只對(duì)一個(gè)已經(jīng)刪除的行有效。單詞,或行的一部分,不被保存進(jìn)緩存區(qū)。如果你想恢復(fù)一個(gè)已經(jīng)刪除的單詞或行的碎片,u就沒用了,用p命令自身。這恢復(fù)任 何你已經(jīng)刪除的。在后來的分段中將討論更多關(guān)于命令u和p。注意vim支持“無(wú)限”取消,使得生活方式更加簡(jiǎn)便。看一下在296頁(yè)的“撤銷取消”一章以獲得更多信息。?x的記憶一般認(rèn)為像“ x光透射”打字機(jī)的錯(cuò)誤。當(dāng)然,誰(shuí)還在用打字機(jī)呢?移動(dòng)文本 在vi,你移動(dòng)文本通過刪除它然后把它移動(dòng)已刪除的文本到文件中的任何地方, 像一個(gè)“剪切和粘貼”每一次你刪除一個(gè)文本塊,刪除的東西一般暫時(shí)保存在特 殊的緩存區(qū)。移動(dòng)到你的文件中的其它地方用
44、放置命令 (p)把文本放到新的地方。 你可以移動(dòng)任何文本塊,盡管移動(dòng)行比移動(dòng)單詞要有用。放置命令(P)把緩存區(qū)的文本放在光標(biāo)后的地方。大寫版本的命令, P,把文本 放在文本之前。如果你刪除一個(gè)或更多的行,p把刪除的文本放到新的一行光標(biāo)之 下。如果你刪除少于一整行,p把已經(jīng)刪除的文本插入當(dāng)前行,在光標(biāo)之后。假如在你的文件practice中有以下文本:You can move text by deleting it and thenLike a cut and pastePlac ing the deleted text elsewhere in the file.Each time you de
45、lete a text block你想移動(dòng)第二行,like acut and paste,到第三行下。使用刪除,你可以做以下編輯:按鍵結(jié)果dd光標(biāo)在第二行,刪除這一行。文本被放進(jìn)了緩存區(qū)(保留記憶)p給出粘貼命令,p,恢復(fù)已經(jīng)刪除的行到光標(biāo)下。結(jié)束這個(gè)句子的記錄,你可能同樣需要修改開頭的大小寫和標(biāo)點(diǎn)符 號(hào)(用r)以適應(yīng)新的結(jié)構(gòu)。一旦你刪除文本,你必須恢復(fù)它在下一次修改命令和刪除命令之前。如果你做了 其它的編輯影響了緩存區(qū),你已刪除的文本將徹底消失。你可以重復(fù)粘貼一遍又 一遍,只要你不做新的編輯。在第四單元,你會(huì)學(xué)到如何保存刪除的文本進(jìn)編號(hào) 的緩存區(qū)所以你可以恢復(fù)以后。交換兩個(gè)字母你可以用xp
46、(刪除字符和粘貼在光標(biāo)之后) 交換兩個(gè)字母。例如:在單詞mvoe中, 字母vo被顛倒了。為了更正顛倒,把光標(biāo)放在 v上然后按x,再按p。碰巧,單 詞transpose 幫你記住 xp的順序;x代表trans, p代表 pose。沒有命令交換兩個(gè)單詞。在單元“更多的映射鍵例子”107頁(yè)中我們將討論一個(gè)簡(jiǎn)短的命令序列可以交換兩個(gè)單詞。復(fù)制文本一般你可以保存編輯時(shí)間(和按鍵)通過復(fù)制你的文件的一部分用到其他地方。 用兩個(gè)命令y (拷貝)和p (粘貼),你可以復(fù)制任何大小的文本然后粘貼被拷貝 的文本到文件的其它地方,一個(gè)拷貝命令拷貝被選中的文本到一個(gè)特殊的緩存區(qū), 它將一直被保存到下一個(gè)拷貝(或刪除)
47、發(fā)生。你可以然后放置這些復(fù)制的東西 在文件中的任何地方用粘貼命令。正如用修改和刪除,拷貝命令可以被用來與任何移動(dòng)命令聯(lián)合(yw,y$,4yy )??截惷钭铑l繁的用于一行(或更多)的文本,因?yàn)榭截惡驼迟N一個(gè)單詞通常比簡(jiǎn) 單的輸入一個(gè)單詞要花更長(zhǎng)的時(shí)間。快捷鍵yy作用于一整行,就像dd和cc干的那樣。但是快捷鍵丫,由于某種原因 操作的方式和D還有C不一樣。不是從當(dāng)前位置復(fù)制到行末,而是 丫拷貝一整行; 這是丫和yy干著相同的事情。假如你的practice文件中有如下的文本:With a scree n editor you canScroll the pageMove the cursorDel
48、ete lines你想操作三個(gè)完整的句子,開始于 With a screen editor you can。不移動(dòng)文件,作出此編輯一遍又一遍,你可以用一個(gè)拷貝命令和粘貼命令去復(fù)制要被增加的文 本。按鍵結(jié)果yy拷貝的行拷貝你想拷貝進(jìn)緩存區(qū)的行文本。光標(biāo)可以放到你想的任何地方(或一系列行的第一行)2j移動(dòng)光標(biāo)到你想粘貼被拷貝的文本的地方p jp粘貼被拷貝的文本到光標(biāo)下的一行用命令P。先移動(dòng)光標(biāo)到下一行然后粘貼文本到光標(biāo)下用命令p拷貝與刪除用相同的緩存區(qū)。每一個(gè)新的刪除和粘貼覆蓋前一個(gè)拷貝的緩存區(qū)的 內(nèi)容。正如我們將在第一單元看見,前九個(gè)粘貼或刪除可以被再調(diào)用粘貼命令。你同樣可以拷貝和刪除直接進(jìn)入
49、26個(gè)命名的緩存區(qū),允許你第一時(shí)間修改各樣的 文件塊。重復(fù)和撤消你的最后一個(gè)命令每一個(gè)你給出的編輯命令都被存放在一個(gè)臨時(shí)的緩存區(qū)直到你給出下一個(gè)命令。 例如,如果在一個(gè)單詞后你輸入the在你的文件中,命令被用來插入文本,隨著 你進(jìn)入的文本,被暫時(shí)的保存起來。重復(fù)每一次你做相同編輯一遍又一遍,你可以保存次數(shù)通過復(fù)制它用重復(fù)命令,點(diǎn)()。 定位你的光標(biāo)到你想重復(fù)編輯命令的地方,輸入點(diǎn)號(hào)。假如你的文件有如下幾行:With a scree n editor you canScroll the pageWith a scree n editor you canMove the cursor你可以刪除一行
50、,然后,刪除另外一行,簡(jiǎn)單的輸入一個(gè)點(diǎn)號(hào)。按鍵結(jié)果dd刪除一行用命令dd。重復(fù)刪除。老一點(diǎn)的vi版本在重復(fù)命令有問題。例如,如此的版本可能有困難重復(fù)一個(gè)長(zhǎng)的 插入當(dāng)右邊距被設(shè)定好時(shí)。如果你有如此的一個(gè)版本,這個(gè)漏洞將會(huì)遲早傷你。事后對(duì)于這個(gè)沒有什么你是可以做的,但是它會(huì)幫助你事先通知。(現(xiàn)在的版本 似乎沒有這個(gè)問題。)有兩種方法你可以用來防止?jié)撛诘膯栴}當(dāng)重復(fù)長(zhǎng)的插入文 本。你可以寫入你的文件(:w)在重復(fù)長(zhǎng)的插入文本之前。(回到這個(gè)的拷貝如 果插入文本工作不正確)。你可以取消右邊距的設(shè)置像這樣::set wm=0在后面的單元“更多的映射鍵例子”在第107頁(yè),我們將展示你一個(gè)簡(jiǎn)單的方法使用右邊距
51、。在一些vi版本中,命令CTRL-復(fù)最近的插入文本。CTRL-(被輸入 進(jìn)在插入模式然后回到命令模式。取消正如早些提到的,你可以取消最近的命令如果你做錯(cuò)了。簡(jiǎn)單的按u。光標(biāo)需要放到原來編輯發(fā)生的行。要繼續(xù)先前的例子,展示刪除行在文件 practice中:按鍵結(jié)果uu取消了最近一次命令恢復(fù)了被刪除的行U, u的大寫,取消在但單一行上的所有編輯,只要光標(biāo)保持在那一行。一旦你離 開那一行,你就不能用U。注意你可以用u取消你的最近一次取消,切換兩種文字版本。u同樣可以取消U,U會(huì)取消一行中任何修改,包括那些用 u的工作。一個(gè)技巧:事實(shí)上u可以取消它自己使得一個(gè)極好的方法去在文件中隨意走動(dòng)。如果你曾想回
52、到你上一次編輯的地方去簡(jiǎn)單的取消它。你會(huì)彈回上一次的一行。 當(dāng)你取消取消時(shí),你就會(huì)待在那一行。Vim讓你用CTRL-R去“重干” 一個(gè)取消操作。配合無(wú)限的取消,你可以向后移 和向前移通過修改你的文件的歷史??匆幌聠卧叭∠∠痹诘?96頁(yè)以獲得更多信息。更多的方法插入文本你已經(jīng)在光標(biāo)前輸入以下文字序列:itext to be in serted ESC你同樣已經(jīng)在光標(biāo)后插入文本用 a命令。這里有一些其它的插入命令可以插入文 本在光標(biāo)周圍不同的位置:A附加文本到當(dāng)前行的末尾I插入文本在行的開頭o (小寫的字母o)打開光標(biāo)下的空行以輸入文本0(大寫的字母O打開光標(biāo)上的空行以輸入文本S刪除光標(biāo)當(dāng)前
53、字母然后用新的文本替代S刪除一行以新的文本代替R重?fù)舸嬖诘淖址孕碌淖址鎿Q所有這些命令都將讓你進(jìn)入插入模式。插入文本之后,記住要按ESC回到命令模式。A (附加)和I (插入)挽救你免于在調(diào)用插入模式之前不得不移動(dòng)你的光標(biāo)到行 的末尾或行的開頭。(A命令讓你免于按$a兩個(gè)鍵。盡管一個(gè)按鍵看起來沒有節(jié) 省多少,但越熟練越不耐煩一個(gè)編輯器你變成,你就想節(jié)省更多的按鍵)。o和0(開)使你節(jié)省不用不得不插入一個(gè)回車。你可以輸入這些命令在一行中的 任何地方。s和S (替代)允許你刪除一個(gè)字符或一整行然后替換刪除的東西以任何新的文本。s相當(dāng)于兩個(gè)鍵的命令c SPACE S相當(dāng)于命令cc。s最佳的用法之一
54、就是用很多 字符修改一個(gè)字符。R (“大”替換)是很有用的當(dāng)你想開始修改文本,但是你不知道究竟多少。例如, 不用再猜測(cè)到底是3cw還是4cw,只要輸入R然后輸入你想替換的文本。插入模式的數(shù)字參數(shù)除了 o和0,插入命令只列出了(加上i和a)加上數(shù)字前綴。和數(shù)字前綴,你可 能要用i,I,a和A去插入一排下劃線或交替字符。例如,輸入 50i*ESC插入50 個(gè)星號(hào),輸入25a*-ESC附加50個(gè)字符(25對(duì)星號(hào)和連字符)。這是比較好的一 種重復(fù)一串單一字符的辦法。和一個(gè)數(shù)字前綴,r替換字符數(shù)目和一個(gè)單個(gè)字符重復(fù)實(shí)例。例如,在c和C+代碼中,要修改|成&你要移動(dòng)光標(biāo)到第一個(gè)管符號(hào)(| )然后輸入2r&。你可以用一個(gè)數(shù)字前綴和S去替代好幾行。這更快和更加靈活,然而,去用c和一個(gè)移動(dòng)命令。一個(gè)用s和數(shù)字前綴好的實(shí)例就是當(dāng)你想修改一些字符在單詞中間時(shí)。輸入r是不正確的,輸入CW會(huì)修改太多的文本。使用s和數(shù)字前綴通常和輸入R一樣。有一些其它的命令組合一般工作在一起。例如,ea是有用的對(duì)于附加新文本到一個(gè)單詞后。它幫助你訓(xùn)練自己認(rèn)識(shí)到這些有用的組合所以他們會(huì)變得自動(dòng)的。連接兩行用J有時(shí)當(dāng)編輯一個(gè)文件你非正常結(jié)束留下一系列短行非常難看。當(dāng)你想合并兩行成一行,把光標(biāo)移動(dòng)到第一行的任何地方,然后按J合并兩行。假如你的文件practice如下:With aScree n editorYo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 假期打工心得體會(huì)
- 中秋節(jié)主持人活動(dòng)主持詞(10篇)
- 探究植物細(xì)胞吸水與失水的教學(xué)設(shè)計(jì)
- 探究公眾對(duì)無(wú)償獻(xiàn)血的認(rèn)知及宣傳對(duì)策研究
- 寫給生命課件教學(xué)課件
- 影響藥物作用的因素
- 銀行業(yè)印鑒核驗(yàn)系統(tǒng)技術(shù)規(guī)范 編制說明
- 課文金子課件教學(xué)課件
- 四年級(jí)數(shù)學(xué)(四則混合運(yùn)算帶括號(hào))計(jì)算題專項(xiàng)練習(xí)與答案
- 購(gòu)買運(yùn)輸公司二手貨車協(xié)議書(2篇)
- 《教育均衡發(fā)展》課件
- 《門店選址策略》課件
- 私立民辦初中學(xué)校項(xiàng)目運(yùn)營(yíng)方案
- 試卷印制服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 1+X數(shù)字營(yíng)銷技術(shù)應(yīng)用題庫(kù)
- 俄羅斯禮儀完
- 小學(xué)六年級(jí)語(yǔ)文(小升初)修改病句專項(xiàng)練習(xí)題(含答案)
- 人教版六年級(jí)音樂上冊(cè)全冊(cè)教案
- 辦稅服務(wù)外包投標(biāo)方案(技術(shù)標(biāo))
- 冷庫(kù)是有限空間應(yīng)急預(yù)案
- 學(xué)校安全隱患排查整治表
評(píng)論
0/150
提交評(píng)論