原文鏈接:Vim - 適合自己的,才是最好的
Vim 被稱為編輯器之神,是我用過之后才體會(huì)到的,用之前實(shí)在不敢對(duì)它做出什么評(píng)價(jià)。在大學(xué)時(shí)代,Vim 的大名就已如雷貫耳,但由于它陡峭的學(xué)習(xí)曲線,一直望而卻步。等真正開始學(xué)習(xí)之后,發(fā)現(xiàn)并沒有想象中的復(fù)雜,也沒有所謂的瓶頸,只要在實(shí)際寫代碼中強(qiáng)迫自己使用就可以了,無形中就會(huì)形成習(xí)慣。最初的不適,換來的是效率的飛升。這和我當(dāng)初學(xué)習(xí)雙拼的感覺一樣。下圖是我的 Vim 界面:

學(xué)習(xí)方式
我一開始也是看了很多教程,這里我就不說具體的學(xué)習(xí)方法了,因?yàn)?Google 上一搜一大堆。
我只想談一點(diǎn):很多「過來人」告誡新手,一開始使用 Vim 一定不能使用插件,要從最純凈的 Vim 開始練習(xí)。他們認(rèn)為一上手就使用別人的配置,很容易被別人影響,不能領(lǐng)會(huì)到自己配置 Vim,這種從無到有的感覺。雖然我也很喜歡折騰的感覺,但這對(duì)于學(xué)習(xí)、入門一個(gè)工具來說有點(diǎn)南轅北轍,我們學(xué)習(xí)一個(gè)工具就是為了用好它,或者用它來為我們服務(wù)。為什么要我們?nèi)ミm應(yīng)它呢?也許這不符合 Vim 的哲學(xué),但是我覺得:
- Vim 存在這么多年,已經(jīng)有很多優(yōu)秀的 Vim 配置(比如:spf13-vim),可以為我們節(jié)省很多折騰的時(shí)間。不過如果你非常喜歡折(zuo)騰(si),那也可以從頭開始。
- 對(duì)于新手來說,自己的配置總是很不成熟,到頭來還是得參考一些高手的配置。索性一開始用他們的,慢慢刪改。
- 從純凈版開始你會(huì)覺得很枯燥,Vim 遠(yuǎn)沒別人口中、視頻中所述的酷炫,效率不升反降。這很容易喪失進(jìn)階的興趣。
- 天下武功,唯快不破,這個(gè)時(shí)代求快。我不否認(rèn)先夯實(shí)基礎(chǔ),再層層遞進(jìn)的學(xué)習(xí)方式,但針對(duì)不同的學(xué)習(xí)對(duì)象,不同的環(huán)境背景,我們還是應(yīng)該采取最快、最有效的學(xué)習(xí)方式。
如果你學(xué)習(xí) Vim 是為了體驗(yàn)學(xué)習(xí)的新鮮感,或者業(yè)余玩味,請(qǐng)忽略我上面的話。但如果你的最終目的是為了在實(shí)際中用到它,提升我們的工作效率,那你不妨和我一樣,直接拉別人的配置下來,在 Shell 里輸入 Vim 啟動(dòng),開始寫代碼!
當(dāng)時(shí)我找到了 k-vim,按照他的安裝步驟,很簡(jiǎn)單就把 Vim 配置好了,啟動(dòng) Vim,發(fā)現(xiàn)界面也很漂亮,嗯,這就是我要的效果。接著,我打開自己那兩天正在寫的項(xiàng)目,通過僅會(huì)的四個(gè)快捷鍵 HJKL 移動(dòng)光標(biāo)來查看文件。然后我仔細(xì)閱讀了 k-vim 的 README 文件,把它提到的幾個(gè)快捷鍵試了試,感覺很不錯(cuò)。接下來的幾天,它的 README 網(wǎng)頁我一直開著,遇到想要的快捷鍵一搜就搞定,雖然寫代碼的效率確實(shí)下降了很多,但對(duì)編輯器的使用越來越純熟。一周之后我已經(jīng)習(xí)慣用 Vim 來編程了。
接下來開始進(jìn)一步研究 Vim,理解 Vim 的三種模式(正常模式、命令模式、視圖模式),然后掌握如何配置插件和快捷鍵就OK了。最關(guān)鍵一點(diǎn)就是要實(shí)戰(zhàn),強(qiáng)迫自己所有的操作只用鍵盤,強(qiáng)迫只用 Vim 作編輯器。
插件與快捷鍵
Vim 的插件可以通過 Vundle 來管理。(據(jù)說 vim-plug 也挺好用)
只需兩步:
- 在
vimrc.bundles
文件中配置你想要的插件 - 在 Vim 的命令模式中輸入
:BundleInstall
其他的命令有:
:BundleUpdate //更新插件
:BundleClean //刪除插件
個(gè)人覺得必備的插件:
- syntastic 多語言語法檢查
- YouCompleteMe 代碼自動(dòng)補(bǔ)全
- ctrlp.vim 文件搜索,類似 Sublime Text 里面的 Cmd + P
- vim-airline 狀態(tài)欄增強(qiáng)
- nerdtree目錄樹
- vim-ctrlspace tab/buffer導(dǎo)航增強(qiáng)
而快捷鍵的學(xué)習(xí)方法,就是用到的時(shí)候去 Google,多用幾次就記住了。如果它自帶的快捷鍵用著不舒服,你完全可以自己重設(shè),Vim 就是自由,不必拘泥條條框框。
哲學(xué)
非常推薦閱讀 Stack Overflow 上的這篇回答:
What is your most productive shortcut with Vim?
這篇真正闡述了 Vim 作者當(dāng)初設(shè)計(jì) Vim 快捷鍵時(shí)的哲學(xué),看懂這篇對(duì) Vim 快捷鍵的掌握會(huì)更上一層。
感悟
在學(xué)習(xí) Vim、使用 Vim 的過程中,我最大的感悟就是「適合自己的,才是最好的」。
很多插件看起來很酷炫,快捷鍵幾下就能實(shí)現(xiàn)很繁雜的操作,但是你不一定會(huì)有使用這個(gè)插件的需求,或者即使用也用的不多。有人總喜歡拿 IDE 和 Vim 比,我覺得這根本沒有比較的必要,你兩個(gè)都用也沒什么問題。大的項(xiàng)目,復(fù)雜的文件結(jié)構(gòu)和引用,你不用 IDE 而用 Vim,是浪費(fèi)時(shí)間。而且一般 IDE 都提供了 Vim 模式,你仍可以在 IDE 中繼續(xù)擊鍵如飛。
用 Vim 體驗(yàn)的是一種輕便、自由、可塑的感覺。你可以根據(jù)自己的需求來培養(yǎng) Vim,這就像戀(gao)愛(ji)一樣是兩個(gè)人互相適應(yīng)的過程。互相習(xí)慣才能把效率最大化。
推薦鏈接
- Vim Adventure Vim 小游戲
- Learn Vim Progressively 中文版:簡(jiǎn)明 Vim 練級(jí)攻略
- Learn Vimscript the Hard Way 中文版:笨方法學(xué)Vimscript
- 交互式學(xué)習(xí) Vim
- Vim Awesome Awesome Vim plugins from across the universe
- 史上最全Vim快捷鍵鍵位圖 -- 入門到進(jìn)階
- 所需即所獲:像 IDE 一樣使用 vim
- 將你的Vim 打造成輕巧強(qiáng)大的IDE
本作品采用知識(shí)共享 署名-非商業(yè)性使用-禁止演繹 4.0 國(guó)際 許可協(xié)議進(jìn)行許可。