VsCode分享
此次分享主要來自知乎上的《VsCode從入門到進階》,一個朋友給我分享了一下,於是我聽了一下,做了一些筆記,藉此分享給大家。
VsCode官網地址為:
//code.visualstudio.com/
感興趣的朋友可以下載體驗一下:
內容大綱
1. VS Code 的優勢
2. VS 和 VS Code 到底有什麼關係?
-
微軟從 VS 組裡面抽了一撥人做 VS Code,是真的嗎?
-
VS 支援 Java ?背後的真相到底是怎樣的?
3. 你真的會用 VS Code 了嗎?
-
VS Code Insiders 版本
-
常用的配置項
-
命令面板
-
麵包屑導航/大綱/縮略圖
-
主題
-
快捷鍵
-
集成終端
4. 如何更好地學習 VS Code ?
-
學會提問
-
學會搜索
-
學會學習
5. 一起改進 VS Code,你也能成為 VS Code 的 Contributor
6. VS Code 的核心組件
-
Electron
-
Monaco Editor
-
Language Server Protocol
-
Debug Adapter Protocol
7. VS Code 怎麼做開源的?
8. 進階
-
命令行
-
玩轉 Git
-
打造自己的主題
-
快速創建屬於你的 Code Snippet
-
玩轉 Tasks,把重複的工作自動化
-
調試
-
遠程開發
9. 插件
-
插件管理
-
好用的插件推薦
-
你也可以開發一款屬於你的插件
一、VS Code 的優勢
-
開源
-
跨平台
-
輕量級
-
智慧提示
-
程式碼調試
-
內置Git支援
-
多語言支援
-
豐富的插件
1.學習曲線
2.用戶體驗(Terminal、調試器、版本控制、前端開發、擴展插件)
3.開源(一切皆開源,不止程式碼開源)
4.性能
(1)比IDE和Atorm要快
(2)與Vim和Sublime相比,略有差異
(3)不斷的性能優化(主要解決VsCode為什麼越用越慢問題):
a.插件進程與主進程的隔離
b. 插件的延遲載入
c.Text Buffer的優化,提升大文件和載入和編輯速度,減少記憶體使用率
5.豐富的插件(10000+以上插件,編輯器插件管理方便)
6.強大的生態
(1)強大的組件生態
a.Monaco Editor
b.Languge Server Protocol
c.Debug Adapter Protocol
(2)Visual Studio Family
a.Visual Studio Live Share:極大地方便了協作編程–實時共享編輯、跟隨游標、團隊調試、分享本地伺服器、共享終端等等。
b.Visual Studio IntelliCode:通過AI賦能,跟隨上下文給出編程建議和智慧提示,提高開發者的效率。
二、 VS 和 VS Code 到底有什麼關係?
相當於Java和JavaScript的關係,看上去有關係,實際上半毛錢關係都沒有,只是名字相似而已。
三、 你真的會用 VS Code 了嗎?
1.VsCode Insider版本
(1)每天獲取最新版本的VsCode
(2)與穩定版並存
2.命令面板
(1)快速列出所有命令
(2)快捷鍵:Ctrl+Shift+P或F1
3.常用的配置項
(1)Windows/Linux 文件-首選項-設置
(2)macOS Code-首選項-設置
4.麵包屑導航/大綱/縮略圖
5.主題
-
文件->首選項->顏色主題
-
文件->首選項->文件圖標主題
-
插件市場
6.常用快捷鍵
-
Ctrl+P 文件跳轉
-
Ctrl+Shift+Tab 在所有打開的文件中跳轉
-
Ctrl+Shift+P 命令面板
-
Ctrl+Shift+O 跳轉到文件中的Symbol
-
Ctrl+T 搜索所有的Symbols
-
Ctrl+G 跳轉到某一行
-
Alt+<-/->向後/向前跳轉
怎麼多命令怎麼記得住?
別怕,按照如下操作即可:
點擊幫助->鍵盤快捷方式參考
7.集成終端
打開集成終端:
-
使用Ctrl+快捷鍵
-
通過菜單欄 查看->終端
-
通過命令面板(Ctrl+Shift+P),試圖:切換集成終端
四、如何更好地學習 VS Code ?
1.學會搜索
-
VsCode官網(//code.visualstudio.com/)
-
GitHub(//github.com/microsoft/vscode)
-
Google/Bing
-
Stack Overflow(//stackoverflow.com/)
2.學會提問
-
Environment
-
Repro steps
-
Actual behavior
-
Expected behavior
-
Code sample
-
Screenshot
上面所說的主要是關於如何提問,
環境->步驟->實際情況->預期情況->程式碼->截圖
目的:只為將一個問題描述清楚,減少回答者回答問題的時間成本。
3.學會學習
-
尋求幫助前,要有自己的思考
-
知其然知其所以然
-
舉一反三
五、一起改進 VS Code,你也能成為 VS Code 的 Contributor
-
提問
-
Issue
-
PRs
-
插件
-
翻譯
回饋渠道:
-
Bugs & feature request(Github Issue)
-
提問 (Stack Overflow)
-
討論 (Gitter Chat Room/Slack)
提問:
-
Stack Overflow
-
使用標籤
-
好的問題也能幫助別人搜索到
Issue:
-
Report bugs
-
Sumit feature request
-
Share you idea/feedback exising issues
-
幫助翻譯中文issue
PRs:
-
PR指南
-
哪些issue 可以發PR,有help-wanted或者bug標籤的issue、在發PR之前,先於相關的開發負責人討論
六、VS Code 的核心組件
1.Electron
-
GitHub地址(//github.com/electron/electron)
-
基於Node.js(作為後端)和Chromium(作為前端)
-
使用HTML、CSS、JavaScript開發跨平台桌面GUI應用程式
-
使用者:Atom,Skype、GitHub Desktop、Slack、Microsoft Teams
2.Monaco Editor
-
GitHub地址(//github.com/microsoft/monaco-editor)
-
基於瀏覽器的程式碼編輯器:IntelliSense、程式碼驗證、語法高亮、文件比較)
-
支援主流瀏覽器:IE11、Edge、Chrome、Firefox、Safari和Opera
-
使用者:Gitee Web IDE、Cloud Studio、Eclipse Che、Eclipse Theia、Azure DevOps、OneDrive、Edge Dev Tools
3.Language Server Protocol
-
Github地址(//github.com/microsoft/language-server-protocol)
-
它是Editor/IDE 與語言伺服器之間的一種協議,可以讓不同的Editor/IDE 方便嵌入各種程式語言,允許開發人員在最喜愛的工具中使用各種語言來編寫程式
-
支援LSP的開發工具:Eclipse IDE、 Eclipse Theia、Atorm、Sublime Text、Emacs
4.Debug Adapter Protocol
-
Github(//github.com/microsoft/debug-adapter-protocol)
-
DAP與LSP的目的類似,DAP把Editor/IDE與不同語言的debugger解耦,極大地方便了Editor/IDE與其他Debugger的集成
-
支援DAP的開發工具:Eclipse IDE、Eclipse Theia、Emacs、Vim
七、VS Code 怎麼做開源的?
開源的三個階段:
公開源程式碼、Issues &PRs、Planning & Design
1.開源的開發流程
VsCode不僅僅把程式碼開源出來,而是把整個產品的開發過程建立於開源之上。
-
每一年,VsCode團隊都會在GitHub Wiki 發布Roadmap,列出一整年的規劃圖
-
每個月初,在產品設計階段,VsCode團隊會在GitHub Issue上會發布Iteratioin Plan,列出這個月會做的每個功能,每一個功能基本會對應一個GitHub Issue,你可以看到詳細的設計以及mockup
2.開源的生態(以VsCode為例)
-
文檔(//github.com/microsoft/vscode/wiki)
-
Monaco Editor(參考前面GitHub鏈接)
-
Language Server Protocol(參考前面GitHub鏈接)
-
Debug Adapter Protocol(參考前面GitHub鏈接)
八、進階
1.命令行(支援命令行打開VsCode)
命令行–高級選項(VsCode啟動慢,查看插件記憶體使用情況)
2.玩轉Git
玩轉Git–合併衝突
3.打造自己的主題–顏色配置
可以自己編寫顏色插件,也可以去插件市場上下載自己中意的插件。
4.快速創建屬於你的Code Snippet
以我使用Idea為例,Idea中的Live Template與VsCode中的Code Snippet功能基本相同,都是將常用程式碼段抽取出來,通過自定義快捷鍵的方式調出來,減少重複編碼,提高效率。
5.玩轉Task,把重複的工作自動化
與WebStorm如圖功能一樣:
根本目的就是將常用命令抽取出來,不需要自己手動輸入
6.調試–lauch.json
7.遠程開發
Visual Studio Code Remote允許開發者將容器、遠程電腦或Windows Subsystem for Linux 作為完整的開發環境。
-
在部署環境相同的作業系統上進行開發,或者使用更大或更專業的硬體
-
把開發環境作為沙箱,以避免影響本地電腦配置
-
讓新手輕鬆上手,讓每個人都保持一致的開發環境
-
使用原本在本地環境不可用的工具或運行時,或者管理它們的多個版本
-
在WSL里開發Linux應用
-
從多台不同的電腦訪問現有的開發環境
-
調試在其他位置(比如客戶網站或雲端)運行的應用程式
九、插件
1.插件管理
a.web版插件市場
b.內置插件管理
c.命令行
2.好用的插件推薦(根據需求可自行去插件市場下載安裝使用)
a.Settings Sync:輕鬆同步VsCode所有配置
b.Code Runner:程式碼一鍵運行,支援超過40種語言
c.GitLens:Git管理利器
d.REST Client:也許是比Postman更好的選擇
e.Bracket Pair Colorizer:括弧顏色高亮
f.Browser Preview:把Chrome瀏覽器帶入VsCode中
g.LeetCode:Offer收割利器
h.Visual Studio Live Share:極大地方便了協作編程–實時共享程式碼編輯、跟隨游標、團隊調試、分享本地服務、共享終端等
i.Remote Development:基於SSH、Container或者WSL進行遠程開發
3.Visual Studio Code插件開發
-
設計
-
實現
-
推廣
-
維護
從設計->實現->推廣->維護,仔細想來與我們平常開發自己的軟體或者是公司的商業軟體,套路基本上都是相似的。
a.怎樣獲取靈感?
從自身需求出發
Auto Close Tag:GitHub Issue
其它編輯器/IDE的熱門插件
b.確定目標用戶
Code Runner(例子,CodeRunner插件可使用40種程式語言):
-
初學者
-
“懶人”
-
多語言用戶
4.有用資源
a.VsCode插件開發
(//code.visualstudio.com/api/get-started/your-first-extension)
b.VsCode插件樣例
(//github.com/developers-youcong/vscode-extension-dev)
c.我開發的插件
(//github.com/developers-youcong/youcongtech-blog)
5.開發環境
(1)Visual Studio Code
(2)Node.js
(3)Yeoman And VsCode Extension generator
(4)npm install -yo generator-code
a.VsCode介面功能擴展–Workbench
Tree View Container
Tree View
WebView
Status Bar Item
b.VsCode介面功能擴展–Editor area
CodeLens
Decoration
Gutter
Hover
Context Menu
6.推廣渠道
-
Stack Overflow、GitHub、Twitter、FaceBook、Google Plus、LinkedIn
-
部落格:V2ex、知乎、微信公眾號、開源中國、微博、CSDN
7.數據驅動
-
下載量、月活、日活
-
用戶的使用行為
-
優先順序
-
Fail fast