學Vim的啟示
談Vim
如果你是一位程式設計師,那麼你多半聽過、或碰過Vim。
這裡替沒聽過Vim的朋友解釋一下。Vim是一個編輯器程式,就跟你Windows電腦裡的記事本、Notepad++一樣,你可以用他來編輯一些文字檔案。但Vim不是設計給一般使用者使用的,他只有簡明的編輯畫面,不能用滑鼠控制,就連移動游標都是靠鍵盤來完成。Vim在程式設計師的世界裡有著編輯器之神的美譽(請不要跟我拿神之編輯器來戰,這不是重點),因為程式設計師工作一整天,幾乎每個小時都黏在編輯器上面,有一個順手的工具是很重要的。
但Vim有一個惡名昭彰(?)的學習曲線。對初學者來說不好上手,因為不能使用滑鼠,所以每件事情都要透過敲鍵盤下指令完成。存檔敲鍵盤、搜尋取代敲鍵盤、移動游標敲鍵盤、打字刪除敲鍵盤。Vim就像一匹野馬,他必須要被程式設計師馴服,基於使用習慣,建立自訂的快捷鍵後,才會變得好用,但這也代表著必須花費很長的一段時間。
從初次接觸Vim、學習並適應Vim、到現在堪用但不擅用Vim,我對於那些常常在使用Vim的高手會有一種莫名的憧憬,我想大多數的程式設計師或是外行人都是這樣吧,看到終端機的黑畫面先敬畏三分。周遭大神的電腦多半是白Mac配終端機的黑畫面(大神的Mac一定要是Air),因為那隱約代表著我知道我他媽的在幹嘛,用純文字來操作效率更好。
Learn Vim Like a Boss
這幾天,剛好工作告一段落,稍微有些空閒,我決定研究看看如何像大神般使用Vim。我想要體會那種敲敲幾個鍵,檔案就照著我的意思修改,那種效率大增、感覺自己像個大師的感覺。或許也是潛意識吧,我隱約覺得高手們多半善用Vim,因次想變強一定要學好Vim(很經典的邏輯推論錯誤XD)。
原本的目標是我希望我的Vim 能和IDE一樣方便,於是我上網搜尋後,找到一篇談論「像IDE一樣使用Vim」的文章,但我很快就發現這篇文章對我來說太深,他使用了各種套件,致力於讓Vim達成像IDE一樣的功能。但我覺得我應該要先把Vim的基本功能學好,讓Vim所思 及所得,想到什麼手指就自動修改好,再來談讓Vim像IDE一樣工作。
於是我找到一本電子書,叫做 Practical Vim: Edit Text at the Speed of Thought,我花了幾天的時間,挑選幾個章節做練習。這是一本很適合Vim初學到進階的書,每個章節都可以單獨閱讀,你可以學習到很多基本但常用的功能,例如根據需求移動游標、管理多個檔案、搜尋取代、還有很多有用的command,我相信只要把這些學好,你使用Vim的效率會大幅增加。
但學了幾個章節後我又厭倦了,因為要學的東西實在是太多,常常讀沒幾章就會想睡覺。我明白這些都是基本功,但是令人傻眼的是「怎麼那麼多基本功啊啊啊啊~~」。
剛好在搜尋問題解答的途中,我發現了一篇很棒的教學,叫做Learn Vimscript the Hard Way,這是一本免費的電子書。要知道Vim所有的外掛都是透過Vim Script寫成的,想要擅長Vim,搞懂VimScript是必須的。作者在本書的開頭開宗明義:「請一定要照著本書的範例練習一次,並且完成所有的Exercise,我保證你練習完後一定會發現自己的進步。」
天啊~一定會發現自己的進步,太帥了~於是我就很乖的把前十五個章節都看完並練習一遍。但老實說,練習的過程蠻乏味的,雖然作者盡可能的讓練習題貼近日常使用所需(例如:建立一個可以讓你迅速編輯.vimrc的快捷鍵),但是總覺得這實在是太慢了。我有感覺到自己的進步,我能夠使用並建立簡單的快捷鍵,但總覺得還少了某些東西,距離目標「讓Vim和IDE一樣方邊」還好遠。