還有必要學(xué)Vim嗎馏锡?

曾經(jīng)有一段時(shí)間雷蹂,編輯器領(lǐng)域的創(chuàng)新停滯了。在web編程走紅杯道,尤其是electron出現(xiàn)之后匪煌,這個(gè)領(lǐng)域又上了一個(gè)新臺(tái)階。Atom, VsCode等等替代了之前唯一的但是臃腫的跨平臺(tái)選擇 - Java党巾。一時(shí)之間萎庭,大家都開始用網(wǎng)頁(yè)來寫代碼了。

在這樣一個(gè)時(shí)代齿拂,還要學(xué)Vim這種中古的技能嗎驳规?我來討論一下為什么要,不但要署海,而且必須要吗购。

  1. Vim仍然是最高效的編輯器
  2. Vim仍然在高速進(jìn)化
  3. Vim是編輯器領(lǐng)域的Javascript

高效

Vim的學(xué)習(xí)曲線是出了名的高。但是這背后是高投入砸狞,高產(chǎn)出的效率捻勉。

[圖片上傳失敗...(image-3ae967-1513779322378)]

隨便舉幾個(gè)例子:dd刪除一行,兩個(gè)鍵搞定刀森。普通的編輯器可能要<HOME><Shift-End><Del><Del>這樣的組合才能搞定踱启。
w可以跳過一個(gè)單詞,普通的編輯器要<Ctrl-Right>才可以搞定。一半的按鍵埠偿,還不包括遠(yuǎn)離中原的Ctrl鍵透罢。mM記住一個(gè)位置,'M隨時(shí)跳轉(zhuǎn)到該位置胚想。一般的編輯器...說實(shí)在的我并不知道一般的編輯器如何做類似的操作琐凭。在VsCode的菜單里掃了兩邊也沒找到芽隆。

這只是九牛一毛浊服。而且用的時(shí)間越久,你積累的技巧就越多胚吁,你的效率就越高牙躺。

高效的另外一面是:反應(yīng)快。其實(shí)要說功能強(qiáng)大腕扶,JetBrain的產(chǎn)品無疑都很牛孽拷。但是在大腦高速運(yùn)轉(zhuǎn)的時(shí)候,思維到屏幕上字符的轉(zhuǎn)化過程減少2-300毫秒導(dǎo)致體驗(yàn)的差別是巨大的半抱。就好像脓恕。。窿侈。炼幔。

其實(shí)Vim的高效很大程度上應(yīng)該歸功于所謂模式編輯 - Vim于大多數(shù)編輯器不同,有insert,
normal,
visual等等幾個(gè)模式史简。這也是造成它學(xué)習(xí)成本高乃秀,被人吐槽多的原因。最近網(wǎng)上瘋傳的段子就是“如何退出Vim”圆兵。各種歡快的圖片層出不窮跺讯。這里忍不住貼一個(gè)瘋狂的圖片。如果你看到這個(gè)圖片決定不學(xué)Vim了殉农,那是你的損失刀脏。反正我覺得這酷畢了。

[圖片上傳失敗...(image-86dba0-1513779322378)]

進(jìn)化

Vim 從Vi進(jìn)化而來超凳,為一個(gè)略顯骨感的編輯引擎加入了諸多特性:

  1. 跨平臺(tái)
  2. 語法高亮
  3. diff
  4. split
  5. plugin和vimscript....

在大約兩年前愈污,neovim出現(xiàn)了。它主要做了這么幾件事:

  1. 將Vim的開發(fā)方式帶入21世紀(jì)
  2. 加入async方式
  3. 遠(yuǎn)程控制

[圖片上傳失敗...(image-664089-1513779322378)]

Vim的開發(fā)一直都是一個(gè)個(gè)人秀聪建。當(dāng)kernel已經(jīng)從patch遷移到CVS遷移到bitlocker遷移到git的時(shí)候钙畔,當(dāng)sourceforge已經(jīng)經(jīng)歷了諾基亞式的巔峰到谷底的時(shí)候,Bram還基本停留在N年前的模式金麸。當(dāng)然擎析,Vim首先是一個(gè)個(gè)人項(xiàng)目,無論怎么做都不過分。但單從技術(shù)進(jìn)步的角度來講揍魂,這確實(shí)是逆潮流的桨醋。

