Vim是(shi)一(yi)個類(lei)似于(yu)Vi的(de)(de)(de)(de)著名的(de)(de)(de)(de)功(gong)能強大、高度(du)可定制的(de)(de)(de)(de)文(wen)本(ben)編(bian)(bian)輯(ji)(ji)器,在Vi的(de)(de)(de)(de)基礎上(shang)改進和(he)增加了(le)很多特(te)性。VIM是(shi)自由軟(ruan)件(jian)。Vim普遍被(bei)(bei)推崇為類(lei)Vi編(bian)(bian)輯(ji)(ji)器中最好的(de)(de)(de)(de)一(yi)個,事實上(shang)真正的(de)(de)(de)(de)勁敵來自Emacs的(de)(de)(de)(de)不同變體。1999年Emacs被(bei)(bei)選為Linuxworld文(wen)本(ben)編(bian)(bian)輯(ji)(ji)分類(lei)的(de)(de)(de)(de)優勝者,Vim屈居第二。但(dan)在2000年2月Vim贏得了(le)Slashdot Beanie的(de)(de)(de)(de)最佳開放源代(dai)碼文(wen)本(ben)編(bian)(bian)輯(ji)(ji)器大獎(jiang),又將Emacs推至(zhi)二線(xian),總的(de)(de)(de)(de)來看,Vim和(he)Emacs在文(wen)本(ben)編(bian)(bian)輯(ji)(ji)方面都是(shi)非(fei)常優秀(xiu)的(de)(de)(de)(de)。
在插(cha)入(ru)模式之外基本上(shang)來說(shuo),盡可能少的(de)呆在插(cha)入(ru)模式里(li)面,因為在插(cha)入(ru)模式里(li)面VIM就(jiu)像一個“啞巴”編(bian)輯器一樣。VIM的(de)強大(da)之處在于他的(de)命令模式!
使用h、j、k、l
使(shi)用(yong)VIM高(gao)效率編輯的(de)(de)第一步,就(jiu)是放棄使(shi)用(yong)箭(jian)頭鍵。使(shi)用(yong)VIM就(jiu)不用(yong)頻繁(fan)的(de)(de)在箭(jian)頭鍵和字母鍵之間移來移去了,這會節(jie)省很(hen)多時間。當命令模式時,可以用(yong)h、j、k、l來分別(bie)實現左(zuo)、下、上、右箭(jian)頭的(de)(de)功能。
在當前(qian)行里面有效(xiao)的移動光標
很多(duo)編輯器只提供(gong)了(le)簡單的(de)(de)(de)命(ming)(ming)令(ling)(ling)來控(kong)制光(guang)標(biao)(biao)的(de)(de)(de)移動(dong)(比(bi)如左、上、右(you)、下(xia)、到行首/尾等(deng))。VIM則提供(gong)了(le)很多(duo)強大的(de)(de)(de)命(ming)(ming)令(ling)(ling)來滿足控(kong)制光(guang)標(biao)(biao)的(de)(de)(de)欲望。當光(guang)標(biao)(biao)從一(yi)點(dian)(dian)移動(dong)到另(ling)外(wai)一(yi)點(dian)(dian),在這兩(liang)(liang)點(dian)(dian)之間的(de)(de)(de)文(wen)本(ben)(包(bao)括這兩(liang)(liang)個點(dian)(dian))稱(cheng)作被“跨過”,這里(li)的(de)(de)(de)命(ming)(ming)令(ling)(ling)也(ye)被稱(cheng)作是motion。
在整(zheng)個文件里面有(you)效移動光標(biao)
VIM有很(hen)多命令,可以用來到達(da)文件里面你想(xiang)到達(da)的地方(fang)。
使用關鍵詞自動完成
VIM有一個非常漂亮的關鍵詞自動完成系統。使用關鍵詞自動完成功能,只需要輸入開始幾個字母(比如iAmAL),然后按
聰明的進入插入模(mo)式
VIM提供了很多進入(ru)插入(ru)模式(shi)的命令(ling)。
有效的(de)(de)移(yi)動大段的(de)(de)文本
使(shi)用可(ke)視選(xuan)擇(visual selections)和合適的(de)選(xuan)擇模式。不(bu)像最(zui)初(chu)的(de)VI,VIM允許你高亮(選(xuan)擇)一些文本,并(bing)且進(jin)行操作。
在可視選擇模式下剪(jian)切和拷貝
粘貼
粘(zhan)貼(tie)很(hen)簡(jian)單,按p。
使用多重剪貼板
很多編輯器(qi)都只(zhi)提供了一個剪貼板。VIM有很多。剪貼板在VIM里面被稱(cheng)為(wei)寄存(cun)(cun)器(qi)(Registers)。你可以列出當(dang)前(qian)定(ding)義的(de)所有寄存(cun)(cun)器(qi)名和它們的(de)內容,命令為(wei)“:reg”。最好使用小寫字母(mu)來作為(wei)寄存(cun)(cun)器(qi)的(de)名稱(cheng),因(yin)為(wei)大(da)寫的(de)有些被VIM占用了。
避免重復
在VI里面,輸入(ru).(小數點符號),將會重復輸入(ru)的上一個命令。
使用(yong)數字也(ye)是VIM強大的(de)而(er)且很(hen)節省時間的(de)重要(yao)特性之一。在很(hen)多VIM的(de)命(ming)令之前(qian)都(dou)可(ke)以使用(yong)一個數字。
Vim有許(xu)多有用的(de)功能,可以(yi)與(yu)現代文(wen)(wen)本編輯器競爭,如(ru)Sublime Text,Atom,UltraEdit或jEdit。它們包(bao)括支(zhi)(zhi)(zhi)持正則表達式的(de)搜索(suo),輕松重復(fu)命令(ling)的(de)能力,直接記錄和執行宏(hong),自動完成(cheng),文(wen)(wen)件合并,鼠標集成(cheng),拼(pin)寫檢查,語法突出顯示,分(fen)支(zhi)(zhi)(zhi)撤消/重做歷史,支(zhi)(zhi)(zhi)持流行網絡協議(yi)和文(wen)(wen)件存檔格式等。
雖然Vim的(de)(de)功能令人印象深(shen)刻(ke),但其(qi)真正的(de)(de)優勢在于其(qi)可(ke)擴展性。Vim有自(zi)己的(de)(de)腳本語(yu)(yu)言,稱(cheng)為Vim腳本(也稱(cheng)為vimscript或VimL),用(yong)戶可(ke)以(yi)通過多種方式(shi)使用(yong)它來增(zeng)強Vim,例如為其(qi)他編程語(yu)(yu)言啟(qi)用(yong)語(yu)(yu)法高亮,自(zi)動(dong)化語(yu)(yu)法檢查或將Vim與其(qi)他應用(yong)程序(xu)和服務(wu)。
大多數經驗豐富(fu)的(de)Vim用戶很(hen)難想象在沒有(you)任何腳(jiao)本的(de)情況下使用文(wen)本編(bian)輯器,并(bing)且有(you)很(hen)多可供選擇。Vim Awesome是(shi)世(shi)界上最大的(de)Vim腳(jiao)本目錄之一(yi),其中(zhong)包含超(chao)過18,000個(ge)。一(yi)些最值(zhi)得注意的(de)Vim腳(jiao)本包括vim-multiple-cursors,它(ta)允許您(nin)創建(jian)多個(ge)選擇,NERDTree,它(ta)在側(ce)面板中(zhong)顯示交(jiao)互(hu)式(shi)文(wen)件樹視圖,以及(ji)Emmet,一(yi)個(ge)強大的(de)HTML,CSS和(he)JavaScript完成工具。
除了可擴展性之外,Vim還具有高度可配置性,包含(han)Vim核(he)心全局設置(稱為(wei)vimrc)的文(wen)(wen)件(jian)(jian)可以在各(ge)個Vim安裝(zhuang)之間(jian)共享。如果您(nin)不想在閑(xian)暇時間(jian)搞(gao)亂設置和編輯配置文(wen)(wen)件(jian)(jian)但仍希望(wang)充分發揮Vim的優勢,可以從互(hu)聯(lian)網上下載(zai)許多現成(cheng)配置文(wen)(wen)件(jian)(jian)中的一個,或者使用Vim等工具創建一個配置。
Bram Moolenaar在80年代末購入他的(de)Amiga計算機時(shi),Amiga上沒有(you)他最常(chang)用(yong)(yong)的(de)編輯器vi。Bram從一個開(kai)源(yuan)的(de)vi復制(zhi)Stevie開(kai)始,開(kai)發了 Vim的(de)1.0版(ban)本。最初的(de)目標只(zhi)是(shi)完全復制(zhi)vi的(de)功能(neng),那個時(shi)候(hou)的(de)Vim是(shi)Vi IMitation(模擬)的(de)簡稱。1991年Vim1.14版(ban)被"Fred Fish Disk#591" ——Amiga用(yong)(yong)的(de)免費軟(ruan)體集收錄了。1992年1.22版(ban)本的(de)Vim被移植(zhi)到了UNIX和MS-DOS上。從那個時(shi)候(hou)開(kai)始,Vim的(de)全名(ming)就變成ViIMproved了。
在這(zhe)之(zhi)后(hou),Vim加(jia)(jia)(jia)入(ru)了(le)(le)(le)(le)不計其數(shu)(shu)的(de)(de)(de)(de)新功(gong)能。做為第一個(ge)里程碑的(de)(de)(de)(de)是1994年(nian)(nian)(nian)(nian)的(de)(de)(de)(de)3.0版(ban)(ban)本(ben)(ben)加(jia)(jia)(jia)入(ru)了(le)(le)(le)(le)多(duo)(duo)視(shi)(shi)窗(chuang)編輯模式(分割(ge)(ge)視(shi)(shi)窗(chuang))。從那之(zhi)后(hou),同(tong)一熒幕可以(yi)顯示的(de)(de)(de)(de)Vim編輯文(wen)件數(shu)(shu)可以(yi)不止一個(ge)了(le)(le)(le)(le)。1996年(nian)(nian)(nian)(nian)發(fa)布的(de)(de)(de)(de)Vim4.0是第一個(ge)利用(yong)圖形接口(GUI)的(de)(de)(de)(de)版(ban)(ban)本(ben)(ben)。1998年(nian)(nian)(nian)(nian)5.0版(ban)(ban)本(ben)(ben)的(de)(de)(de)(de)Vim加(jia)(jia)(jia)入(ru)了(le)(le)(le)(le) highlight(語法高亮)功(gong)能。2001年(nian)(nian)(nian)(nian)的(de)(de)(de)(de)Vim6.0版(ban)(ban)本(ben)(ben)加(jia)(jia)(jia)入(ru)了(le)(le)(le)(le)代碼折疊、插件、多(duo)(duo)國語言支持、垂直分割(ge)(ge)視(shi)(shi)窗(chuang)等(deng)功(gong)能。2006年(nian)(nian)(nian)(nian)5月發(fa)布的(de)(de)(de)(de)Vim7.0版(ban)(ban)更加(jia)(jia)(jia)入(ru)了(le)(le)(le)(le)拼字(zi)檢查、上下文(wen)相關(guan)補(bu)完(wan),標簽頁(ye)編輯等(deng)新功(gong)能。2008年(nian)(nian)(nian)(nian)8月發(fa)布的(de)(de)(de)(de)Vim7.2,該版(ban)(ban)本(ben)(ben)合并了(le)(le)(le)(le)vim7.1以(yi)來的(de)(de)(de)(de)所有修(xiu)正補(bu)丁,并且(qie)加(jia)(jia)(jia)入(ru)了(le)(le)(le)(le)腳本(ben)(ben)的(de)(de)(de)(de)浮點數(shu)(shu)支持,2010年(nian)(nian)(nian)(nian)08月15日(ri),歷時兩(liang)年(nian)(nian)(nian)(nian)的(de)(de)(de)(de)時間,vim又發(fa)布了(le)(le)(le)(le)vim7.3這(zhe)個(ge)版(ban)(ban)本(ben)(ben),這(zhe)個(ge)版(ban)(ban)本(ben)(ben)修(xiu)復了(le)(le)(le)(le)前(qian)面版(ban)(ban)本(ben)(ben)的(de)(de)(de)(de)一些bug,以(yi)及添加(jia)(jia)(jia)了(le)(le)(le)(le)一些新的(de)(de)(de)(de)特(te)征,這(zhe)個(ge)版(ban)(ban)本(ben)(ben)比前(qian)面幾個(ge)版(ban)(ban)本(ben)(ben)來的(de)(de)(de)(de)要更加(jia)(jia)(jia)優秀。
十(shi)(shi)年(nian)以后(hou),Vim終于發布了一(yi)個新(xin)的(de)大版(ban)本(ben)8.0,結束了從(cong)2006年(nian)5月7日(ri)開始的(de)7.0世代。雖然這十(shi)(shi)年(nian)間,Vim也一(yi)直在不(bu)斷更(geng)新(xin),從(cong)7.0到三年(nian)前的(de)7.4,每隔(ge)一(yi)兩(liang)年(nian)或(huo)兩(liang)三年(nian)就會有個小版(ban)本(ben)更(geng)新(xin),但是這次跨越大版(ban)本(ben)更(geng)新(xin),帶來了不(bu)少新(xin)的(de)特(te)性(xing),據說有一(yi)些是從(cong)其它(ta)的(de) Vi流派吸收來的(de)特(te)性(xing)。
2018年又發(fa)布了Vim8.1版本,Vim8.1的主要新功(gong)能是支(zhi)持在Vim窗(chuang)口(kou)中(zhong)運行終端。它建立在Vim8.0中(zhong)添(tian)加的異步功(gong)能之上。終端窗(chuang)口(kou)可用(yong)于多種用(yong)途,也(ye)用(yong)于測(ce)試,以獲取屏幕(mu)截圖并(bing)將其與預期狀態進行比較。這允許(xu)測(ce)試交互式(shi)操作,例(li)如彈出菜(cai)單。