一.選擇合適的編輯器,提高編程效率
代碼編輯器的選擇,可以說是開發者社區中一個經久不衰的話題,現今編輯器的數量數不勝數,vim,sublime Text,Emacs,Atom等等,那么對於一個開發者而言,挑選一個合適的編輯器是可以有效的提高編程效率;
選擇編輯器時,需要考慮的三個因素:
1.選擇的編輯器對文本,代碼的編程效率要求有多高;
2.選擇的編輯器對編程語音的支持如何,配置是否繁瑣;
3.選擇的編輯器插件生態如何,社區是否活躍;
VSCode:是一款免費的、開源的、高性能的、跨平台的、輕量級的代碼編輯器,同時,在性能,語言支持、開源社區方面也做的很不錯!
二.學編輯器,到底應該學什么
編輯器的學習就像編程語言的學習類似,一開始不熟悉的一門編程語言的時候,可能會從官方文檔,從頭到尾的學習這門語言的內容,但是學習過程中一些小小的語法就可能會影響你學習的進度,到之后你完全掌握這門語法的時候,你會發現開始學習時遇到的那點語法問題並不是那么的重要。
在掌握一門編程語言的時候,你想要學習另外一門編程語言,並且還是按照第一次的學習方式去學習這門語言,那么說明你並沒有從全局理解這門語言,也沒有再腦海中建立“學習框架”。
其實,一門新的編程語言往往是解決老語言的某個短板,但是他們的本質其實並沒有多大的改變,如果你在學習第一門語言的時候能建立一套自己的“學習框架”,之后再學習一門新的語言的時候就會更有效率。
同時,學習編輯器的學習,也和編輯語言一樣。當使用一個工具時,你最關心的應該是它能用來做什么,它擅長做什么,以及它不能做什么;換句話說,就是指這個工具的‘上限’和‘下限’
首先,我們先找一下編輯器的‘下限’:
1.快捷鍵的選用:
首先要考慮編輯器再選用快捷鍵的時候是否會與系統自帶快捷鍵有所沖突;
其次,要參考其他開發工具對快捷鍵組合,迎合用戶習慣;
最后,也是最重要的一點,我們要看快捷鍵的配置是否有統一性;配置的統一性:Shift鍵只能用於控制文本選擇,Ctrl或者Cmd鍵只能當做輔助鍵,Tab用於控件之間的跳轉等。
2.編程語言以及框架的支持:
選擇一個編輯器時,我們需要考慮的是它對你必須使用的編程語言的支持情況如何,語法高亮是否正確,是否能自動補全代碼能否直接調試或運行測試等;
3.對工作流的選擇和支持(工作流:是對工作流程及其各操作步驟之間業務規則的抽象、概括描述。)
最后一個影響因素,就是編輯器對工作流的選擇和支持,比如說Vim編輯器(http://www.runoob.com/linux/linux-vim.html)並不自帶資源管理器,如果你希望再Vim中看到文件樹並快速切換文件就需要安裝相應的插件;但是現在大多數的編輯器都直接集成了資源管理器,VSCode自帶了版本管理,可以說是對版本管理再開發過程中的重要地位的一種認同,但是有些開發工具吧測試功能集成進去,這個需求並不是所以人都認為是日常開發必要的;
接着,我們來說說編輯器的‘上限’:
如果說一款編輯器支持用戶寫插件來定制功能,那么它的‘上限’就很高了。像Eclipse這樣允許修改任意功能的工具來說,它們的‘上限’理論就是無限的,但是擴展編輯器這個事,還是需要從社區和個人的,能否達到這個高度還是個未知數。
Eclipse是最流行的java編輯器之一,插件的開發語言也是java,所以它的插件社區還是很活躍的,但是Eclipse把插件運行到主程序中,一旦插件的性能堪憂,就會影響到Eclipse的本身體驗。
VSCode的插件開發語言是JavaScript,所以寫擴展對於很多人來說是沒有門檻的,因為大多數人多少都會寫點js,所以對於VSCode來說插件社區的活躍度還是不用擔心的,主要是要考慮如何避免跳進Eclipse的坑里。
關於編輯器的‘上限’和‘下限’,其實就是我們再選擇編輯器的時候所需要考慮的因素以及學習的方向,當然最重要的就是多動手;
三.關於VSCode
VSCode(Visual Studio Code):它是一個免費的,開源的跨平台編輯器。之所以強調‘編輯器’,可能是VSCode並無意成為一個全尺寸的集成開發環境,也就是IDE。
它是由Erich Gamma把Monaco Editor移植到桌面平台上,成為了現今的VSCode。
很多人都把編輯器等同於IDE,其實並非如此。IDE更為注重編程體驗,對代碼有很好的理解,同時側重於為代碼調試、測試等提供圖形化界面的支持。因此,可能會顯得比較笨重;
而編輯器則相對更輕量,側重文件或者文件夾,語言,工作流的支持更豐富和自由,VSCode的定位就是編輯器,但又並不局限於此。
開源開發的平台:
首先,VSCode的源代碼以MIT協議(開源中國)開源,這就意味着我們可以免費獲取VSCode的核心代碼,社區可以基於VSCode的代碼,開發自己的產品;而VSCode也經常能從一些知名的項目中吸取寶貴的經驗。
其次,VSCode的源代碼托管在GitHub上,同時使用GitHub的開發計划和測試,使每個用戶都可以在GitHub上了解VSCode的開發進度,作為用戶,可以更好的了解產品的發展情況。
再者,VSCode自帶了TypeScript和Node.js的支持,用戶下載VSCode后能立即獲得javascript和nodejs的智能提示,且無需任何配置即可調試nodejs,然而VSCode的團隊並不會精通所有的語言,那么對於他們不熟悉的語言,VSCode該怎么支持呢?最好的方法就是讓專業的人來做,所以VSCode為編程工作者提供了統一的API(即Language Server Protocol和 Code Debugging Protocol),使得每一個語言都能得到更好的支持。
VSCode學習指南
1.VSCode有一套自己的快捷鍵,你可以通過學習快捷鍵來了解核心編輯器所支持的功能。同時,VSCode允許自定義快捷鍵,使用戶能更好的使用VSCode。VSCode對鼠標,多光標,搜索都有完備的支持,對自動補全,代碼片段等都一應俱全。
2.學會使用工作台,工作區,VSCode中除了編輯器區域,還有其他很多功能,像是資源管理器。跨文件搜索、插件管理等,它們就組成了統一的界面,就是工作台;這個工作台的設計代表了VSCode對工作流的選擇。VSCode內置的軟件版本管理,終端模擬器,調試器等,都能提高工作效率。
3.VSCode允許定制和開發插件,所以試着把自己的想法,來滿足自己的需求,能更好的提升自己,了解VSCode;
4.關注每月的發布更新日志,關注VSCode官方博客;
通過以上幾個步驟,能更好的使用好VSCode,提高工作效率。
總結:VSCode的定位是輕量級的代碼編輯器,綜合了Eclipse等許多優秀工具的優勢,同時也解決了它們的弊端,VSCode在性能、語言支持、社區方面都很不錯;
VSCode更新日志:https://code.visualstudio.com/updates/v1_27
VSCode官方博客:https://code.visualstudio.com/blogs/2018/09/12/engineering-with-azure-pipelines
四.快速上手VSCode
安裝與版本選擇
VSCode有兩個發布渠道,一個是常用的穩定版,每月發布一個主版本;另一個是insiders,每周一到周五早上6點發布,也是VSCode內部團隊使用的版本,目的是為了更好的發現Bug。微軟內部對這個做法還有個專門的名詞:eat your own dog food(吃自己的狗糧)。
VSCode目前在全世界大概有一萬五千名用戶在使用insiders版本。不過剛接觸VSCode,穩定版會相對適合。但是如果已經使用VSCode一段時間的話,可以試一試insiders。因為使用這個版本可以盡早用上最新的功能,一般VSCode的新功能會先在insiders上線,等運行一段時間后才會隨着當月穩定版發布。改動較大的可能會運行兩個月之后才會推向穩定版。
其次,一個新功能的添加往往是不成熟的,使用insiders可以第一時間再GitHub上反饋對新功能的看法及建議,甚至能為其提供代碼。
下載安裝VSCode:
初次使用VSCode
VSCode第一次啟動的時候會顯示一個‘歡迎使用’頁,主要是為了方便快速打開文件,文件夾以及訪問歷史文件,更換主題色,更換快捷鍵等:

這個界面有着很多你可能感興趣的功能:
1.命令面板:
我們可以通過快捷鍵F1或者Ctrl+Shift+P(mac上的Cmd+Shift+P)鍵打開VSCode的命令面板。!

VSCode的絕大部分命令都能從命令面板找到,所以只要熟悉命令面板,就能不用鼠標,完全使用鍵盤來完成編碼工作。
2.界面概覽:
展示VSCode默認界面里的不同部件的位置,名稱和快捷鍵。VSCode強調無鼠標操作,但是記快捷鍵就會成為很多新手的痛點,這個界面恰好能解決這個痛點。

3.交互式演戲場:
打開這個界面,我們會看到很多的英文教程,它通過各種交互實例,展示了一些高級編輯代碼功能的使用,每個功能都會有一個代碼片段和編輯器能供我們使用。

五.VSCode快捷鍵
光標移動
1.option + ← :移動到單詞最前面;
2.option + → :移動到單詞最末尾;
3.option + 方向鍵 :以單詞為單位移動;
4.cmd + ← :移動到當前行最前面;
5.cmd + → :移動到當前行最末尾;
6.cmd + shift + \ :花括號之間跳轉;
7.cmd + 上下鍵 :移動到文檔第一行或最后一行;
文本選擇
基於單詞,行,文檔的光標操作加上個shift鍵,就可以移動光標的同時選擇文本;
刪除操作
刪除當前選中文本內容(Windows:home+shift;macOS:cmd+left+shift)
1.cmd + Backspace :刪除當前行光標后的所有字符;
2.cmd + delete :刪除光標前的所有字符;
3.option + delete :把當前單詞光標前的字符刪除;
4.option + Backspace :刪除當前單詞光標后的字符;
自定義快捷鍵
打開命令面板(F1或ctrl+shift+p)搜索‘打開鍵盤快捷方式’,就可以更換或者刪除快捷鍵;

六.VSCode快捷鍵進階
1.cmd + shfit + k :刪除當前代碼行;
2.cmd + x :剪切這行代碼;
3.cmd + Enter :在當前行的上面新增一行;
4.option + ‘上下鍵’:將當前行或者當前選中的幾行代碼再編輯器中上下移動;
5.option + shift +‘上下方向鍵’:向上向下復制當前行;
移動代碼行,代碼縮進發生改變
添加注釋
1.cmd + / :注釋一行代碼;
2.option + shift + A :注釋一整段代碼;
格式化代碼
1.option + shift + F :格式化代碼;
2.cmd + K cmd + F :格式化選中行代碼;
3.cmd + shift + P :代碼縮進;
七.文件、符號、代碼之間的快速跳轉
1.Ctrl + Tab(同時按住),繼續按着Ctrl鍵,松開Tab鍵 :打開當前打開文件的列表,選擇要打開文件,松開Ctrl就能打開對應文件;
2.Ctrl + P :打開最近打開文件列表,同時列表頂部出現搜索框,搜索文件名,回車(Enter),可以再當前窗口打開對應文件;使用Cmd + Enter會在新的編輯器窗口打開這個文件。
3.Ctrl + g :行跳轉,輸入對應數字回車,可以跳轉到當前文件的當前行。
4.Ctrl + p(輸入文件名 + “:” + 行數):跳轉到指定文件的指定行數。
5.Cmd + shift + O :調出當前文件的符號(函數名等),使用方向鍵或者搜索,回車,就能跳轉到你想要的符號;如果輸入“:”可以對當前文件的所有符號進行分類;
6.Ctrl + T :打開多個文件,搜索多個文件中的符號;
7.F12:跳轉到函數的定義處;Cmd + F12 :跳轉到函數的實現位置;注:js中沒有接口的概念,定義和實現是相同的,所以js中的F12和Cmd + F12效果是一樣的;
8.Shift + F12 :打開函數引用的預覽(把光標放在函數或者類上,按Shift+F12可以打開一個引用列表和內嵌編輯器)
八.VSCode中的鼠標操作
1.在VSCode中,單擊鼠標左鍵:把光標移動到響應的位置;雙擊鼠標左鍵:將當前光標下的單詞選中;三擊鼠標左鍵:選中當前行代碼;四次點擊鼠標左鍵:選中整個文檔。
2.鼠標左鍵單擊行號:直接選中所在行;按住鼠標左鍵再行號上下移動:可以選中多行代碼;
3.拖動選中的代碼,按住鼠標左鍵,移動鼠標可以改變代碼位置;如果想在拖動時復制一份代碼,可以按住Ctrl鍵,操作結果就能從原來的“剪切+復制”變成“復制+黏貼”。
4.VSCode中,如果鼠標擁有中鍵,只需要按下鼠標中鍵,然后對着一段文檔拖出一個框,再框中的代碼就被選中了,而且每一行選中的代碼,都有一個獨立的光標。
5.懸停提示窗口:當鼠標移動到某些文件上之后,一會就會顯示跟鼠標下文本相關的信息;如果鼠標放在某個函數上,按下Ctrl時,則能再懸停提示的窗口上看到該函數的實現。
6.代碼的跳轉和鏈接:如果我們把鼠標放在函數上時,函數下方會出現一個下划線,然后當我們按下鼠標左鍵時,就能跳轉到該函數的定義處。
當我們再編寫Markdown這樣的非編程語言的文檔時,通過Ctrl+鼠標左鍵能打開超級鏈接。