async看來是一件小事,但是卻從根本上移除了用戶體驗(yàn)的絆腳石现斋。neovim出現(xiàn)之后喜最,包括ALE等等在內(nèi)的各種創(chuàng)新涌現(xiàn)了出來。甚至Vim8也不上了這個(gè)缺口庄蹋。這個(gè)領(lǐng)域發(fā)展的速度一下子從步行編程了摩托車瞬内,出來一兩個(gè)偉大的產(chǎn)品一點(diǎn)也不出奇。

遠(yuǎn)程控制用一種叫做msgpack的IPC將編輯核心和UI徹底分割了限书。方便了UI編寫者虫蝶。其中一個(gè)令人振奮的就是和VsCode的集成

寫這篇文章的時(shí)候倦西,恰逢neovim最新的newsletter發(fā)出能真。有興趣的可以戳這里看看。

Javascript

我在拿編程語言和一個(gè)編輯器做比較嗎扰柠?我喝多了粉铐?

現(xiàn)在流行,甚至不怎么流行的編輯器或IDE卤档,都支持插件蝙泼。而在這些插件里面,總有一個(gè)插件是不會(huì)缺席的裆装,那就是Vim踱承。JetBrain有IdeaVimVsCode有哨免,Atom有茎活,Sublime有,Chrome, Firefox也有琢唾,連Office都有载荔,還收費(fèi)! 這里面有一個(gè)邏輯,不是因?yàn)閂im很流行采桃,而是Vim有意無意地創(chuàng)造了一種編輯的語言懒熙。比如dw,yy, g, gg等等普办。這些快捷的命令在熟悉之后工扎,不再是簡(jiǎn)單的命令而已,而成為可以組合的元素衔蹲。你不會(huì)在思考用什么樣的命令肢娘,而任由你的指頭自行在鍵盤上跳動(dòng),進(jìn)行它自己的編程。

學(xué)會(huì)了Vim之后橱健,無論什么IDE而钞,無論在什么平臺(tái)上,都無需再學(xué)習(xí)另外一套鍵盤快捷拘荡【式冢可謂一勞永逸。例如現(xiàn)在如日中天的VsCode珊皿,有非常多的快捷鍵网缝,而且每個(gè)平臺(tái)各有不同。但是只用安裝一個(gè)Vim插件亮隙,這些快捷鍵都不用學(xué)了途凫。

之所以和Javascript比垢夹,是因?yàn)椋簬缀跛械恼Z言都可以transpile成Javascript; 幾乎所有的編輯器和IDE溢吻,都支持Vim插件。

[圖片上傳失敗...(image-79f821-1513779322378)]

人生苦短果元,快學(xué)Vim!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末促王,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子而晒,更是在濱河造成了極大的恐慌蝇狼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倡怎,死亡現(xiàn)場(chǎng)離奇詭異迅耘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)监署,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門颤专,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钠乏,你說我怎么就攤上這事栖秕。” “怎么了晓避?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵簇捍,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我俏拱,道長(zhǎng)暑塑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任锅必,我火速辦了婚禮事格,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己分蓖,他們只是感情好尔艇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著么鹤,像睡著了一般终娃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒸甜,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天棠耕,我揣著相機(jī)與錄音,去河邊找鬼柠新。 笑死窍荧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恨憎。 我是一名探鬼主播蕊退,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼憔恳!你這毒婦竟也來了瓤荔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤钥组,失蹤者是張志新(化名)和其女友劉穎输硝,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體程梦,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡点把,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屿附。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郎逃。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拿撩,靈堂內(nèi)的尸體忽然破棺而出衣厘,到底是詐尸還是另有隱情,我是刑警寧澤压恒,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布影暴,位于F島的核電站,受9級(jí)特大地震影響探赫,放射性物質(zhì)發(fā)生泄漏型宙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一伦吠、第九天 我趴在偏房一處隱蔽的房頂上張望妆兑。 院中可真熱鬧魂拦,春花似錦、人聲如沸搁嗓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)腺逛。三九已至荷愕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間棍矛,已是汗流浹背安疗。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留够委,地道東北人荐类。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像茁帽,于是被迫代替她去往敵國(guó)和親玉罐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容