你會(huì)愛(ài)Vim編輯器的七個(gè)理由
當(dāng)我剛剛開(kāi)始用 vi 文本編輯器的時(shí)候,我憎恨它!我認(rèn)為這是有史以來(lái)設(shè)計(jì)上最痛苦和反人類(lèi)的編輯器。但我還是決定我必須學(xué)會(huì)它,因?yàn)槿绻闶褂玫氖? Unix,vi 無(wú)處不在并且是唯一一個(gè)保證你可以使用的編輯器。在 1998 年是如此,但是直到今天 vi 也仍然是可用的,現(xiàn)有的幾乎每個(gè)發(fā)行版中,vi 基本上都是基礎(chǔ)安裝的一部分。
在我學(xué)會(huì)能使用任何功能前,我已經(jīng)在 vi 上花費(fèi)差不多 1 個(gè)月的時(shí)間,但是我仍然不喜歡它。不過(guò)那時(shí)我已經(jīng)意識(shí)到有個(gè)強(qiáng)大的編輯器隱藏在這個(gè)古怪的外表后面。所以我堅(jiān)持使用它,并且最終發(fā)現(xiàn)一旦你知道你在干什么,它就是一個(gè)快的令人難以置信的編輯器。
“vi” 這個(gè)名稱(chēng)是 “可視(visual)” 的縮寫(xiě)。在 vi 出現(xiàn)的時(shí)候,行編輯器是很普遍的,能一次性顯示并編輯多個(gè)行是非同尋常的。Vim,來(lái)自“Vi IMproved”的縮寫(xiě),最初由 Bram Moolenaar 發(fā)布于 1991 年,它成為了主要的仿 vi 軟件,并且擴(kuò)展了這個(gè)強(qiáng)大的編輯器已有的功能。Vim 強(qiáng)大的正則表達(dá)式和“:”命令行語(yǔ)法開(kāi)始于行編輯和電傳打字機(jī)時(shí)代。
Vim,有 40 年的歷史了,有足夠的時(shí)間發(fā)展出海量而復(fù)雜的技巧,即使是懂得最多的用戶(hù)都不能完全掌握它。這里列出了一些愛(ài) Vim 的理由:
- 配色方案:你可能知道 Vim 有彩色語(yǔ)法高亮。但你知道可以下載數(shù)以百計(jì)的配色方案么?在這找到些更好的。
- 你再也不需要讓你的手離開(kāi)鍵盤(pán)或者去碰觸鼠標(biāo)。
- Vi 或者 Vim 存在任何地方,甚至在 OpenWRT 里面也有 vi(好吧,其實(shí)是在 BusyBox中,它挺好用的)。
- Vimscript:你可能會(huì)想重映射幾個(gè)鍵,但是你知道 Vim 有自己的編程語(yǔ)言么?你可以重新定義你的編輯器的行為,或者創(chuàng)造特定語(yǔ)言的編輯器擴(kuò)展。(最近我在定制 Vim 用于 Ansible 的行為。)學(xué)習(xí)這個(gè)語(yǔ)言***的切入點(diǎn)是看 Steve Losh 著名的書(shū)《Learn Vimscript the Hard Way》。
- Vim 有插件。使用 vundle(我用的就是它)或者 Pathogen 來(lái)管理你的插件來(lái)提升 Vim 的功能。
- 插件可以將 git(或者你選擇的 VCS)集成到 Vim 中。
- 有龐大而活躍的線(xiàn)上社區(qū),如果你在線(xiàn)上提問(wèn)關(guān)于 Vim 的問(wèn)題,肯定會(huì)有人回答。
我一開(kāi)始討厭 vi 的可笑之處在于,這 5 年來(lái)不斷的在嘗試新的編輯器中碰壁,總是想找到“一些更好的”。我從來(lái)沒(méi)有像討厭 vi 一樣討厭過(guò)其它的編輯器,現(xiàn)在我已經(jīng)使用它 17 年了,因?yàn)槲蚁胂蟛怀鲆粋€(gè)更好的編輯器。額,或許有稍微好一點(diǎn)的:可以嘗試下 Neovim -這是未來(lái)的主流??雌饋?lái) Bram Moolenaar 將會(huì)把 Neovim 的大部分融入到 Vim 第 8 版中,這意味著將會(huì)在現(xiàn)有的代碼基礎(chǔ)上減少 30%、更好的代碼補(bǔ)全功能、真正的異步、內(nèi)置終端、內(nèi)置鼠標(biāo)支持、完全兼容。
在本文作者在多倫多的 LinuxCon 演講中(LCTT 譯注:LinuxCon 是 Linux 基金會(huì)舉辦的年度會(huì)議),他解釋了一些在你可能錯(cuò)過(guò)的、過(guò)去四十年增加的雜亂的擴(kuò)展和改進(jìn)。這個(gè)內(nèi)容不適合初學(xué)者,所以如果你不知道為什么 “hjklia:wq”是很重要的,這就可能不是講給你聽(tīng)的。它還會(huì)涉及一點(diǎn)關(guān)于 vi 的歷史,因?yàn)橹酪恍v史能幫助我們理解我們的處境。關(guān)注他的演講能讓你知道如何使你最喜歡的編輯器更好更快。