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