Vim是一個類似于Vi的著名的功能強大、高度可定制的文本編輯器,在Vi的基礎上改進和增加了很多特性。VIM是自由軟件。Vim普遍被推崇為類Vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。1999 年Emacs被選為Linuxworld文本編輯分類的優(yōu)勝者,Vim屈居第二。但在2000年2月Vim贏得了Slashdot Beanie的最佳開放源代碼文本編輯器大獎,又將Emacs推至二線, 總的來看, Vim和Emacs在文本編輯方面都是非常優(yōu)秀的。
簡介Vim是從 vi 發(fā)展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用,和Emacs并列成為類Unix系統(tǒng)用戶最喜歡的文本編輯器。
vim的設計理念是命令的組合。用戶學習了各種各樣的文本間移動/跳轉(zhuǎn)的命令和其他的普通模式的編輯命令,并且能夠靈活組合使用的話,能夠比那些沒有模式的編輯器更加高效的進行文本編輯。同時VIM與很多快捷鍵設置和正則表達式類似,可以輔助記憶。并且vim針對程序員做了優(yōu)化。1
發(fā)展歷程Bram Moolenaar 在 80 年代末購入他的Amiga計算機時,Amiga 上沒有他最常用的編輯器vi。Bram 從一個開源的 vi 復制 Stevie 開始,開發(fā)了 Vim 的 1.0 版本。最初的目標只是完全復制 vi 的功能,那個時候的 Vim 是Vi IMitation(模擬)的簡稱。1991 年 Vim 1.14 版被 "Fred Fish Disk #591" ——Amiga 用的免費軟體集收錄了。1992 年 1.22 版本的 Vim 被移植到了 UNIX 和MS-DOS上。從那個時候開始,Vim 的全名就變成 Vi IMproved了。
在這之后,Vim 加入了不計其數(shù)的新功能。做為第一個里程碑的是 1994 年的 3.0 版本加入了多視窗編輯模式(分割視窗)。從那之后,同一熒幕可以顯示的 Vim 編輯文件數(shù)可以不止一個了。1996 年發(fā)布的 Vim 4.0 是第一個利用圖形接口(GUI)的版本。1998 年 5.0 版本的 Vim 加入了 highlight(語法高亮)功能。2001 年的 Vim 6.0 版本加入了代碼折疊、插件、多國語言支持、垂直分割視窗等功能。2006 年 5 月發(fā)布的 Vim 7.0 版更加入了拼字檢查、上下文相關補完,標簽頁編輯等新功能。 2008 年 8 月發(fā)布的 Vim 7.2,該版本合并了 vim 7.1 以來的所有修正補丁,并且加入了腳本的浮點數(shù)支持,2010年08月15日,歷時兩年的時間,vim又發(fā)布了vim 7.3這個版本,這個版本修復了前面版本的一些bug,以及添加了一些新的特征,這個版本比前面幾個版本來的要更加優(yōu)秀。
十年以后,Vim 終于發(fā)布了一個新的大版本 8.0,結束了從 2006 年 5 月 7 日開始的 7.0 世代。雖然這十年間,Vim 也一直在不斷更新,從 7.0 到三年前的 7.4,每隔一兩年或兩三年就會有個小版本更新,但是這次跨越大版本更新,帶來了不少新的特性,據(jù)說有一些是從其它的 Vi 流派吸收來的特性。
VIM優(yōu)點高效率移動在插入模式之外基本上來說,盡可能少的呆在插入模式里面,因為在插入模式里面 VIM 就像一個“啞巴”編輯器一樣。 VIM 的強大之處在于他的命令模式!
使用 h、j、k、l
使用 VIM 高效率編輯的第一步,就是放棄使用箭頭鍵。使用 VIM就不用頻繁的在箭頭鍵和字母鍵之間移來移去了,這會節(jié)省很多時間。當命令模式時,可以用 h、j、k、l 來分別實現(xiàn)左、下、上、右箭頭的功能。
在當前行里面有效的移動光標
很多編輯器只提供了簡單的命令來控制光標的移動(比如左、上、右、下、到行首/尾等)。VIM 則提供了很多強大的命令來滿足控制光標的欲望。當光標從一點移動到另外一點,在這兩點之間的文本(包括這兩個點)稱作被“跨過”,這里的命令也被稱作是 motion。
在整個文件里面有效移動光標
VIM 有很多命令,可以用來到達文件里面你想到達的地方。1
高效的輸入使用關鍵詞自動完成
VIM 有一個非常漂亮的關鍵詞自動完成系統(tǒng)。使用關鍵詞自動完成功能,只需要輸入開始幾個字母(比如 iAmAL),然后按 (按住 Ctrl,再按 N)或者 。如果 VIM 沒有給出你想要的詞,繼續(xù)按,直到你滿意為止,VIM 會一直循環(huán)它找到的匹配的字符串。
聰明的進入插入模式
VIM 提供了很多進入插入模式的命令。
有效的移動大段的文本
使用可視選擇(visual selections)和合適的選擇模式。不像最初的 VI,VIM 允許你高亮(選擇)一些文本,并且進行操作。
在可視選擇模式下剪切和拷貝
粘貼
粘貼很簡單,按 p。
使用多重剪貼板
很多編輯器都只提供了一個剪貼板。VIM 有很多。剪貼板在 VIM 里面被稱為寄存器(Registers)。你可以列出當前定義的所有寄存器名和它們的內(nèi)容,命令為“:reg”。最好使用小寫字母來作為寄存器的名稱,因為大寫的有些被 VIM 占用了。
避免重復
在 VI 里面,輸入 . (小數(shù)點符號),將會重復輸入的上一個命令。
使用數(shù)字也是 VIM 強大的而且很節(jié)省時間的重要特性之一。在很多 VIM 的命令之前都可以使用一個數(shù)字。2
本詞條內(nèi)容貢獻者為:
徐恒山 - 講師 - 西北農(nóng)林科技大學