VIM真的好用嗎?到底要不要學習VIM?
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)
為什么很多程序員都喜歡用VIM?我敢肯定每個人至少認識一個VIM狂熱分子,它真的有那么神奇嗎?
抱歉,VIM狂熱粉可以左上角叉掉了,本文不打算對VIM本身進行美化。但假如你想認真地了解一下VIM,不妨繼續看下去。
簡單介紹下我的編程背景:在決定將編程作為職業前后,我于2018年末開始認真學習編程。此前,我經常會為自己玩過的各種游戲創建(非常糟糕的)腳本,并將運行一些網站/游戲服務器作為副業。自從從事編程工作以來,我已涉獵多種語言,在JavaScript生態系統中也做了很多工作。
本文將主要討論我決定學習VIM的原因、VIM可解決的問題、未能解決的問題,以及最重要的,你應該學習VIM嗎?開始進入正題吧!
VIM未能解決的問題
VIM并沒有使我成為更好的軟件工程師。再說一遍:學習VIM并不能使您成為一名更好的軟件工程師。
從本質上講,軟件工程與您開發的殼層、編輯器與 OS無關。我認為很多人都有這樣一種潛在的觀念,即需要使用X或Y才能成為“優秀”的軟件工程師。
作為行業新手,我發現一般擁有“ ____OR BUST”心態的都是膽小的精英。我們都在為復雜的問題創建解決方案。用于編寫解決方案的工具包并不能讓您成為更好或更差的開發人員。
圖源:github
為什么我決定學習 VIM
1. 培養習慣
作為初級程序員,我還有很多地方需要改進,工作流就是其中一個。在學習VIM之前,我從來不是一個真正利用熱鍵/鍵綁定來發揮自己優勢的人,而非常依賴鼠標。因為我打字一直很快,所以有人向我推薦典型的VIM尖峰時,“把手放在鍵盤上”這一點對我很有吸引力。
至少,我認為學習VIM不會帶來任何負面影響。
2. 潛力無限
在考慮是否應該學習VIM時,我觀摩了一場相關的技術沙龍,它告訴我的是,在今后多年人們都可以持續使用VIM,并不斷拓展工具使用范圍。
這給了我一些提醒:首先,選擇VIM意味著需要投入大量時間,但更重要的是,你始終在尋找提升技能的方法。作為新手開發人員,我想竭盡所能。
這重申了先前的觀點,將不同的工具(以VIM為例)集成運用到開發工作流程中,就可以一石二鳥。
3. Linux服務器上不再需要nano
這點來自于在Linux環境中遠程工作多年,負責運行站點或服務器的程序員,是他們不了解VIM其實很煩人。如果需要修改在電腦中運行的服務器配置文件,則要安裝nano,在我看來VIM就是:q!.
工作環境
日常工作中,我會將VSCode與VIM插件結合使用。我曾嘗試安裝諸如coc.nvim之類的插件并通過終端本身進行開發,效果just so so。
我一直非常喜歡在VSCode上編寫代碼。使用VIM VSCode插件的體驗與運行VIM相同,但VSCode提供的生態系統讓我受益更多。對我來說,使用此設置不失為兩全其美之舉。
圖源:unsplash
小結
應該學習VIM嗎?如果沒有固定的習慣或快捷鍵設置,你至少可以嘗試一下。我沒有給自己劃定快捷鍵或工作流程的“舒適圈”,所以我會對VIM感興趣。學習了VIM后,我也在原有基礎上獲得了新的框架。
啟用VSCode插件前,我花了大約兩周的時間輕而易舉地通過了vimtutor。此后又花了一周時間進行開發,通過肌肉記憶來自發使用快捷鍵瀏覽代碼。那時我正使用任一方式進行編碼,而選擇VIM可以帶來更多價值。
程序員歸根到底是要解決問題,決定使用哪個快捷鍵或編輯器完全取決于你的偏好,編輯文件的速度通常也不是開發工作的瓶頸。
所以到底要不要用VIM?希望你已經有答案了。