关闭

关闭

封号提示

内容

首页 vim使用手册.pdf

vim使用手册.pdf

vim使用手册.pdf

上传者: 尘归尘 2011-10-12 评分 4.5 0 73 10 334 暂无简介 简介 举报

简介:本文档为《vim使用手册pdf》,可适用于IT/计算机领域,主题内容包含大家來學Vim一個歷久彌新的編輯器李果正EdwardGJLeeEmail:edtinfosayyaorg年月日目錄目錄i進來先看看為什麼選Vim?何符等。

大家來學Vim一個歷久彌新的編輯器李果正EdwardGJLeeEmail:edtinfosayyaorg年月日目錄目錄i進來先看看為什麼選Vim?何處抓Vim(elvis)?編譯安裝Vimelvisnvimn勤前教育常態模式(Normalmode)插入模式(Insertmode)命令列模式(CmdlinemodeorCommandlinemode)反白模式(Visualmode)選擇模式(Selectmode)Ex模式(Exmode)基本教練:stepbystep由命令列來開檔先進入vim後再開檔編寫文件存檔、離開游標的移動基本的游標移動進階的游標移動特殊的移動基本編輯指令五種額外模式(additionalmode)操作等待模式(operatorpendingmode)取代模式(replacemode)插入常態模式(insertnormalmode)插入反白模式(insertvisualmode)插入選擇模式(insertselectmode)i目錄目錄進入插入模式的指令刪除指令取代及還原加上數目字簡單重排功能複製(yank)指令說明Register緩衝區register的種類天大的指令疑難雜症那mouse中鍵的剪貼功能還有嗎?軟體間互相copy時常常都搞得天下大亂耶!搜尋、替換搜尋更方便的搜尋操作(Vim才有)替換(substitute)書籤功能Vim對於書籤的擴充功能小寫英文字母大寫英文字母阿拉伯數目字:marks叫檔、存檔、緊急回復開檔的一些花招多檔編輯離開Vim的加密功能vimx檔名進入vim編輯檔案中可用:X指令緊急回復各種標示方法及視窗操作標示指令視窗操作shell命令及求助系統shell命令求助系統ii目錄目錄set功能設定該在何處設定呢?Vim的設定檔elvis的設定檔nvimn的設定檔如何得知目前的設定各種set功能說明關於softtabstopstsVim的modeline關於折行我的設定檔vimrc範例gvimrc範例vim目錄範例規則表示式的運用基本的匹配中介字元(metacharacter,orcharacterclasses)全域性的指令替代變數greedy陷阱把Vim折疊(folding)?手動折疊折疊的產生折疊的操作折疊的記憶自動折疊以縮行為依據以特殊的表示法為依據以語法為依據以是否更改過為依據以文件上的標誌為依據Vimtags的使用各種程式碼專用tag工具tags檔案的格式tag檔案的製作一般的tag使用iii目錄目錄Vim線上說明文件的製作doctags由Vim裡頭作線上說明Vimscript簡介一些簡單的macro按鍵對應縮寫對應定義新命令新命令的屬性Vimscript的語法Vim和其他軟體的配合和郵件、新聞軟體的配合muttvimslrnvim和編譯程式的配合和TEXLATEX的配合和Java的配合Vimtips集錦GNU自由文件許可證原文授權聲明參考資料索引iv第章進來先看看鑑於仍有許多人還沒找到順手的編輯器而許多想學vi的人又覺得無從下手因此在此提出一些個人的心得希望能對這些朋友有點幫助。或許也減少一點FAQ吧!真要深入的話大多數的前輩都認為vi比emacsxemcas還難學。但誰又真的需要熟悉編輯器的所有功能呢?你大可以邊用邊學啊!需要用到的先學其它的就放一邊只要能善用一些常用到的功能又何必要那麼深入呢?而且您在使用當中經常會發現一些新功能這又會馬上讓您給賺到了。為什麼選Vim?最最重要的原因是可以正確處理中文!其它如elvis,vile,nvi在中文方面都會有問題(nvimn的版本已可以正確處理Big中文但功能仍不及Vim完整)。另外就是許多作業系統都有Vim可用。當然如果您不需要中文支援的話也建議使用elvis。vile則有emacs的味道而nvi大概是最忠於原味的了!至於原始vi的書已有中文翻譯(O'Reilly)各位到大一點的書局翻翻就有了。所以選定Vim做對象兼述及elvis至少她不「排斥」中文。另一個原因Vim不僅是自由軟體(FreeSoftware)也是慈善軟體(CharityWare)如有贊助或評比得獎(幾乎是年年最佳編輯器獎:)所得皆救助烏干達AIDS孤兒。您要使用當然是免費您要捐款贊助當然是不勉強啦!但如果有評比有獎金可拿的VIM代表ViIMprovedelvis可直接讀HTML(可用來上網但只有文字)binary、manpage及TEXLATEX檔(會自動去除一些指令!)但不能真正「處理」中文就是了!Vim也不是真的能完全支援中文啦!有些細部的功能還是沒法度。但Vim的發展群非常的活躍一直都在改進中。平常一般的編輯動作應該是沒什麼問題。什麼是自由軟體?請參考:http:wwwgnuorgphilosophyfreeswhtml。請參考在荷蘭的基金會網頁:http:iccfhollandorg。第章進來先看看何處抓VIM(ELVIS)?您去投她一票就是功德無量了。另外如果想網路購書可以透過ICCF的網頁http:iccfhollandorgclickhtml來訂購這樣Amazon會付一些贊助金給ICCF完全不會多花您一毛錢。另外Vim的規則表示式(regularexpress)頗完整您也可借這個機會學regexp因為您在sed,awk,perl,less,grep中也是要用到早點習慣regexp您生活在Linux(Un*x)的世界會更美好。學了regexp您會有點看不起Windows系統中的找尋工具的。由於是慈善軟體廣結善緣因此連中文繁體都支援不簡單。但也因此最近的版本有點肥但又不會太肥(比xemacs好多了啦!)。這麼可愛的軟體能不用她嗎?何處抓Vim(elvis)?http:wwwvimorghttp:vimsfnetdownloadphpftp:ftpvimorgpubvim找個自己中意的mirro站抓。或許也順便抓Win的可執行檔回來在windows系統中使用。別忘了runtime檔也要抓否則會無法找到需要的檔案來執行。http:elvisthelittleredhairedgirlorg也可試試elvis(當然也是自由軟體)。ftp:ftpcsberkeleyeduucbbsdftp:ftpforetunecojppubtoolsnvimnnvimn也可以一試目前已可以支援中文。目前最新的版本Vim是elvis是hbetanvi是。當然本文的重點是放在Vim。編譯安裝只講重點避免囉嗦!第章進來先看看編譯安裝Vimconfigure時加上:enablemultibyteenableximenablefontsetenablegui=gtkenableperlinterp需嵌入perl的話enablepythoninterp需嵌入python的話GUI可有好幾種選擇但建議使用gtk比較穩定。~vimrc加入:setenc=bigsetguifontset=英文字型中文字型設了guifontset就不能設guifont否則會優先使用guifont這樣就找不到中文字型了!console下或xterm下的話就看您用什麼字型就顯示什麼字型和guifontset無關。英文字型要用固定字我個人的實際設定例子(x):setguifontset=bh*mediumrnormal****m***,arphic*mingtil*mediumrnormal****c*bigWindows中文版無需設guifontset只要設guifont即可。而且他的設定檔是ProgramFilesVimvimrc。例如:setguifont=AndaleMono:H:W或setguifont=細明體:H:W對於編碼的文件可能需要指定「細明體」才能正確顯示中文。locale要設成zhTWBig意思就是您的系統的in支援要完整我個人的設定如下:unsetLCALLexportLCCTYPE=zhTWBigelviselvis沒什麼好說的GUI版本要靠靠XACV來顯示及輸入中文因為他還不支援inXIM。但在consolerxvt下則可以顯示、輸入中文。至於其他外觀調整就請manelvis。第章進來先看看勤前教育nvimnnvi是在*BSD系統的標準配備mn(multilingualization,取前m及後n及其中的個英文字母合成mn)則是日本朋友修改的版本目前也可以用於中文如果您系統上也有nvimn的話可以設定nexrc如下:setnoskipdisplaysetdisplayencoding=bigsetinputencoding=bigsetfileencoding=bigsetautodetect=tw勤前教育Vim的基本模式(basicmode)可有六種:常態模式(Normalmode)您一進入vim就是處於這常態模式只能下按鍵指令不能輸入編輯文字。這些指令可能是游標移動的指令也可能是編輯指令或尋找替換指令。插入模式(Insertmode)按i就會進入插入模式此時才可以鍵入文字寫您的文章按Esc又會回到正常模式。此時在狀態列會有INSERT字樣。命令列模式(CmdlinemodeorCommandlinemode)按冒號:(別忘了Shift鍵)就會進入命令列模式左下角會有一個冒號:出現可下ex指令。也是按Esc回命令列模式。反正正常狀態都是處於常態模式這樣才不會把您辛苦打字的文章給隨便搞亂掉。搜尋時的及按鍵也是屬於命令列模式。vi,ex,sed都是衍化自ed。ed是一個很古老的行編輯器就好像DOS下的edline一樣。當然DOS下的edline也是學ed而來的但功能可就不能同日而語了!有興趣可maned學看看有些時候會只有ed可以用(當機救助的時候)。ex的操作和ed除了多了個冒號外幾乎是一樣的。第章進來先看看基本教練:STEPBYSTEP反白模式(Visualmode)這就是把需要處理的文字反白起來等待處理的模式底部狀態最會有VISUAL或VISUALLINE或VISUALBLOCK字樣。詳細會在第章頁做介紹。選擇模式(Selectmode)和反白模式的異同待瞭解。Ex模式(Exmode)這和命令列模式是一樣的但下了命令後不會返回會留在行編輯器ex的狀態有一個冒號在那兒等待輸入命令。由gQ按鍵可以進入Ex模式輸入visual可以返回正常模式。其它還有五種的額外模式(additionalmode)!這裡不準備說明會在第節頁做介紹。反正使用Vim的無上心法就是有問題先考慮按Esc鍵回到常態模式再說。基本教練:stepbystep由命令列來開檔vimtesttxt或gvimtest,txt如果您的系統vi是vim的連結檔話就可以直接用vitesttxt。以下就直接用vim代表vigvimelvis因操作是一樣的有不同的地方會加注說明。先進入vim後再開檔進入vim後使用冒號命令:etesttxt就可以編輯testtxt這個檔。第小節及第小節這兩個開檔法如果testtxt不存在的話就會開一個以testtxt為名的新檔案。如果是gvim可由icon(gtk版本才有)或功能表來叫出lebrowser來選看看您要編輯哪一個第章進來先看看基本教練:STEPBYSTEP檔但如果您是初學的話不建議您這麼做vi就是以按鍵快速聞名這是她的優點您還是學起來吧不然沒有GUI的時候會很不習慣的。編寫文件進入vim後按i進入插入模式就可以編寫您的文件了。在vim游標的移動可以由方向鍵來移動。Backspace鍵可消去前一個字元中文的話是一個中文字。Del鍵可刪除游標所在處的字元(中文字)。原始vi是不能在插入模式隨意移動游標的得進入正常模式才能移動因此就常常要按Esc來變換模式。vim及elvis都打破了這個規矩。存檔、離開如果您寫好您的文件就可以按Esc回到正常模式然後:w就會存檔(注意是冒號命令)但還不會離開vim要離開可按:q就可以了!也可以合起來用:wq就樣就會存檔後離開。怎麼樣也不會很難吧!只不過操作方式和別的編輯器不一樣罷了這樣豈不是很有個性。:)盡量記住按鍵的意義才不必死背如e是edit(編輯)w是write(寫入)q是quit(停止、離開)。這裡要提醒大家一下許多distributions中會編譯一個小型的vim啟動會比較快一點但缺乏許多本文要用到的功能因此建議您使用vimgvim而暫時避免使用vi或者就把vi直接連結到正常的vim上去。SlackwareLinux的話他的vi是連結到elvis的也請使用vimgvim為指令或改變vi的連結。而*BSD系統使用的很可能就是nvi這些請使用時注意一下以免和文中內容所述不符。如果不確定自己是使用哪一種版本的vi可以進入vi後按冒號:後再輸入ver然後按Enter就會得知是哪一種版本的vi如果是vim的話還會顯示前有–號的各功能有號的表示有編譯進去–號的表示沒有這項功能。好了這是就編輯的整個過程。下回開始是詳述各部份的功能把Vim解剖開來講您可以馬上現學現賣。由於vivim的操作方式很有個性因此用了一次就會記住有這麼一個功能想忘也忘不了但有時按鍵難免會忘記有這麼一種功能大概是忘不了的查了幾次指令就可以記得住了。第章游標的移動本節所述皆是在commonmode(cmode在Vim又名normalmode就是剛進入vim不能輸入文字的狀態)下的移動原始的vi只能在cmode移動游標在insertmode只做文字的輸入而不做游標的移動。當然Vim及elvis的方向鍵是不論在那一種mode皆可移動自如。基本的游標移動h左或Backspace或方向鍵。j下或Enter或(要Shift鍵)或方向鍵。k上或方向鍵或–(不必Shift鍵)。l右或Space或方向鍵。Ctrlf即PageDown翻頁(Forward向前、下翻頁)。Crtlb即PageUp翻頁(Backward向後、上翻頁)。使用hjkl鍵的移動是為了使手不必離開打字區(鍵盤中央的部位)以加快打字的速度如果各位不習慣那就使用方向鍵吧!其實一旦習慣了以後對於編輯工作的效率會有很大的幫助而且有許多工作站的vi只能使用hjkl的移動方式因此可能的話盡量熟悉hjkl的游標移動。Backspace及Space的移動方式是到了行首或行尾時會折行但方向鍵或hl鍵的移動則在行首或行尾時您繼續按也不會折行。轉折換行的功能是Vim的擴充功能elvis無此功能。jk及使用方向鍵的上下移動游標會盡量保持在同一欄位。使用Enter–的上下移動游標會移至上(下)一行的第一個非空白字元處。好像有點複雜各位就暫時使用方向鍵來移動就簡單明白了!等您愛上了Vim後再來講究吧。第章游標的移動進階的游標移動進階的游標移動是數目字而不是英文字母o。或是Hmoe鍵移至行首(含空白字元)。ˆ移至行首第一個非空白字元注意要Shift鍵。$移至行尾或End鍵。要Shift鍵。G移至檔尾(全文最後一行的第一個非空白字元處)gg移至檔首(全文第一行之第一個非空白字元處)。在規則表示式(regularexpression)中ˆ是匹配行首$是匹配行尾。gg是Vim的擴充功能在elvis或原始vi中可用G來移至檔首(是數字不是英文字l)。G之原意是goto指移至指定數目行之行首如不指定數目則預設是最後一行。w移至次一個字(word)字首。當然是指英文單字。W同上但會忽略一些標點符號。e移至後一個字字尾。E同上但會忽略一些標點符號。b移至前一個字字首。B同上但會忽略一些標點符號。H移至螢幕頂第一個非空白字元。M移至螢幕中間第一個非空白字元。L移至螢幕底第一個非空白字元。這和PageDownPageUp不一樣內文內容並未動只是游標在動而已。n|移至第n個字元(欄)處。注意要用Shift鍵。n是從頭起算的。:n移至第n行行首。或nG。特殊的移動)移至下一個句子(sentence)首。(移至上一個句子(sentence)首。sentence(句子)是以!為區格。}移至下一個段落(paragraph)首。{移至上一個段落(paragraph)首。paragraph(段落)是以空白行為區格。這是匹配{}()用的例如游標在{上只要按就會跑到相匹配的}上。Administrator文本波浪线工具第章游標的移動特殊的移動另還有一些Vim的特殊按鍵但這得留待最後再來說明否則各位恐怕會頭昏眼花了。第章基本編輯指令這個單元就開始進入主題了。下編輯指令都是在常態模式就是您一進入Vim時的模式只能下指令不能鍵入文字。如果印象模糊請瞄一下第一個單元的內容。這個單元說的是基本的編輯指令有些比較特殊的編輯指令因為太有個性了所以會獨立成一個單元來說明。五種額外模式(additionalmode)這裡要對基本模式(請參考第節頁)外的五種額外模式做介紹以下的章節會有機會碰上。為什麼會有這麼多模式?這樣豈不是很易就搞混?其實一般編輯不必太在意一些模式您只要在各種模式下親自去操作幾次就會知道這些模式的作用不必特意去記憶他這些模式和基本模式都有連帶關係的。操作等待模式(operatorpendingmode)這其實和一般的常態模式一樣只不過是指在常態模式下了某些編輯指令等待其他動作的狀態。取代模式(replacemode)指下R指令時所處的狀態。請參考第節頁。在狀態列會有REPLACE字樣。第章基本編輯指令進入插入模式的指令插入常態模式(insertnormalmode)這是一個很特殊的模式在插入模式時進入輸入狀態但按CtrlO就會進入插入常態模式和常態模式一樣只不過執行完所下的指令後又會馬上返回原來的插入模式繼續輸入文字。狀態列會有(insert)字樣是小寫有小號的。插入反白模式(insertvisualmode)這和插入常態模式一樣只不過在按CtrlO後所執行的是反白的CtrlV或V或v而進入反白模式等反白模式結束又會返回原來的插入模式。狀態列會有(insert)VISUAL字樣。插入選擇模式(insertselectmode)這和插入反白模式一樣只不過進入的是選擇模式而非反白模式。狀態列會有(insert)SELECT字樣。進入插入模式的指令i在游標所在字元前開始輸入文字(insert)。a在游標所在字元後開始輸入文字(append)。o在游標所在行下開一新行來輸入文字(open)。I在行首開始輸入文字。此之行首指第一個非空白字元處要從真正的第一個字元處開始輸人文字可使用i或gI(Vim才有)。A在行尾開始輸入文字。這個好用您不必管游標在此行的什麼地方只要按A就會在行尾等著您輸入文字。O在游標所在行上開一新行來輸入文字。J將下一行整行接至本行(Joint)。並無相對的split功能可在插入模式下按Enter來達成當然如果您熟macro的話可自行定義。使用J時預設會消去本行的EOL(EndOfLine)字元且上下行接縫間會留下一個空白字元這符合英文習慣卻對中文會造成困擾欲不留空白字元可使用gJ(大寫J)指令但這是Vim的擴充功能elvis不適用。要和中文相容可參考底下會說明的重排功能的Vim第章基本編輯指令刪除指令script。請您隨便找一個檔案來試看看光看文字說明太抽象了。刪除指令x刪除游標所在處之字元在中文指一個中文字。在Vim及elvis亦可用Del鍵。X刪除游標前之字元。不可使用Backspace鍵除非是在插入模式。Vim可以正確使用以上兩個指令於中文會刪去一個中文字。elvis則不行一個中文字要刪兩次即使用xx。dd刪除一整行(deleteline)。dw刪除一個字(deleteword)。不能適用於中文。dG刪至檔尾。dG刪至檔首。或dgg(只能用於Vim)。D刪至行尾或d$(含游標所在處字元)。d刪至行首或dˆ(不含游標所在處字元)。請回憶一下$及ˆ所代表的意義您就可以理解d$及dˆ的動作這就是vi(m)可愛之處。取代及還原r取代游標所在處之字元。R進入取代模式(replacemode)取代字元至按Esc為止。cc取代整行內容。或大寫S亦可。cw替換一個英文字(word)中文不適用。(change)˜游標所在處字元之大小寫互換。當然不能用於中文。別忘了Shift!C取代至行尾即游標所在處以後的字都會被替換。或c$。c取代至行首或cˆ。s替換一個字元為您所輸入的字串。和R不同R是覆蓋式的取代s則是插入式的取代您可親自實驗看看。ㄟ!是小寫的s。u這個太重要了就是undo傳統的vi僅支援一次undoVim及elvis就不只了Vim幾乎是沒有限制的。U在游標沒離開本行之前回復所有編輯動作。Crtlr這個也是很重要就是redo鍵。第章基本編輯指令加上數目字Vim很有個性的您在常態模式按了r她就會停在那裡等主人鍵入所要替代的字元希望您這個當主人的不要傻呼呼的也楞在那裡趕快鍵入您的新字元吧!:)Vim中可用於中文字也就是可以替換一個中文字elvis則不行。當然您的Vim是要設在bigcp的才行。怎麼樣!有沒有看過如此有個性的取代方式?ㄚ!r就是replace啦!加上數目字喔!騷到Vim的癢處了這是Vim一個非常騷包的功能只此一家別無分號(當然同源的edsed等不在此限)。就是您可以在大部份的指令前加上數目字代表要處理幾次的意思。以下用實例來說明比較清楚。dd刪除游標所在處(含)起算以下五行內容。妙吧!r按了r後您鍵入一個英文字則三個字元皆會被您所鍵入的英文取代。只要

类似资料

编辑推荐

徐景藩脾胃病治验辑要(徐景藩).pdf

硬笔书法欣赏.pdf

小柴胡汤的研究与运用思路.ppt

阳明病篇(七版).ppt

uln2003中文资料.doc

职业精品

精彩专题

上传我的资料

精选资料

热门资料排行换一换

  • 中国纵横:一个汉学家的学术探索之…

  • 皇帝与秀才:皇权游戏中的文人悲剧…

  • 深奥的简洁:从溷沌、复杂到地球生…

  • 清算美国 (美)威廉·波纳等着.…

  • 古韵通晓.pdf

  • 三侠五义.pdf

  • 爱上统计学.pdf

  • 戈尔巴乔夫回忆录.pdf

  • 激荡的百年史——我们的果断措施和…

  • 资料评价:

    / 83
    所需积分:1 立即下载

    意见
    反馈

    返回
    顶部