核心概念#

我們之前說過工具是手的延伸,這點應用到編輯器比任何其他軟體工具都更為貼切。你需要能夠盡可能毫不費力地操作文字,因為文字是程式設計的基本原始材料。

在本書第一版中,作者建議所有事情只用一個編輯器。現在他們軟化了這個立場——你可以愛用多少編輯器就用多少,只要你在每一個上都追求流暢度

Tip 27 - Achieve Editor Fluency(達到編輯器流暢度)

為何這很重要?#

表面上看,是省時間:一年下來,如果讓你的編輯效率只提升 4%,每週編輯 20 小時,你可能會多出一整週。

但真正的好處不在此。真正的收穫是:當你達到流暢時,你不再需要思考編輯的機制。思考某件事和看到它出現在編輯器緩衝區之間的距離大幅縮短。你的思維會更流暢,程式設計也會受益。(這就像教人開車——新手必須思考每個動作,而有經驗的駕駛是本能地控制車輛。)

什麼是「流暢」?#

以下是檢驗清單:

  • 編輯文字時,按字元、單字、行和段落移動和選取
  • 編輯程式碼時,按各種語法單元移動(匹配的分隔符、函數、模組等)
  • 修改後重新縮排程式碼
  • 用單一命令註解和取消註解程式碼區塊
  • 復原和重做變更
  • 將編輯器視窗分割為多個面板並在它們之間導覽
  • 跳轉到特定行號
  • 排序選取的行
  • 搜尋字串和正規表達式,並重複搜尋
  • 建立臨時多游標(基於選取或模式匹配),平行編輯文字
  • 顯示當前專案的編譯錯誤
  • 執行當前專案的測試

你能在不使用滑鼠/觸控板的情況下完成所有這些嗎?

邁向流暢#

作者不期望你知道任何特定強大編輯器的所有命令。他們建議更務實的方法:學習讓你生活更輕鬆的命令。

方法很簡單:

  1. 觀察自己——每當你發現自己在做重複的事情,養成「一定有更好的方法」的思維習慣。然後去找到它
  2. 植入肌肉記憶——發現新的有用功能後,刻意尋找機會使用它,一天使用很多次。大約一週後,你就能不假思索地使用它
  3. 擴展你的編輯器——遇到限制時,搜尋擴展套件。更進一步,學習編輯器的擴展語言來自動化重複性工作

相關章節#

  • Topic 7,溝通