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