拋棄VS Code,轉向終端,我“移情別戀”的理由是什么?
不久前,我大部分的編程都會用VS Code來完成,除非必須用別的系統不得不選擇Vi或Vim。VS Code能滿足所有需求,甚至還有很多其他的功能,它就是萬事通。
VS Code有一個嵌入式終端,可以執行所需要的命令。它還內置文本編輯器和文件資源管理器,甚至還有git(分布式版本管理系統)功能。
但盡管如此,我還是決定拋棄它,原因如下:
1.強迫自己學習構造塊
我認為,使用GUI(圖形用戶界面)文本編輯器的缺陷之一,就是不能與cli(命令行界面)工具進行互動。cli是所有功能相同的GUI的基礎,你不得不使用一個更局限但功能更強大的工具。
以git為例,如果要從遠程數據庫提取一個文件,VS Code無法輕松做到,但git卻可以。
- git checkout <remote branch> --<path/to/file>
有時你仍必須用終端執行某些命令,這是因為GUI界面正是構建在終端命令之上的(即VS Code中的git命令是基于git cli構建的)。通過查看VS Code中的git功能,可以看到它提供了許多有用的命令,卻難以執行復雜的git操作。
當你要執行復雜的操作但還不習慣使用cli,則需要較長的時間來弄清楚它的使用方法。雖然這可能是一次性的情況,但它發生的頻率令人吃驚。使用cli是一項非常強大的技能,這樣你就能夠充分利用手頭的工具。
你不僅能了解這些命令工作的基本原理,還能創建自己的快捷方式,以提高工作效率。例如,某天伊始,你可能想把自己的分支更新到master數據庫里,那么就可以創建一個快捷方式,如:
- git fetch -a
- git checkout <branch name>
- git pull origin <branch name>
你也可以創建任何想要的命令字符串,并以關鍵字命名或取個別名,當你想執行這個命令時就可以調用它。現在命令就能為你服務了,而這只有了解了核心cli的工作方式才能實現。
2.簡單
不知道讀者是不是和我一樣。每當看到一個新工具或按鈕就忍不住去把玩或觸摸,直到它要么實現某功能,要么終止。像VS Code這樣的工具有太多現成的功能,所以我傾向于終止。當我亂摁按鈕時,不知道為什么一些預期行為沒有出現,或者新的行為出現了,這就導致了一些麻煩和問題。
看看這個終端,告訴我,如果以前沒有經驗,你會怎么去終止它。有點難對吧?你不能光敲擊按鈕等它發生反應,你得先做些研究。
cli的情況則恰恰相反,因為要進行更改,你必須明確要輸入什么命令或在何處進行更改。雖然你仍然可能會終止一些東西,但會發現和糾正錯誤卻更容易,因為你得輸入自己想去的方向,而不是從一系列選項中選擇,以這種方式終止似乎要慎重得多。這也再次證明了第一點,這讓你能瀏覽整個系統并進行更改,而不是讓GUI自動為你更改。
3.快速
假設要刪除這個句子的第一個和最后一個單詞:
- ew look at thedolphins gross
你通常會怎么做?拖動鼠標-點擊空格*2-拖動鼠標-點擊空格*5?很簡單的任務做起來卻很麻煩,而在vim中只需:
- dw - $ - b - dw
小朋友,你是否有很多問號?別著急,一旦你對它有了肌肉記憶(即通過重復將其整合到記憶中)之后,就不會這么覺得了,而且它們也是有意義的。
- dw - 刪除單詞
- $ - 行末的正則表達式符號
- b - 返回
與在屏幕上拖動光標相比,僅僅三個命令就可以輕松地執行簡單的文本編輯。還有很多類似的命令,你也可以創造自己的命令。
簡言之,使用光標要比使用鍵盤慢,因此,盡可能減少移動光標就能把更多時間用來解決手頭上的實際問題,而不是關心該把光標放在哪里。雖然VS Code確實具有快捷方式的功能,但對我來說,能夠點擊屏幕就意味著,我不必“被逼無奈”地學快捷方式。
4.個性化
根據自己的喜好調整工作流程,起初需要花一些時間,但一旦實現了,你就會感到非常得心應手了。無論是在myzsh中創建自定義別名,還是在vim配置文件中重置鍵盤,根據個人工作需要定制體驗的方法有很多,設置系統讓它為你服務的方法也數不勝數。
這不是一個封閉的系統,如果不喜歡某種運行方式,自己更改代碼就好了。大多數東西都可以從.vimrc、.zshrc等配置文件中更改,即使配置文件中沒有任何可以更改的,也沒有什么可以阻止你更改代碼,你有這個能力。正如第一點中提到的,我們可以設計任何一組操作,從而使系統按照我們希望的方式工作。
對大多數人來說,選擇工具沒有這么多的條條框框,用能讓你最快、最好地完成工作的工具就好。但對我來說,我發現逼著自己走出舒適區,使用學習曲線更高的工具(即學習難度大,但功能豐富的工具),能使我最終成為一個更高效的人。此外,cli工具有一個優點,即讓你更像電影中的網絡黑客。
另外,我在本文中只提到了幾個工具,但核心驅動程序是內置tmux終端復用器的nvim,我還會用grep來搜索文件。
本文轉載自微信公眾號「讀芯術」,可以通過以下二維碼關注。轉載本文請聯系讀芯術公眾號。