課件中文手冊_第1頁
課件中文手冊_第2頁
課件中文手冊_第3頁
課件中文手冊_第4頁
課件中文手冊_第5頁
已閱讀5頁,還剩415頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

前譯者前不要試圖從本手冊中去獲取什么知識,使用Vim的是一種技能而不是一種知識,Vim的學(xué)習(xí)需要的的不是頭腦而是雙手,經(jīng)常按書中的指示進(jìn)行示例性的操作,在學(xué)習(xí)Vim眾多精致的技巧時,不要一下索該使用哪一條操作技巧.建議讀者不動手來不讀書.如果手邊沒有一個合適的Vim編輯器環(huán)境可供操練,那么建議讀者還是不要在這里浪費(fèi)時如果讀者是在氣溫比較低的條件下閱讀此書從而增加了你動手的惰性時,也請不要浪費(fèi)時間,這會嚴(yán)重影響學(xué)習(xí)的效果.雖然本書鼓勵讀者多動手,但也絕非說一點不要動腦,相反,Vim中多達(dá)幾百個名與操作方式有它自己的規(guī)律可循,在你的手指能對要完成的編輯任務(wù)條件反射之前,最好還是由頭腦做一點輔助.經(jīng)??偨Y(jié)自己最經(jīng)常進(jìn)行的操作.為這些操作找出最簡練的辦法來,在每學(xué)條新的操作之前與自己以前的編輯經(jīng)驗比較一下,找出節(jié)省你敲擊鍵盤次數(shù)的捷徑來.是提升Vim經(jīng)驗值的不二.其實,Vim與其它編輯器一個很大的區(qū)別在于,它可以完成復(fù)雜的編的靈活性的代價一樣,你需要用自己的雙手來實現(xiàn)它.這在事實上造成一開始是notepad,ord,dit你的大腦,這些東西根深蒂固,揮之不去.m的使用對你而言是一場噩夢,它降低而不是提高了你的工作效率.對三種工作模式的不解甚至使你認(rèn)為它是一個充滿BUG或者至少是一個古怪的與友好用戶界面設(shè)計嚴(yán)重脫節(jié)的軟件.事實上,這些起初看起來古怪的特性是Vim(或者是vi)的作者和它的用戶們在自己漫長的文字編輯和程序設(shè)計生涯中總結(jié)出來的最快速最實在的操作,在幾乎等于計算機(jī)本身歷史的成長期中,歷經(jīng)無數(shù)嚴(yán)厲苛刻的計算機(jī)用戶的批評與檢驗,無用的特性或糟糕的設(shè)計在Vim用戶群面前根本就沒有生存的余地.im細(xì)心而謹(jǐn)慎的作者們也不允許自己精心設(shè)計的軟件里有這樣的東西.第二個階段你開始熟悉一些基本的操作,這些操作足以應(yīng)付你日常的工作,你使用這些操作時根本就不假思索.但這些階段你仍然很少去碰Vim那晦澀的文檔.它在你心里只是notepad,edit一個勉強(qiáng)第三個階段,精益求精的你不滿足于無休無止的簡單操作,冗長而乏味,有沒有更好的辦法可以馭繁于簡? 于是,從UNIX參考手冊上,從同事口中,你漸漸叩開:helpxxx的大門.開始探索里面充滿魔力的語.從雜耍般的帶有表演性質(zhì)的技巧開始,這些技巧令人眩目但少有實用性 不過這卻是你擁有魔力的第一步.接下來,你開始認(rèn)識到這語背后的真經(jīng),開始偷偷修改一些奇怪的符號,于是, 產(chǎn)生了,魔力不但仍然有效,而且 作用于你現(xiàn)實中的文字編輯生活. 2 關(guān)于0.2關(guān)于0.20.2版與0.1版有如下改動段首的縮進(jìn)改為2個漢字的寬度,看起來更舒服一些(或更不舒服一些修改了書簽在Acrobat中顯示出現(xiàn)亂碼的問題.該問題在AcrobatReader的第3章第4小節(jié)的此時使用 令應(yīng)為感謝錢震(qzhnfotog)提供修改建議和關(guān)于gbk2unix信息感謝CTex的所有制作人員和 的熱心網(wǎng)友們4 關(guān)于6.3.0關(guān)于6.3.0為什么一下跳到6.3.0了我得到的VIM是6.3,它的文檔與我最初翻譯所基于的6.1有少許不同.這使我萌生了將文檔更新至版本的想法.那么,為何不讓中文6.3.0與0.2版相比有如下改動0.1版與0.2版居然都缺了usr21.txt,usr22.txt,usr29.txt,usr45.txt這4個文件,這4個文件與其它文件是一并翻譯完畢的,打包處理時竟漏掉了將文檔中所有出現(xiàn)的示例性的代碼,s 命令,屏顯樣例,都重新格式化,如下::auBufRead:auBufRead*.tipsetf看起來更醒目一些我把示例性的代碼分為7類.一類是上面顯示的這種,Vim中 行模式,標(biāo)題是excommand,另外6種分別是:normalmodeVim的normal模式命令,特點是沒有冒號打頭.normalmode 命令,也可能是windowsOS的DOS 令.如: command envLANG=de_DE.ISO_8859-1 對應(yīng)于一個命令執(zhí)行完之后的屏幕顯示結(jié)果,或操作的某種中間狀 5 關(guān)于6.3.0 Dis :!make|&tee/tmp/vim215953.errgcc-g-Wall-oprogmain.csub.cmain.c:Infunction'main':main.c:6:toomanyargumentstofunction'do_sub'main.c:Attoplevel:main.c:10:parseerrorbefore'}'make:***[prog]Error1 "main.c"11L,(3of6):toomanyargumentstofunction'do_sub'HitENTERortypecommandtocontinue顯示的是一系列列表值,如

code,如url如把混雜在漢字中的英文的默認(rèn)字體改成了cmtt,即computermoderntypewriter,個人品味,比cmr(computermodernroman)好看.除了個別的情況,如顯示Latex系統(tǒng)中的標(biāo)志性建筑X時用的還是cmr,如果用cmtt就會是這樣 X 中間那個A顯得很縮文檔內(nèi)也加了超級,但只限于這份中文用戶手冊內(nèi)部,如果指向參數(shù)手冊的文檔,則沒有超級,目前這份中文文檔只限于用戶手另外指向外部的URL也能打開你的默認(rèn)瀏覽器了.指向地址的也6 關(guān)于6.3.0而顯示為最樸素的"...",同樣,以前顯示為’的字符,在該版本中 o\hi, 對一些原文檔中特殊顯示的元素以同樣的風(fēng)格高亮起來 如CTRL-修改了一些BUG,對不那么順暢的詞句重新修遣一番.對原來譯文中留下的一些不甚了了的技術(shù)問題仔細(xì)對照文檔,試驗,修改,添加了背景色,F不比HTML,你打開HTML源文件加一個bgolor就可以改改背景色這是個小問題,但是中顯示漢字有一個筆畫太淡的問題這在各種F制作或Tex相關(guān)的上也是一個熱門話題.看起來對比度不夠.現(xiàn)在的這個背景能讓漢字顯得更清晰一些另外.本文檔擬提供一個內(nèi)嵌字體的伴生版.其中的字體不是宋體,是文鼎公司貢獻(xiàn)給自由軟件社區(qū)的L簡報宋(ublccene,不是iaoLiang這個字體比起windows自帶的宋體字著墨要濃一些.當(dāng)然這也導(dǎo)致文件會比較大.似乎每解決一個問題,都會引起新的問題.比如,好不容易找到了一些叫upquote的LATEXpackage,也能把原來的’變成現(xiàn)在的'了.可是卻發(fā)現(xiàn)普通文字中的這個符號與示例代碼中的顯示不一樣,后者顯示出來的更粗壯一些.通過fancyvrb把示例代碼弄得更好看一些了,可是卻發(fā)現(xiàn)那個圈起來的框框有時候罩不住里面的文字---里面的文字太長了.這些雖是小問題終究讓人不爽我不是LATEX專家這些雞毛蒜皮的事可TMD費(fèi)功夫了,雖然現(xiàn)在這個樣子我還不是很滿意,但總得把它鎖定到一個狀態(tài).7 第00*usr Vim6.3版.最后修改 年 VIM用戶手冊---作者 Bram翻譯:*user-概|usr01.txt|關(guān)于本手冊|usr02.txt|Vim|usr03.txt||usr04.txt||usr05.txt|定制你的|usr06.txt|使用語|usr07.txt|編輯多|usr08.txt||usr09.txt|使用|usr10.txt||usr 恢|usr12.txt|奇技巧|usr20.txt|加速冒|usr21.txt||usr22.txt|查找要編輯的|usr23.txt|非文本文件|usr24.txt||usr25.txt|編輯格式化|usr26.txt|重復(fù)重復(fù),|usr27.txt|搜索命令和|usr28.txt|8 第00|usr29.txt||usr30.txt|程序的編輯|usr31.txt|探索打造|usr40.txt|定義新命令|usr41.txt||usr42.txt|增加新菜單|usr43.txt||usr44.txt|自定義語 文|usr45.txt|運(yùn)轉(zhuǎn)|usr90.txt|安裝可以在下面的地址中找到以單個文件組織的可打印版的HTML或PDF格式用戶手冊:起請從頭至尾細(xì)讀本章,本章講述Vim的基本命令|usr01.txt|關(guān)于本手冊|01.1|兩套|01.2|關(guān)于|01.3|使用|usr02.txt|Vim|02.1|首次運(yùn)行|02.2|插入9 第00|02.3|移動|02.4|刪除|02.5||02.6|其它編輯|02.7|退|02.8|求|usr03.txt||03.1|以Word|03.2|將光標(biāo)移到行首 |03.6|告訴你當(dāng)|03.7|滾|03.8||03.9|簡單的模|03.10|使用|usr04.txt||04.1|操作符命|04.2|改變|04.3|重復(fù)|04.4|Visual|04.5|移動 文|04.7||04.8|文本|04.9|替換|04.10|結(jié)|usr05.txt|定制你的|05.1|vimrc|05.2|vimrc|05.3||05.4|增加一個|05.5|增加一個|05.6|選項設(shè)置|05.7|常用 第00|usr06.txt|使用語|06.1|打開|06.2|沒有色彩或色彩錯誤|06.3||06.4||06.5|彩色|06.6|進(jìn)一步的|usr07.txt|編輯多|07.1|編輯另一|07.2|文件|07.3|切換到另|07.4|備|07.5|在文件 粘|07.6|查看|07.7||usr08.txt||08.1|分隔一個 |08.3|窗口|08.4|垂直|08.5|移動 針對所有窗口操 |08.7|使用vimdiff|08.8|其|usr09.txt|使用|09.1|GUI|09.2|使用|09.3|剪貼|09.4|選擇|usr10.txt||10.1|命令的記|10.2|替 第00|10.3|使用作用|10.4|全局|10.5||10.6|讀寫文件的部分|10.7||10.8||10.9|使用外部|usr 恢|11.1|基本|11.2|交換文件在哪|11.3|是不是死機(jī)了|11.4|進(jìn)一步的|usr12.txt|奇技巧|12.1|替換一個|12.2|將"Last,First"改為"First|12.3|排|12.4|反轉(zhuǎn)|12.5|統(tǒng)計|12.6|查找?guī)椭搢12.7|消除多余|12.8|查找一個word在何處高效編此 可以獨(dú)立閱|usr20.txt|加速冒|20.1||20.2||20.3||20.4|命令行歷|20.5|1譯:僅對Unix類系 第00|usr21.txt||21.1||21.2|執(zhí)行 命|21.3|記住相關(guān)信息:|21.4|會|21.5|視|21.6|模式|usr22.txt|查找要編輯的|22.1||22.2|當(dāng)|22.3|查找一個|22.4||usr23.txt|非文本文件|23.1|DOS,Mac和Unix|23.2|來自因特|23.3|加密|23.4||23.5|壓縮|usr24.txt||24.1|校|24.2|顯示匹配|24.3|自動|24.4|重復(fù)|24.5|從其它|24.6|插入一個寄存器|24.7|縮|24.8|鍵入特殊|24.9||24.10|Normal|usr25.txt|編輯格式化|25.1|段|25.2|文本 第00|25.3|縮進(jìn)和制|25.4|處理|25.5|編輯|usr26.txt|重復(fù)重復(fù),|26.1|Visual|26.2|加與 |26.4|在一個 中使用|usr27.txt|搜索命令和|27.1||27.2|繞回文件|27.3|偏|27.4|多次|27.5|多選|27.6|字符|27.7|字符|27.8|匹配一個|27.9|例|usr28.txt||28.1|什么是折行|28.2|手工|28.3|使用|28.4|保存和恢|28.5|根據(jù)縮進(jìn)|28.6|根據(jù)標(biāo)記|28.7|根據(jù)語法|28.8|根據(jù)表達(dá)|28.9|折疊未有|28.10|使用何種折行方法|usr29.txt||29.1|使用|29.2|預(yù)覽 第00|29.3|在程序中|29.4|查找全局|29.5|查找局部|usr30.txt|程序的編輯|30.1|編|30.2|C程序的縮|30.3|自動|30.4|其它語言|30.5|跳格鍵與|30.6|注釋的格|usr31.txt|探索|31.1||31.2|確|31.3|菜單命令|31.4|Vim|31.5|其調(diào)節(jié)讓Vim如你所愿地|usr40.txt|定義新命令|40.1|鍵映|40.2|自定義冒|40.3|自動|usr41.txt||41.1|介|41.2|變|41.3|表達(dá)|41.4|條件|41.5|執(zhí)行一個 第00|41.6|使用|41.7|函數(shù)|41.8|注意|41.9|定制一個 |41.11|定制一個編譯相關(guān)的|usr42.txt|增加新菜單|42.1|介|42.2|菜單操作|42.3|其 和彈出式|usr43.txt||43.1|文件類型|43.2|添加一種|usr44.txt|自定義語 文|44.1|基本的語|44.2|關(guān)鍵|44.3|匹|44.4|區(qū)|44.5|嵌|44.6|后續(xù)|44.7|其它|44.8|聚|44.9|包含另一個語法|44.10|同|44.11|安裝一個語 |usr45.txt||45.1|用于消息|45.2|用于菜單|45.3|使用另一種編碼 |45.5|輸 第00|usr90.txt|安裝|90.1||90.2|MS-|90.3|升|90.4|常見|90.5|卸載版版權(quán) 請參考|manual- 第01*usr Vim6.3版.最后修改 年 VIM用戶手冊---作者 Bram本章介紹Vim的幫助系統(tǒng).本文將使你了解到Vim的幫助中解講每個命 兩套幫 關(guān)于安 使用下下一章:|usr02.txt|邁出第一步目錄: |usrtoc.txt| 兩套幫Vim的文檔由兩部分組成用戶手冊面向問題,由淺入深進(jìn)行講解.可以象讀一本書一樣參考手冊詳述Vim方方面面的細(xì)節(jié)跳兩個管道符之間的超級可以使你直接跳轉(zhuǎn)到對該的解釋處.或者是對相應(yīng)的編輯任務(wù)的應(yīng)對之計,或者是對它的功能進(jìn)行詳盡的解釋.牢記下面的兩個命令1:CTRL-]CTRL-O回到前一個位置1譯:不要誤會這樣的說,Vi中超級鏈接的實現(xiàn)H中不一,aheomewheeclickhee/a中的clickhee跟作為普通文本的"clikhee"是不一樣的,,;而imL,,,L 第01 都寫在兩個管道符中,象這個:|bars|.一個選項,如'number',或者是一個命令如":write",或者任何其它的詞都可以作為一個超級鏈接 試一下移動光標(biāo)到CTRL-]上按下CTRL-其它的幫 可以通過":help"命令 請參考 關(guān)于安手冊中假設(shè)你已正確地安裝了Vim.如果你還沒有,或者裝了但不能運(yùn)行(比如找不到文件或GUI菜單顯示不出來 請先閱讀關(guān)于安裝的手冊|usr 令來說是否是Vi兼容都沒有問題,但有時這一點會變得很重要,比如對于多 置,不過文件名因系統(tǒng)而異:Unix::!cp-i:!cp-i$VIMRUNTIME/vimrc_example.vimMS-DOS,MS-Windows,:!copy$VIMRUNTIME/vimrc_example.vim:!copy$VIMRUNTIME/vimrc_example.vim:!copy$VIMRUNTIME/vimrc_example.vim:!copy$VIMRUNTIME/vimrc_example.vim如果同名文件已經(jīng)存在你也許還想保留下來如果你現(xiàn)在啟動Vim,'compatible'選項應(yīng)該是關(guān)閉的.下面 ex如果結(jié)果是' patible'就對了.如果是"compatible"可就麻煩了.你要找找看為什么這個選項還是這樣的設(shè)置.也許是上面的文件沒找到.下面令可以告訴你它的位置:excommand 第01如果你的配置文件沒有在這個列表中,你需要檢查一下它的位置和名字.如果在,那一定是別的什么地方把'compatible'選項給打開了.參考|vimrc|和|compatible-備注本手冊是關(guān)于以常規(guī)方式使用Vim.還有一個叫"evim"(easyvim)的程序.它也是Vim.但是被改裝成了類似于Notepad的風(fēng)格.它總是處于Insert模式,感覺很難受.本手冊不對此提供幫助,因為它太簡單了,一看就會.關(guān)于它的細(xì)節(jié)請參考|evim-keys|. 使用除了閱讀文檔(無聊!)你還可以用vimtutor來開始學(xué)習(xí)Vim的簡單命 這是一個大概30分鐘的 ,它會教給你最常用的基本操作.在Unix和MS-Windows上,如果Vim安裝好了,你可以這樣進(jìn)入 文件,這樣你可以在其中放心地練習(xí),不用擔(dān)心破壞了 有幾個譯本.要看看你的本國語是否已被翻譯,可以在命令后加兩個字符的語言代碼試試,如對法語: 對于OpenVMS系統(tǒng) 如果VIM已正確安裝 可以用下 令進(jìn)入程 在其它系統(tǒng)上,你可要費(fèi)點小事文件.你可以在VIM中做(它知道文件的位置 vim-uNONE-c'e$VIMRUNTIME/tutor/tutor'-c'w!TUTORCOPY'-c本,只需文件名后追加它的對應(yīng)的兩個字符的語言代碼,比如對法語下一章:|下一章:|usr02.txt|版權(quán) 請參考|manual- vim-uNONE-c'e$VIMRUNTIME/tutor/tutor.fr'-c'w!TUTORCOPY'-c'q'vim-uNONE-c"setnocp"TUTORCOPY這兩個參數(shù)會讓Vim更happy一些 學(xué)完后 文件刪掉del *manual-Vim用戶手冊和參考手冊的:版權(quán)c1988-2003byBramMoolenaar.只有遵循"開放證"1.0及更新版本中的條件方可散布該資料,該證的版位于:希望為該手冊貢獻(xiàn)心力者必須同意上面 本手冊的部分內(nèi)容來自SteveOualline的?ViIMproved-i?一書(由NewRiders ,ISBN: 同樣適用于該書,該書被本手冊 的部分也已作出修改(比如,去掉了一些 ,更新了一些Vim6.0版相關(guān)的內(nèi)容以及修改了一些錯誤).沒 多謝SteveOualline和New 制作了該書并以O(shè)PL的形!它對我寫這份手冊大有幫助.不光是因為它提供了文字素材,也決 該手冊謀利的話,我強(qiáng)烈建議你把部分收益捐助給烏 病患者.請參考|iccf|. 第02章Vim第一*usr Vim6.3版.最后修改 年 VIM用戶手冊---作者:BramVim本章僅提供可以讓你開始用Vim編輯文件的必要技巧.所用的方法可能既不是最好的也不是最快的.它只是讓你有一個開端.你最好花些時 首次運(yùn)行 插入文 移動光 刪除字 撤消與重 其它編輯命 退 求下下一章 |usr03.txt|移前一章:|usr01.txt|關(guān)于本手冊目錄: |usrtoc.txt| 可以啟動在UNIX下你可以直接在命令行上鍵入該命令,Windows,就需要在一個MS-DOS命令行窗口中鍵入 令使Vim開始編輯一個名為file.txt的文件.因為這是一個新文件,所以你會看到一個空的窗口.屏幕上看起來大致是這樣: 第02章Vim第一 |"file.txt"[New ("#"代表當(dāng)前光標(biāo)位置上波浪線(~)表示所在行并不是文件內(nèi)容的一部分.換句話說,Vim將文件之外的部分顯示為波浪線.在窗口的底部,一個消息行顯示說當(dāng)前正在編輯的文件叫file.txt,它是一個新文件.顯示的消息總是臨時性的,系VIM命 就會在當(dāng)前 令行窗口中打開編輯程序.或者說,你在運(yùn)行xterm的話,編輯用的窗口就是你當(dāng)前的xterm窗口.如果你用的是Windows下的MS-DOS命令行窗口,編輯器就在該命令行窗口中打開.兩種情況下窗口中顯示的內(nèi)容都是一樣的,但是用gvim的話可以使用額外的功能,如菜單等. 插入文Vim編輯器是一個模式編輯器.這意味著在不同狀態(tài)下編輯器有不同的行為模式.兩個基本的模式是Normal模式和插入模式.在Normal模式下你鍵入的每一個字符都被視為一個命令.而在Insert模式下鍵入的字剛啟動時Vim工作于Normal模式.要進(jìn)入Insert模式你需要使用"i"命令(i意為Insert).接下來就可以直接輸入了.別怕出錯,錯了還可以修改.比如下面這首程序員的打油詩: iAveryin ligentturtleFoundprogrammingUNIXa 第02章Vim第一 |Avery ligent |FoundprogrammingUNIXa 現(xiàn)在是什么模式要知道你現(xiàn)在所處的工作模式是什么,打開顯示模式的開關(guān)ex你會看到按下冒號鍵之后當(dāng)前光標(biāo)跑到窗口的最后一行去了.那是使用冒號命令的地方(顧名思義,冒號命令就是總是以冒號打頭令).最后按下回車鍵結(jié)束整個命令(所有的冒號命令都以這種方式表明命令的結(jié)現(xiàn)在,如果你鍵入了"i"命令Vim就會在窗口底部顯示--INSERT--. |Avery ligent |FoundprogrammingUNIXa |--INSERT- 如果按下<Ec>鍵返回到Normal模式剛才顯示出來的模式"--INSERT--"就會 1模式之Vim新手最頭痛的問題就是模式---經(jīng)常忘記自己置身于何種模式,或者不經(jīng)意敲了哪個字符就切換到別的模式去了.不管你當(dāng)前所處的模式是什么,按下<Esc>都會讓你回到Normal模式(即使已經(jīng)在Normal模式1譯:Normal模式并不會顯示--NORMAL--, 第02章Vim第一 有時需要按兩次<Ec,如果Vim以一聲蜂鳴回答你,那說明你已經(jīng) 移動光回到Normal模式后,你就可以用下 令來移動光標(biāo)人們一開始會認(rèn)為這些字符是隨意選取的.畢竟有誰拿l來代表right呢?但事實上這些字符都是精心挑選的:在編輯器中移動光標(biāo)是十分常用的操作,這些字符在鍵盤上都分布在你右手周圍.這樣的安排可以使你最備注同時你還可以用箭頭鍵來移動光標(biāo).不過這樣做實際上會大大降低你的效率.因為用這些鍵你需要不停地在字母區(qū)和箭頭鍵之間頻繁轉(zhuǎn)換.想象一下要是你在一小時內(nèi)這樣做一百次會占用你多少時間?另外,并不是每個鍵盤上都安排有箭頭鍵,或者都把它們放在最常見的位置;所以記住這些命令的一個辦法是通過它們在鍵盤上的布局:h在左邊,l在右邊,j指向下面.khlj但學(xué)習(xí)這些命令的最好辦法不是使用什么法,而是練習(xí).你以用"i"命令來在net模式下輸入一些內(nèi)容,然后用hjkl命令將光標(biāo)移到別處再插入另外的內(nèi), 了要<Ec>來回到Nrmal模式.|vimtutor|也是學(xué)習(xí)這些命令的一個好去處對 的用戶來說,HiroshiIwatani有如下建議1譯: 組上還有人寫了一首詩來表達(dá)這種困擾,可惜我再沒找到它 第02章Vim第一 刪除字要刪除一個字符,只需要將光標(biāo)移到該字符上按下"x".(這是在追憶古老的打字機(jī)時代,在打字機(jī)上刪除字符就是用xxxx來覆蓋它)把光標(biāo)移到上面例子中的第一行,鍵入xxxxxxx(7個x)來刪除"Avery".結(jié) ligent |FoundprogrammingUNIXa 現(xiàn)在你可以鍵入其它內(nèi)容了,比如 令是i(進(jìn)入Insert模式),接著插入"Ayoung",然后退出Insert模式(最后的<Esc>).結(jié)果是: |Ayoung ligent |FoundprogrammingUNIXa 刪除一 第02章Vim第一 |FoundprogrammingUNIXa 刪除換在Vim中你可以把兩行合并為一行,也就是說兩行之間的換行符被刪 Ayoungin 將光標(biāo)移到第一行上然后按 Ayoungin ligentturtle如果你誤刪了過多的內(nèi)容.顯然你可以再輸入一遍,但是命令"u"更簡便,它可以撤消上一次的操作1實際看一下它的效果,用"dd"命令來刪除前面例子中的第一行內(nèi)容,"u"命令會把它找回來.另一個例子: Ayoungin ligentturtle現(xiàn)在用命令xxxxxxx來刪除"A 結(jié)果如下 ligentturtle鍵入"u"來撤消最后的一次刪除.最后被刪除的是字符g,所以撤消操作恢 gin ligentturtle1譯:不要誤解為它只能刪除最后一次的操作,它也可以刪除上上次,上上上上...次 第02章Vim第一下一個u命令將恢復(fù)倒數(shù)第二次被刪除的字符 ngin ligentturtle再下一次是字符u,如此如此 ungin ligentturtleoungin ligentturtleyoungin ligentturtleyoungin ligentturtleAyoung ligent備注:如果你按下"u"兩次結(jié)果是兩次找回了同樣的字符,那說明你的Vim配置成Vi兼容模式了. patible|可以找到這一問題的對策.這個例子假設(shè)你的Vim使用的是Vim的方法.如果你更喜歡老的Vi編輯器的做法,你就要留心兩者在這方面的細(xì)微差別.重句話說,它是對撤消的撤消.實際按兩次CTRL-R試試它的效果,字符A和 撤消命令還有另一種形式,"U"命令,它一次撤消對一行的全部操作.第 第02章Vim第一"U"命令本身也造成了一次改變,這種改變同樣可以用"u"命令和CTRL-R來撤消和重做.看起來這很容易把人搞糊涂,不過別擔(dān)心,用"u"和CTRL-R你 其它編輯 請參考|Qin|和下面的內(nèi)容,這里僅追"i"命令可以在當(dāng)前光標(biāo)之前插入文本.但如果你想在當(dāng)前行的末尾添加一些內(nèi)容時怎么辦呢?你必需在光標(biāo)之后插入文本.答案是用"a"命比如,要 andthat'snotsayingmuchfortheturtle.改變 andthat'snotsayingmuchfortheturtle!!! 置于行尾turtle的e上了.鍵入命令:normalmode來在e的后面追加三個感嘆號 andthat'snotsayingmuchfortheturtle!!!另起一"o"命令可以在當(dāng)前行的下面另起一行,并使當(dāng)前模式轉(zhuǎn)為Inert模式.這樣你可以在該命令之后直接輸入內(nèi)容.假設(shè)光標(biāo)位于下面兩行中第一行的某處: Averyin ligentturtleFoundprogrammingUNIXa 第02章Vim第一現(xiàn)在鍵入命令"o"并輸入下面的內(nèi)容oThatlikedusingoThatlikedusing結(jié)果將是 Averyin ligentturtleThatlikedusingFoundprogrammingUNIXa使用命令計假設(shè)你要向上移動9行.這可以用"kkkkkkkkk"或"9k"來完成.事實上,很多命令都可以接受一個數(shù)字作為重復(fù)執(zhí)行同一命令的次數(shù).比如剛才的例子要在行尾追加三個感嘆號當(dāng)時用令是"a!!!<Esc>".另一個辦法是用"3a!<Esc>"命令.3說明該命令將被重復(fù)執(zhí)行3次.同樣,刪除3個字符可以用"3x".指定的數(shù)字要緊挨在它所要修飾令前面. 退要退出Vim,用命令 該命令保存當(dāng)前文件并退出備注:Vim不會象其它的編輯器那樣,自動為被編輯的文件生成一個備份.如果你用"ZZ",Vim就會提交你對該文件所做出的修改.并且無法撤消.當(dāng)然你也可以配置你放棄編有時你會在做了一連串修改之后突然 最好是放棄所有的修改重新來過.別擔(dān)心. ex別忘了在命令之后加回車 第02章Vim第一對于喜歡把事情弄出個究竟的人來說這個命令由3部分組成:冒號用以進(jìn)入冒號命令行模式q命令告訴編輯器退出最后是強(qiáng)制命令執(zhí)行的修飾符(.!)12這里強(qiáng)制命令執(zhí)行的修飾符是必需的因為Vim對隱含地放棄所有修改感到不妥.如果你只是用":q"來退出,Vim會顯示下面的錯誤消息并且不 E37:Nowritesincelastchange(use!tooverride)指定了強(qiáng)制執(zhí)行的修飾符等于你告訴Vim,"我知道也許我這樣做很蠢,但如果你在放棄所有修改后還想以該文件的初始內(nèi)容作為開始繼續(xù)編輯,還可以用":e!"命令放棄所有修改并重新載入該文件的原始內(nèi)容. 求 任何操作都可以在Vim的幫助文件里找到答案,別怕問問題ex會帶你到幫助文件的起始點.如果你的鍵盤上有一個<F1>鍵的話你也<如果你沒有指定一個具體的幫助,":help"命令會顯示上面提到的幫助文件的起點.Vim的作者聰明地(也許是懶惰地)設(shè)計了它的幫助系統(tǒng):幫助窗口也是一個普通的編輯窗口.你可以使用跟編輯其它文件時一樣令來操作幫助文件.比如用hljk移動光標(biāo)退出幫助窗口也跟退出其它文件編輯窗口一樣,使用"ZZ"即可.這只會關(guān)閉幫助窗口,而不是退出Vim.瀏覽幫助文件時,你會注意到有一些內(nèi)容用兩個小柵欄圍了起來(|help|).這表明此處是一個超 .如果你把光標(biāo)置于兩個小柵欄之間的任何位置然后按下CTRL-](跳轉(zhuǎn)到一個 令),幫助系統(tǒng)就會帶你 .(因為一些此處不便討論的原因,在Vim的術(shù)語中這種超 中 2譯:規(guī)律:!表示強(qiáng)制命令執(zhí)行,強(qiáng)制執(zhí)行的結(jié)果要視具體 令而定,如w!是覆蓋 譯 基本上 這與HTML語言中的 在概念和功能上是一樣的,只不過HTML語 第02章Vim第一幾次跳轉(zhuǎn)之后,你可能想回到原來的某個地方,CTRL-T(彈出 以回到前一個位置.用命令CTRL-O(跳轉(zhuǎn)到較早的位置)也可以.幫助窗口的開始有一個關(guān)于*help.txt*的說明.在星號"*"之間的字 關(guān) 使用的細(xì)節(jié)要查看關(guān)于某個特 的幫助,使用下 令形式ex比如要得到關(guān)于"x"命令的幫助 就可以使用ex要查找關(guān)于如何刪除的內(nèi)容,使用命令ex要得到所有Vim命令的索引,使用命令ex如果你要得到關(guān)于某個控制字符的幫助(比如,CTRL-),你需要用前ex 個命令的幫助.比如,下 ex要查找其它模式下的幫助,使用一個模式前輟.如果你想要看的是Insert模式下某個命令的幫助,使用"i"前輟.對于CTRL-H來說是這樣:中對 的定義<a 目的地的描述是通過tag文件中的一個條目,這個條目用一種搜索或1譯:不光是前面提到的Insert模式和Normal下一章:|usr03.txt|下一章:|usr03.txt|移版權(quán) 請參考|manual-ex啟動Vim編輯器時,你可以使用一些命令行參數(shù).這些參數(shù)都以-開始.比如說要查找-t參數(shù)的功能,使用命令:exVim編輯器也有眾多的選項來讓用戶自己進(jìn)行定制.如果你想得到關(guān)于某個選項的幫助,你需要把它用單引號括起來.比如要找'number'選項,ex關(guān)于各種模式都要用哪些前輟可以在|help-context|中找到特殊鍵用尖括號中一個簡單的描述性名字表示.比如要查找Insert模式下的上箭頭鍵的功能,可以用:ex如果你看到了象下面這樣的錯誤信息還是不明究竟 E37:Nowritesincelastchange(use!tooverride)你可以把它的錯誤ID號作為一個幫 來得到更進(jìn)一步的信息ex 第03*usr Vim6.3版.最后修改 年 VIM用戶手冊---作者 Bram在你插入或刪除文本之前,光標(biāo)當(dāng)然要先移動到正確的位置上,Vim有眾多令來移動光標(biāo).本章將介紹這些命令中最重要的一些.此外,你可以在|Qlr|找到這些命令的完整列表. 以Word為單位的光 將光標(biāo)移到行首或 將光標(biāo)移動到指定 將光標(biāo)移動到匹配 將光標(biāo)移動到指定 告訴你當(dāng) 滾 簡單的搜 簡單的模 使用標(biāo)下下一章:|usr04.txt|小幅改動前一章:|usr02.txt|邁出第一步目錄:|usrtoc.txt| 以Word為單位的使用"w"命令可以將光標(biāo)向前移動一個word.象大多數(shù)其它的Vim命令一樣,你可以在"w"前面指定一個數(shù)字前輟以向前移動指定個數(shù)的word.比如"3w"將光標(biāo)向前移動3個words.請看下面令示意: Thisisalinewithexampletext>- 注意如果當(dāng)前光標(biāo)已經(jīng)在一個word的首字符上時"w"命令還是會將光標(biāo)移動到下一個word的首字符上."b"1命令則將光標(biāo)向后移動到前一個word1譯注 助記: 第03 Thisisalinewithexampletext b 同樣,"e"1命令會將光標(biāo)移動到下一個or的最后一個字符2象""有一個反方向令"b"與之對應(yīng)一樣,"e"命令有"ge",它將光標(biāo)移動到前一個wod的最后一個字符上: 如果光標(biāo)已經(jīng)位于當(dāng)前行的最后一個word,則"w"會移動到下一行的第一個word上去.所以使用"w"就可以在整個文本段中移動,速度要比"l"快多了."b"也一樣,只是方向相反.有一些被認(rèn)為是non-word的特殊字符,比如".","-"或")"充當(dāng)了word邊界的作用.要改變Vim對word邊界的定義,請查看'iskeyword'選項.還可以以空白為分界的WORDs為單位進(jìn)行移動.這種WORD與通常意義上的word的 應(yīng)字母的大寫形式,如下所示: Dis Thisis-<

line,<

--- (and>

---> 混合使用這種不同大小 令,你可以更快地在文本中前后移動 移動到行 "^"命令將光標(biāo)移動到當(dāng)前行的第一個非空白字符上 "0"命令則1譯注 助記:endof2譯注:與命令"w"不同,如果當(dāng)前光標(biāo)在當(dāng)前word上的位置不是最后一個字符,3譯注:嚴(yán)格說,它不是"e"行為的完全反向版,不管當(dāng)前光標(biāo)在當(dāng)前word中的位置,4譯注 漢字的空格不被視為空白字 第03是把光標(biāo)移動到當(dāng)前行的第一個字符上. ^<.....Thisisalinewithexample ("....."在這里代表空白"$"命令還可接受一個計數(shù),就象其它的移動命令一樣.但是移動到一行的行尾多于一次沒有任何意義.所以它的功能被賦予為移動到下一行的行尾如"1$"會將光標(biāo)移動到當(dāng)前行行尾2$"則會移動到下一行的行尾,"0"命令卻不能接受類似這樣的計數(shù),因為"0"本身就是一個數(shù)字,所以合起來"0"會成為你前面指定的計數(shù)的一部分,另外,并不象其它命令一樣可以舉一反三,命令"^"前加上一個計數(shù)并沒有任何效果1 移動到指定的字一個最有用的移動命令是單字符搜索命令.命令"fx"在當(dāng)前行上查找下一個字符x.提示:"f"意為"find".例如,光標(biāo)位于下行的開頭,假如你要移動到單詞human中的字符h上 Toerrishuman.Toreallyfoulupyouneedacomputer. 上圖同時展示了命令"fy"會將光標(biāo)定位于單詞really的尾部該命令可以帶一個命令計數(shù) 命令"3fl"會把光標(biāo)定位于"foul"的"l"上 Toerrishuman.Toreallyfoulupyouneedacomputer. 1譯注 沒有任何效果是說它與單個的"^"命令一樣,并不是說光標(biāo)根本不2譯注 規(guī)律:一個命令的大寫字母形式會做同樣的事情,但是方向相 第03 Toerrishuman.Toreallyfoulupyouneedacomputer.<"tx"命令形同"fx"命令,只不過它不是把光標(biāo)停留在被搜索字符上,而是在它之前的一個字符上.提示:"t"意為"To".該命令的反方向版是 Disy Toerrishuman.Toreallyfoulupyouneedacomputer. 這4個命令都可以用";"來重復(fù).以","也是重復(fù)同樣令,但是方向與原命令的方向相反1無論如何,這4個命令都不會使光標(biāo)跑到其它行上去.*03.4*以匹配一個括號為目的的寫程序的時候很容易被層層嵌套的()給弄糊涂.此時使用命令“%3”就太方便了:它跳轉(zhuǎn)到與當(dāng)前光標(biāo)下的括號相匹配的那一個括號上去.如果當(dāng)前光標(biāo)在"("上,它就向前跳轉(zhuǎn)到與它匹配的")"上,如果當(dāng)前在")"上,它就向后自動跳轉(zhuǎn)到匹配的"("上去4: % if(a==(b*c)/ %這對方括號[]和花括號{}同樣適用.(具體可以處理哪些括號可以由'matchpairs'選如果當(dāng)前光標(biāo)并沒有停留在一個可用的括號字符上,"%"也會向前為它找到一個.所以如果當(dāng)前光標(biāo)位于上例中的行首,"%"命令還是會向前先1譯注:這意味著"Fx"本身是向左搜索,用","重復(fù)時因為反轉(zhuǎn)了命令的方向,所以又2譯注:,"xx,"",打開,,,Vi在indow平臺上的預(yù)編譯版本就可以做到這一點,其它幾個以單字符為操3本文第一版中此處顯示為,感謝錢震(qzhen@)4譯注:這種跳轉(zhuǎn)當(dāng)然可以跨行進(jìn)行5比如,還可以加入尖括號<>,這對HTML,XML 第03ifif(a==(b*c)/ % 移動到指如果你是一個C或C++程序員 你應(yīng)該很熟悉下面形式的編譯器錯誤息 prog.c:33:j undeclared(firstuseinthisfunction)這行信息告訴你可能你要在第33行修改一些東西.那么你怎么找到第33行呢一個辦法是用命令"9999k"1然后用命令"32j"向下跳轉(zhuǎn)32行.這可不是個好辦法,但是也能對付.一個更好的辦法是用"G"命令2指定一個命令計數(shù)這個命令就會把光標(biāo)定位到由命令計數(shù)指定的行上.比如"33G"就會把光標(biāo)置于第33行上.(|usr30.txt|中有更好的辦法讓你遍歷編譯器的錯誤信息列表,請參考:make命令的相關(guān)信息)沒有指定命令計數(shù)作為參數(shù)的話3"G"會把光標(biāo)定位到最后一行上."gg"命令是跳轉(zhuǎn)到第一行的快捷的方法."1G"效果也是一樣,但是敲起來 firstlineofa |||| |||V||Gof|V一般來說不會這么多行的源代碼被放置在單個的源文件中,如果文件中當(dāng)前行之前實際沒有這么多行Vim將會把光標(biāo)置于第一行上.這是作者諧趣的說法2譯注:助記:G意為3譯注:一般人的概念是參數(shù)出現(xiàn)在命令的后面,但Vim中的參數(shù)通現(xiàn)在命令之前或之后對命令起附加補(bǔ)充作用的所有信息,并且也不象你在使用命令行或?qū)懗绦驎r的函數(shù)調(diào)用一樣,這里的參數(shù)可能不以空格和逗號來分隔 第03 比"50%"將會把光標(biāo)定位在文件的中間2"90%"跳到接近文件尾的地方上面的這些命令都假設(shè)你只是想跳轉(zhuǎn)到文件中的某一行上,不管該行當(dāng)前是否顯示在屏幕上.但如果你只是想移動到目前顯示在屏幕上的那些行呢?下圖展示了達(dá)到這一目標(biāo)的幾個命令: H--|textsample||sample||textsample||sample|M--|textsample||sample||textsample|L--||sampletextsample||提示 "H"意為Home,"M"為Middle,"L"為 告訴你當(dāng)要知道你當(dāng)前在文件中的位置,共有三種方法使用CTRL-G命令你會得到一些類似于下面的信息行(假設(shè)'ruler'選 "usr_03.txt"line233of650--35%--col45-52這行信息顯示了你正在編輯的文件名,當(dāng)前光標(biāo)所在行的行號,總的行數(shù),以及當(dāng)前行所在文件中的百分比和當(dāng)前光標(biāo)所在的列的信息.有時候你會看到兩個以-分隔的數(shù)字來表示列,如"col2-9".這意味著你的光標(biāo)位于第二個字符上,因為第一個字符是一個跳格鍵,占了8個字符的位置,設(shè)置'number'選項4這會在每行的前面顯示一個行號ex1譯注:這 令前輟數(shù)字計數(shù)可不意味著對同一個命令重復(fù)執(zhí)行N2譯注 意思很直觀,文件的50% Vim對百分比的計算是以行為單位,不是字節(jié)數(shù),如何跳轉(zhuǎn)到以字節(jié)數(shù)為百分比或為偏移的字符上去?:goto34譯注 譯者建議大家總是打開該選 第03號關(guān)閉,可以用命令ex:set因為'number'是一個二值選項,所以在它前面放一個"no"表示關(guān)閉該選項.一個二值選項只有兩種可能的值,開或關(guān).Vim有很多選項.除二值選項外還有數(shù)字類型的選項和字符串類型的選項.你會在接下來的例子中看到這些選項. 設(shè)置'ruler'選項.這會在Vim窗口的右下角顯示當(dāng)前ex:set使用'ruler'選項有一個好處就是它不會占據(jù)太多的屏幕空間,你可 滾來滾去CTRL-U命令會使文本向下滾動半屏.也可以想象為在顯示文本的窗口向上滾動了半屏.不要擔(dān)心這種容易的解釋,不是只有你一個人搞CTRL-D命令將窗口向下移動半屏,所以相當(dāng)于文本向上滾動了半屏1譯注:規(guī)律:no放置在boolean2譯注:網(wǎng)絡(luò)上有很多文檔,以Vim查看時如果setnumber,則每行會超出屏幕少許,從而被折疊放到下一行上,看起來很不方便,這時就可以使用:setnonumber3--<<臘筆小新 第03 |some |some|CTRL---||||||||+||||+||CTRL---|| | | | | 要一次滾動一行可以使用CTRL-E(向上滾動)和CTRL-Y(向下滾動).提示:CTRL-E意為Extra.(如果你在用MS-Windows兼容的映射鍵,CTRL-Y可要向前滾動一整屏(實際上是整屏去兩行)使用命令CTRL-.另外CTRL-B是它的反向版.很幸運(yùn)CTRL-F是向前1CTRL-B是向后2好記吧!一個經(jīng)常遇到的問題是你用""命令向下移動了若干行后當(dāng)前光標(biāo)已經(jīng)處于屏幕的底端了.而你又想查看當(dāng)前行前后的幾行內(nèi)容.zz命令會把當(dāng)前行置為屏幕正:y|y||||||||||||||--|||||||||||cursor||"zt"命令會把當(dāng)前行置于屏幕頂端 "zb"則把當(dāng)前行置于屏幕底端1譯注 助記:2譯注 助記:3譯注 廣泛用作折疊類命令的前輟,特別注意zt不是Zhuan 4譯注 助記:"b"意為 第03 令,請參考|Qsc|.若要一直保持當(dāng)前行的前后都有一些內(nèi)容顯示在屏幕上,請參考'scrolloff'選項. 簡單搜"/string"命令可用于搜索一個字符串.比如要找到單詞"include",

normalmode你可能會注意到按下"/"鍵后光標(biāo)跳到了1Vim窗口的最后一行,就象冒號命令行,你要查找的內(nèi)容在這里鍵入.在鍵入的過程中還可以用箭頭鍵和刪除鍵進(jìn)行移動和修改.最后按下回車鍵執(zhí)行命令備注字符.*[]^%/?~$有特殊意義如果你要找的東西包括這些內(nèi)容,要在這些字符前面放置一個反斜杠.見下要查找上次查找的字符串的下一個位置.使用"n"命令. 接下來按幾次"n".你就會移動到接下來的幾個#include中去.如果你知道你要找的確切位置是目標(biāo)字符串的第幾次出現(xiàn),還可以在"n"之前放置一個命令計數(shù)."3n"會去查找目標(biāo)字符串的第3次出現(xiàn).在"/"命令前使"?"命令與"/"的工作相同,只是搜索方向相反1譯注:Vim中有幾種情況光標(biāo)會自動從一種模式跳到另一種模式,2譯注:這句話很容易引起誤導(dǎo),因為在normal模式下,先鍵入一個數(shù)字然后鍵入/繼續(xù)輸入要查找的字符,回車后可以向前找到第N個匹配處,其中N正是鍵入的數(shù)字,我估計這里說/之前令計數(shù)不生效是說,在第一次鍵入/text進(jìn)行搜索之后,接下來按n或N只會找到下一個或前一個匹配,而不受/之前的N所影響,如:a1a2a3a4a5a6如果normal模式下當(dāng)前光標(biāo)位于1上,則2/\d這個命令會直接找到數(shù)字3,中間的2被跳過去了,但按下來再按n查找下一個數(shù)字時,卻不會再跳過4了3譯注:規(guī)律:Vim命令一般都會對應(yīng)有一個功能相同但方向相反 第03normalmode""命令會重復(fù)前一次查找,但是與最初用"/"或"?"指定的搜索方向相反.所以在"/"命令之后的""命令是向后搜索,而"?"之后的"N"命令是向前搜.忽略大通常情況下你要準(zhǔn)確地鍵入你要查找的東西.如果你并不關(guān)心目標(biāo)字符中字母的大小寫,可以通過設(shè)置'ignorecase'選項:ex現(xiàn)在你再去搜索"word",它就會同時匹配"Word"和"WORD".要回到對大ex命令歷史記假設(shè)你做過3次搜索normalmode現(xiàn)在我們按下"/"來搜索,先別按回車鍵.如果此時你按下上箭頭鍵,Vim會把"/three"放在命令行上,此時按下回車鍵就可查找"three".如果你不按回車鍵,而是繼續(xù)按上箭頭鍵,Vim就會把命令變?yōu)?/two".下你同樣可以用下箭頭鍵來向下查找用過的搜索如果你知道你用過的某個搜索字串的開頭你就可以在鍵入這個開頭部分之后再按上箭頭鍵.比如上例中"/o<p>"1im就會把"/one"放在命令.以":"開始令也有一個歷史記錄.它讓你找到用過的冒號命令重復(fù)執(zhí)行它.這兩個命令歷史記錄是相互獨(dú)立的.1譯注 <Up>代表你按下了上箭頭 第03在文本中查找下一個假設(shè)你在當(dāng)前文件中有一個word是"TheLongFunctionName",你想查找它的下一次出現(xiàn)在哪.當(dāng)然可以用"/TheLongFunctionName",但這要敲太多次鍵盤.萬一哪個字符敲錯了Vim就找不到你真正想要的東西.有一個便捷的方法:把光標(biāo)定位于這個word上,然后按下"*"鍵Vim將會取當(dāng)前光標(biāo)所在的word并將它作用目標(biāo)字符串進(jìn)行搜索"#"命令是"*"的反向版.還可以在這兩個命令前加一個命令計數(shù):"3*"查查找整個 normalmode"\"是一個特殊的記法,它只匹配一個word的結(jié)束處.近似地,"\"匹配到一個word的開始處2這樣查找作為一個word的"the"就可以用:normalmode這個命令就不會匹配到"there"或"soothe".注意"*"和"#"命令會在內(nèi)部用這些標(biāo)記word開始和結(jié)束的特殊標(biāo)記來查找整個的word(你可以用"g*"和"g命令來同時匹配那些包含在其它ord中的字串.)顯示搜索如果你在編輯一段源程序時看到了一個叫"nr"的變量.你想查看一下這個變量就被用在了哪些地方簡單的辦法是把光標(biāo)移到"nr"上然后用"*"命令和"n"命令一個一個地查找所有的匹配.不過還有更好的辦法.使用下面令ex1譯注: 問題:但如果要匹配一小片包含了幾o(hù)d的文本呢如何避免手工鍵入?答案:Vialelect,ank,:let/",n2譯注:一個word的結(jié)束處和開始處僅指一個位置,本身不占據(jù)任何字符寬度,或者說,它占據(jù)的字符寬度是0 第03想查看一個變量被用在哪些地方,這個辦法太棒了,不需任何其它令看得眼花的時候還可以關(guān)閉 能ex不過你要在下次搜索時再次使用這能就又得打開它.如果你只是想去掉當(dāng)前的顯示,可以使用下面令2:ex這不會重置'hlsearch'選項的值.它只是關(guān)閉了該語法項顯示.一旦你再次執(zhí)行一個搜索命令,被匹配到的目標(biāo)就又會以形式顯示了n"和"N"命令也一樣會引起顯示.調(diào)理搜索命有一些選項用來改變搜索命令的工作方式. excommand這使得你在鍵入目標(biāo)字符串的過程中Vim就同時開始了搜索工作.使用這種方法可以讓你在尚未完全鍵入字串時就能找到目標(biāo).你可以選擇按回車ex該設(shè)置會使搜索過程在文件結(jié)束時就停止.或者在你反向搜索時在到達(dá)件開頭時停止.rapcan選項的默認(rèn)值是開,這樣搜索在達(dá)到文件的頭尾時都會繞向另一個方向繼續(xù)進(jìn)行.3如果你感到前面講到的這些選項很好使,并且每次用Vim時都去設(shè)置它們的值,你完全可以把這些設(shè)置命令放在Vim的啟動文件里.修改該文件時請遵照 patible|里的建議.通過下面令可以找到它的位置1譯A:如果排除函數(shù)外別處同名變量的干擾呢?答:|/\%<3l|2譯注: 只是使被匹配的文本不再以區(qū)別于普通文本的形式顯示,既不是刪除相應(yīng)的文本,也不是改變'hlsearch'選項的值3譯注 這個破詞實在沒法翻譯 第03ex例如,象這樣去編輯該文件ex 令設(shè)置了,象就你在Vim里進(jìn)行設(shè) Go:setexGo:set"G"命令先移動到文件末尾."o"另辟一行進(jìn)行編輯,在該行上鍵入你 然后用<Esc>來退出插入模式.最后保存文件:normalmode下次啟動Vim時 'hlsearch'選項就是打開的了 簡單的搜Vim用正則表達(dá)式來描述要查找的目標(biāo).正則表達(dá)式在描述一個搜索價的,因為正則表達(dá)式用起來還是需要一些技巧的. 只涉及一些最基本的內(nèi)容.關(guān)于該 看|usr27.txt|.你也可以在|pattern|找到它的完整描述.一行的開頭與^字符匹配一行的開頭.在標(biāo)準(zhǔn)的美語鍵盤上你會發(fā)現(xiàn)它在數(shù)字鍵16的上面. 象"include"這樣的模式可以匹配出現(xiàn)在一行中任何位置$字符匹配一行的末尾.所以"was$"只匹配位于一行末尾的單詞was. 1譯注: 第03而使用"/the$"時匹配的結(jié)果則是 用"^the"找到的則是 你也可以試一下"/^the$"會怎么樣,它只會匹配到一行的內(nèi)容僅包含"the"的情況.有空白字符也不行,所以如果有一行的內(nèi)容是"the",那么這個匹配任何的單 是c后一個字符是m的情況,不管中間的字符是什么1如: Weuseacomputerthatbecamethecumminwinter. 匹配特殊如果你要查找的東西本身就是一個.號呢,這時你就要想辦法去掉.號在正則表達(dá)式里的特殊意義了:放一個反斜杠在它前面.如果你用"ter."來查找,你會找到如下的匹配: Weuseacomputerthatbecamethecumminwinter. 而使用"ter\."你就只會找到上面第2個匹配了 使用標(biāo)當(dāng)你用"G"命令從一個地方跳轉(zhuǎn)到另一個地方時,Vim會記得你起跳的位置.這個位置在Vim中是一個標(biāo)記.使用下面令可以使你跳回到你1譯注:對于中文用戶,如果你用l命令移動光標(biāo)時單位是一個漢字,那么.可以匹配一整個漢字,否則它只會匹配半個漢字,另外,嚴(yán)格說,. 第03normalmode這個符號看起來象是一個反方向的單引號,或者,叫它開單引號再次使用上面的這個命令你就會又跳回來了.這是因為`也是一個跳轉(zhuǎn)命令,所以上次跳轉(zhuǎn)時的起跳位置現(xiàn)在被標(biāo)記為了`.更一般地說,只要你執(zhí)行一個命令使光標(biāo)定位于當(dāng)前行之外的某行上去這都叫一個跳轉(zhuǎn).包括"/"和"n"這些搜索命令(不管被找到的東西離當(dāng)前位置有多遠(yuǎn)).但是字符搜索命令"fx"和"tx",或者是以word為單位的移動光標(biāo)位置令"w"和"e"不叫跳轉(zhuǎn).同時,"j"和"k"命令并不被視為一個跳轉(zhuǎn),即使你在它們之前加了命``命令可以在兩點之間來回跳轉(zhuǎn).CTRL-O命令是跳轉(zhuǎn)到你更早些時間normalmode首先你會跳轉(zhuǎn)到33行2然后向下搜索以"The"開頭的目標(biāo).接下來的CTRL-O會讓你跳回到33行.再一個CTRL-O又讓你跳回到執(zhí)行"33G"命令之前的位置.現(xiàn)在再用CTRL-I命令的話你又會再次回到第33行.再一個CTRL-I又會|^y|33G|CTRL-|CTRL-|||Vline^V|/^The||CTRL-||CTRL- Thereyouare exampletext備注:使用CTRL-I與按下<Tab>鍵一樣1譯注:相對地就是一個閉單引號提示:在標(biāo)準(zhǔn)鍵盤布局上字符`位于數(shù)字12譯:在講述與光標(biāo)有關(guān) 時,有時用"你"跳轉(zhuǎn)到某某處,當(dāng)然都是指光標(biāo)的轉(zhuǎn) 第03":jumps"命令會列出關(guān)于你曾經(jīng)跳轉(zhuǎn)過的位置的列表.你最后一個跳有名標(biāo)Vim允許你在文本中定義你自己的標(biāo)記.命令"ma"將當(dāng)前光標(biāo)下的位置名之為標(biāo)記"a".從a到z一共可以使用26個自定義的標(biāo)記.定義后的標(biāo)記在屏幕上也看不出來.不過Vim在內(nèi)部記錄了它們所代表的位置.要跳轉(zhuǎn)到一個你定義過的標(biāo)記,使用命令`{a{mark}就是你定義normalmode命令ark(單引號,或者叫呼應(yīng)單引號)會使你跳轉(zhuǎn)到ark所在行的行首.這與`ark略有不同,`ark會精準(zhǔn)地帶到你定義ark時所在的行和列.標(biāo)記對于編輯那些有兩塊內(nèi)容相互關(guān)聯(lián)的文件十分有用.想象一下你在文件開頭有一段文字需要時時參考,但實際上要修改編輯的地方卻在文你可以移動到文件開始處并在此放置一個名為s(start)的標(biāo)記normalmode然后你可以轉(zhuǎn)移到你需要編輯的地方并在此命名一個叫e(end)的標(biāo)記normalmode現(xiàn)在你就可以在兩地之間自由移動了,若要參考文件開頭的部分normalmode然后你可以用命令跳轉(zhuǎn)回剛才正在編輯的地方,或者用e跳轉(zhuǎn)到定義標(biāo)記e的文件結(jié)尾處.這里用s代表文件開頭1用e代表文件結(jié)尾2可并不說它們有任何特別之處,只是為了方便 你也可以使用下面這個命令來查看關(guān)于標(biāo)記的列表1譯注 2譯注 第03ex在這個列表里你會看到一些特別的標(biāo)記.象下面這些下一章:下一章:|usr04.txt|版權(quán) 請參考|manual- 第04*usr Vim6.3版.最后修改 年 VIM用戶手冊---作者 Bram天下大事,必 本章向你展示幾種移動文本和作出更改的方法.你會學(xué)到3種改變文本的基本方法操作符命令和位移,Visual模式和文本對象. 操作符命 改變文 重復(fù)改 Visual 移動文 文 使用剪貼 文本對 替換模 結(jié) |usr05.txt|定制你的Vim |usr03.txt|移動目錄 |usr 操作符命在第2章中你已經(jīng)知道"x"命令可以刪除一個字符.使用一個命令記"d"命令可以刪除一個ord.你可以把其中的""看作是向右移一個ord令事實上,"d"命令可以后跟任何一個位移命令,它將刪除從當(dāng)前光標(biāo)起到位移的終點處的文本內(nèi)容.舉例來說 所以"d4w"命令是刪除4個 第04 Vim只刪除到位移命令之后光標(biāo)的前一個位置.這是因為Vim知道你并不是要刪除下一個word的第一個字符.如果你用"e"命令來移動到word的末尾,Vim也會假設(shè)你是要包括那最后一個字符1: Toerrishuman.youneedacomputer. Toerrishuman.a刪除的內(nèi)容是否包括光標(biāo)所移動到的那個字符上取決于你的位移命令.在聯(lián)機(jī)參考手冊上把這種不包括該位置的操作叫做"排外的",把包括該位置的操作叫"內(nèi)包的"."$"命令是移動光標(biāo)到行尾.所以"d$"命令就是刪除自當(dāng)前光標(biāo)到行尾的內(nèi)容.這是一個"內(nèi)含的"位移,所以該行最后一個字符也被刪除: Toerrishuman.acomputer.>Toerris此類命令有一個固定的模式:操作符命令+位移命令.首先鍵入一個操作符命令.比如"d"是一個刪除操作符.接下來是一個位移命令如"4l"或"w".這樣你可以以任何移動光標(biāo)命令所及之處,都是命令的作 改變文另一個操作符命令是"c",改變命令.它的行為與"d"命令類似,不過在命令執(zhí)行后會進(jìn)入Insert模式.比如"cw"改變一個word.或者,更準(zhǔn)確地說,它刪除一個word并讓你置身于Insert模式:1譯注:所幸 第04 令元素如果你留心的話也許已經(jīng)注意到這里面有一些奇怪的事情:"human"之前的空格并沒有被刪除.就象那句諺語里說的:對每一個問題,都會有一個簡單而清晰的答案,而那個答案總是錯的.這正是"cw"命令的情況."c"操作符與d操作符一樣,只是有一個例外:"cw",它就象"ce"一樣,改變到一直到word結(jié)尾的內(nèi)容.而word之后的空格被留下了.這個例外可以一直追溯到古老的Vi編輯器.因為多數(shù)人已經(jīng)習(xí)慣了所以Vim里這個例就象"dd"命令可以刪除整行一樣,"cc"命令可以改變整行.不過仍也正如"d$"刪除到行尾為止的內(nèi)容,"c$"改變當(dāng)前光標(biāo)到行尾的內(nèi)容.就好象是用"d$"刪除然后又以"a"進(jìn)入Insert模式追加新的文本一樣快捷命有一些操作符+位移命令使用率是如此之高以至于它們以一個單獨(dú)的字符作為其快捷方式: 代表dl(刪除當(dāng)前光標(biāo)下的字符 代表cc(修改一整行1譯者:規(guī)律: 第04命令記數(shù)放在命令"3dw"和"d3w"都是刪除3個word.如果你真要鉆牛角尖的話,第一個命令"3dw"可以看作是刪除一個word的操作執(zhí)行3次;第二個命令"d3w"是一次刪除3個word.這是其中不明顯的差異.事實上你可以在兩處都放上命令記數(shù),比如,"3d2w"是刪除兩個word,重復(fù)執(zhí)行3次,總共是替換單個字"r"命令不是一個操作符命令.它等待你鍵入下一個字符用以替換當(dāng)前光標(biāo)下的那個字符.你也可以用"cl"或"s"完成同樣的事情,但用"r"的話 "r"命令前輟以一個命令記數(shù)是將多個字符都替換為即將輸入的那個字符. 要把一個字符替換為一個換行符使用"r<Enter>".它會刪除一個字符并插入一個換行符.在此處使用命令記數(shù)只會刪除指定個數(shù)的字符:1 重復(fù)改"."命令是Vim中一個簡單而強(qiáng)大令.它會重復(fù)上一次做出的改動.例如,假設(shè)你在編輯一個HTML文件,想刪除其中所有的<B>你把光標(biāo)置于<B>的<字符上然后命令"df>".然后到</B>的<上用"."命令做要刪除另一個,同樣把光標(biāo)置于<字符上然后執(zhí)行"."命令即可.1譯:規(guī)律:通常的規(guī)律延申至無實際意義時,將打破規(guī)律.n..n.繼續(xù)找下 "."命令會重復(fù)你做出的所有修改,除了"u"命令CTRL-R和以冒號開頭的命令.(譯者:"."需要在Normal模式下執(zhí)行,它重復(fù)的是命令,而不是被改動的內(nèi)容,如下兩行文本: 光標(biāo)置于第一行的1上時執(zhí)行了"cwxyz",然后退回到Normal模式,此時第 標(biāo)置于第二行的1上,執(zhí)行.命令,則第二行將變?yōu)?而不是 因為真正重復(fù)的是命令,而不是從字面上看到的將3個字符換為另一個例子:你想把"four"改為"five".它在你的文件里多次出 第04 Visual刪除那些簡單的文本對象用操作符命令+位移命令就足夠了.但是通常很難說用什么位移命令可以把光標(biāo)剛好移動到你想刪除的文本范圍.這按"v"可以進(jìn)入Visual模式.移動光標(biāo)以覆蓋你想的文本范圍.同時被選中的文本會以顯示.最后鍵入操作符命令.例如,要刪除一個單詞的后半部分至下一個單詞的前半部分 Thisisanexaminationsampleofvisual>Thisisanexampleofvisual要做這樣的修改你不必去計算要按多少次""才能剛好達(dá)到想要的位置.在你按下"d"命令時就可準(zhǔn)確看到哪些文本將會被刪除.發(fā)出實際的更改命令之前任何時間你都可以決定放棄,用<Esc>命令 選擇多如果你想整行整行地文本,使用"V"進(jìn)入Visual模式.你會看到被選中的文本是是一整行一整行為單位.命令左右移動命令毫無意義.而如下例中,用"Vjj"命令選中3行 |textmore >>|moretextmoretext ||selectedlines>>|texttexttext ||Vjj>>|text ||moretext 選擇文如果你想以一個矩形的文本塊為對象進(jìn)行操作,你需要用CTRL-V進(jìn) 第040要刪除其中的"Q2"列,把光標(biāo)置于"Q2"的"Q"上.按下CTRL-V進(jìn)入文本塊Visual模式.現(xiàn)在可以用"3j"向下移動3行,用"w"選擇直到下一個word的區(qū)域.你可以看到被選中的文本中包含了下一列的第一個字符.使用"h"排除這一列.現(xiàn)在按下"d"中間的這一列就被刪除了.到另一如果你已經(jīng)在Visual模式下選中了一些文本,但此時發(fā)現(xiàn)還要改變另一頭的被選擇區(qū)域,"o"命令(提示:o代表otherend另一頭)會讓光標(biāo)置于被選中文本的另一頭,這樣你就可以通過控制光標(biāo)移動來決定被選文本將從何處開始.再按"o"又會讓光標(biāo)置于被選文本的末端.當(dāng)你進(jìn)行矩形文本塊內(nèi)容的選擇時,你有4個角都可以改變."o"只會帶到對角的位置去,使用"O"間移動注意"o"和""在iual模式與oral模式下行為迥異,在oral模. 移動文你以"d"或"x"這樣令刪除文本時,被刪除的內(nèi)容還是被保存了起來. 首先你刪除一整行內(nèi)容,把光標(biāo)置于該行鍵入 現(xiàn)在移動光標(biāo)到想放入該的地方鍵入"p"命令 這樣該行入到當(dāng)前光標(biāo)下面了 aline aline alineline line lineline line因為你刪除的是整行的內(nèi)容,所以"p"命令把整個文本行都放到光標(biāo)下面作為單獨(dú)一行.如果你刪除的是一行的部分內(nèi)容(比如說一個word),"p"1譯者:你應(yīng)該知道如何在42譯:不會因此多出 第04 Somemoreboringtrytexttooutcommands.>Somemoreboringtexttoout Somemoreboringtexttotryout關(guān)于PUTTING 內(nèi)"P"命令與"p"一樣取回被刪除的內(nèi)容,不過它把被取回的內(nèi)容置于光標(biāo)之前.對于以"dd"刪除的整行內(nèi)容,"P"會把它置于當(dāng)前行的上一行.對于以"dw"刪除的部分內(nèi)容,"P"會把它放回到光標(biāo)之前1你可以多次取回被刪除的內(nèi)容.其內(nèi)容取之不竭也可以對命令"p"和"P"命令使用命令記數(shù).它的效果是同樣的內(nèi)容被取回指定的次數(shù).這樣一來"dd"之后的"3p"就可以把被刪除行的3份副交換兩個字輸入文本的時候,人們常常會發(fā)現(xiàn)手比腦跑得要快(或者腦比手跑得快).不管誰更快結(jié)果都是拼錯字,比如把"the"拼成"teh".在Vim中改正此類錯誤十分容易,把光標(biāo)置于"teh"的e上執(zhí)行命令"xp".它的工作如下:x"刪除字符e并把它放入一個寄存器中.p"命令把被刪除的e再放回到當(dāng)前光標(biāo)之后,也就是h后面. 文要把文本內(nèi)容從一處到

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論