VIM真的好用嗎?到底要不要學習VIM?

為什麼很多程式設計師都喜歡用VIM?我敢肯定每個人至少認識一個VIM狂熱分子,它真的有那麼神奇嗎?

抱歉,VIM狂熱粉可以左上角叉掉了,本文不打算對VIM本身進行美化。但假如你想認真地瞭解一下VIM,不妨繼續看下去。

簡單介紹下我的程式設計背景:在決定將程式設計作為職業前後,我於2018年末開始認真學習程式設計。此前,我經常會為自己玩過的各種遊戲創建(非常糟糕的)腳本,並將運行一些網站/遊戲伺服器作為副業。自從從事程式設計工作以來,我已涉獵多種語言,在JavaScript生態系統中也做了很多工作。

本文將主要討論我決定學習VIM的原因、VIM可解決的問題、未能解決的問題,以及最重要的,你應該學習VIM嗎?開始進入正題吧!

VIM未能解決的問題

VIM並沒有使我成為更好的軟體工程師。再說一遍:學習VIM並不能使您成為一名更好的軟體工程師。

圖源:github

從本質上講,軟體工程與您開發的殼層、編輯器與 OS無關。我認為很多人都有這樣一種潛在的觀念,即需要使用X或Y才能成為“優秀”的軟體工程師。

作為行業新手,我發現一般擁有“ ____OR BUST”心態的都是膽小的精英。我們都在為複雜的問題創建解決方案。用於編寫解決方案的工具包並不能讓您成為更好或更差的開發人員。

為什麼我決定學習 VIM

培養習慣

作為初級程式設計師,我還有很多地方需要改進,工作流就是其中一個。在學習VIM之前,我從來不是一個真正利用熱鍵/鍵綁定來發揮自己優勢的人,而非常依賴鼠標。因為我打字一直很快,所以有人向我推薦典型的VIM尖峰時,“把手放在鍵盤上”這一點對我很有吸引力。

至少,我認為學習VIM不會帶來任何負面影響。

潛力無限

在考慮是否應該學習VIM時,我觀摩了一場相關的技術沙龍,它告訴我的是,在今後多年人們都可以持續使用VIM,並不斷拓展工具使用範圍。

這給了我一些提醒:首先,選擇VIM意味著需要投入大量時間,但更重要的是,你始終在尋找提升技能的方法。作為新手開發人員,我想竭盡所能。

這重申了先前的觀點,將不同的工具(以VIM為例)集成運用到開發工作流程中,就可以一石二鳥。

圖源:unsplash

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?希望你已經有答案了。