開(kāi)發(fā)者和系統(tǒng)管理者最喜愛(ài)的開(kāi)源工具Vim 起步學(xué)習(xí)的五個(gè)技巧
多年來(lái),我一直想學(xué) Vim。如今 Vim 是我最喜歡的 Linux 文本編輯器,也是開(kāi)發(fā)者和系統(tǒng)管理者最喜愛(ài)的開(kāi)源工具。我說(shuō)的學(xué)習(xí),指的是真正意義上的學(xué)習(xí)。想要精通確實(shí)很難,所以我只想要達(dá)到熟練的水平。我使用了這么多年的 Linux ,我會(huì)的也僅僅只是打開(kāi)一個(gè)文件,使用上下左右箭頭按鍵來(lái)移動(dòng)光標(biāo),切換到插入模式,更改一些文本,保存,然后退出。
但那只是 Vim 的最最基本的操作。我的技能水平只能讓我在終端使用 Vim 修改文本,但是它并沒(méi)有任何一個(gè)我想象中強(qiáng)大的文本處理功能。這樣我完全無(wú)法用 Vim 發(fā)揮出勝出 Pico 和 Nano 的能力。
所以到底為什么要學(xué)習(xí) Vim?因?yàn)槲一ㄙM(fèi)了相當(dāng)多的時(shí)間用于編輯文本,而且我知道還有很大的效率提升空間。為什么不選擇 Emacs,或者是更為現(xiàn)代化的編輯器例如 Atom?因?yàn)?Vim 適合我,至少我有一丁點(diǎn)的使用經(jīng)驗(yàn)。而且,很重要的一點(diǎn)就是,在我需要處理的系統(tǒng)上很少碰見(jiàn)沒(méi)有裝 Vim 或者它的弱化版(Vi)。如果你有強(qiáng)烈的欲望想學(xué)習(xí)對(duì)你來(lái)說(shuō)更給力的 Emacs,我希望這些對(duì)于 Emacs 同類編輯器的建議能對(duì)你有所幫助。
花了幾周的時(shí)間專注提高我的 Vim 使用技巧之后,我想分享的***個(gè)建議就是必須使用它。雖然這看起來(lái)就是明知故問(wèn)的回答,但事實(shí)上它比我所預(yù)想的計(jì)劃要困難一些。我的大多數(shù)工作是在網(wǎng)頁(yè)瀏覽器上進(jìn)行的,而且每次我需要在瀏覽器之外打開(kāi)并編輯一段文本時(shí),就需要避免下意識(shí)地打開(kāi) Gedit。Gedit 已經(jīng)放在了我的快速啟動(dòng)欄中,所以***步就是移除這個(gè)快捷方式,然后替換成 Vim 的。
為了更好的學(xué)習(xí) Vim,我嘗試了很多。如果你也正想學(xué)習(xí),以下列舉了一些作為推薦。
Vimtutor
通常如何開(kāi)始學(xué)習(xí)***就是使用應(yīng)用本身。我找到一個(gè)小的應(yīng)用叫 Vimtutor,當(dāng)你在學(xué)習(xí)編輯一個(gè)文本時(shí)它能輔導(dǎo)你一些基礎(chǔ)知識(shí),它向我展示了很多我這些年都忽視的基礎(chǔ)命令。Vimtutor 一般在有 Vim 的地方都能找到它,如果你的系統(tǒng)上沒(méi)有 Vimtutor,Vimtutor 可以很容易從你的包管理器上安裝。
GVim
我知道并不是每個(gè)人都認(rèn)同這個(gè),但就是它讓我從使用終端中的 Vim 轉(zhuǎn)戰(zhàn)到使用 GVim 來(lái)滿足我基本編輯需求。反對(duì)者表示 GVim 鼓勵(lì)使用鼠標(biāo),而 Vim 主要是為鍵盤黨設(shè)計(jì)的。但是我能通過(guò) GVim 的下拉菜單快速找到想找的指令,并且 GVim 可以提醒我正確的指令然后通過(guò)敲鍵盤執(zhí)行它。努力學(xué)習(xí)一個(gè)新的編輯器然后陷入無(wú)法解決的困境,這種感覺(jué)并不好受。每隔幾分鐘讀一下 man 出來(lái)的文字或者使用搜索引擎來(lái)提醒你該用的按鍵序列也并不是***的學(xué)習(xí)新事物的方法。
鍵盤表
當(dāng)我轉(zhuǎn)戰(zhàn) GVim,我發(fā)現(xiàn)有一個(gè)鍵盤的“速查表”來(lái)提醒我最基礎(chǔ)的按鍵很是便利。網(wǎng)上有很多這種可用的表,你可以下載、打印,然后貼在你身邊的某一處地方。但是為了我的筆記本鍵盤,我選擇買一沓便簽紙。這些便簽紙?jiān)诿绹?guó)不到 10 美元,當(dāng)我使用鍵盤編輯文本,嘗試新的命令的時(shí)候,可以隨時(shí)提醒我。
vim cheat sheet
Vimium
上文提到,我工作都在瀏覽器上進(jìn)行。其中一條我覺(jué)得很有幫助的建議就是,使用 Vimium 來(lái)用增強(qiáng)使用 Vim 的體驗(yàn)。Vimium 是 Chrome 瀏覽器上的一個(gè)開(kāi)源插件,能用 Vim 的指令快捷操作 Chrome。我發(fā)現(xiàn)我只用了幾次使用快捷鍵切換上下文,就好像比之前更熟悉這些快捷鍵了。同樣的擴(kuò)展 Firefox 上也有,例如 Vimerator。
Vimium
其它人
毫無(wú)疑問(wèn),***的學(xué)習(xí)方法就是求助于在你之前探索過(guò)的人,讓他給你建議、反饋和解決方法。
如果你住在一個(gè)大城市,那么附近可能會(huì)有一個(gè) Vim meetup 小組,或者還有 Freenode IRC 上的 #vim 頻道。#vim 頻道是 Freenode 上最活躍的頻道之一,那上面可以針對(duì)你個(gè)人的問(wèn)題來(lái)提供幫助。聽(tīng)上面的人發(fā)發(fā)牢騷或者看看別人嘗試解決自己沒(méi)有遇到過(guò)的問(wèn)題,僅僅是這樣我都覺(jué)得很有趣。
那么,現(xiàn)在怎么樣了?到現(xiàn)在為止還不錯(cuò)。為它所花的時(shí)間是否值得就在于之后它為你節(jié)省了多少時(shí)間。但是當(dāng)我發(fā)現(xiàn)一個(gè)新的按鍵序列可以來(lái)跳過(guò)詞,或者一些相似的小技巧,我經(jīng)常會(huì)收獲意外的驚喜與快樂(lè)。每天我至少可以看見(jiàn),一點(diǎn)點(diǎn)的回報(bào),正在逐漸配得上當(dāng)初的付出。
Vim Advantures學(xué)習(xí) Vim 并不僅僅只有這些建議,還有很多。我很喜歡指引別人去 Vim Advantures,它是一種使用 Vim 按鍵方式進(jìn)行移動(dòng)的在線游戲。而在另外一天我在 Vimgifts.com 發(fā)現(xiàn)了一個(gè)非常神奇的虛擬學(xué)習(xí)工具,那可能就是你真正想要的:用一個(gè)小小的 gif 動(dòng)圖來(lái)描述 Vim 操作。
你有花時(shí)間學(xué)習(xí) Vim 嗎?或者是任何需要大量鍵盤操作的程序?那些經(jīng)過(guò)你努力后掌握的工具,你認(rèn)為這些努力值得嗎?效率的提高有沒(méi)有達(dá)到你的預(yù)期?分享你們的故事在下面的評(píng)論區(qū)吧。