2018 VS Code 設定大補帖與小技巧

分享我常用到的 VS Code 套件與設定,以我自己為例,平時寫 React、Redux、Flux、Vue、CSS、NodeJS、C# 與正在學的 Go,也分享一些我常使用 VS Code 的用法,與如何使用 VS Code 讓團隊協作更順利。

Ryan Hsu
14 min readNov 4, 2018
“person holding black and green compass pointing to west” by Aron on Unsplash

目錄

套件 Plugins

  • Coding Enhancement
  • 團隊合作 Team Cooperation
  • 版本控制 Version Control
  • 外觀 Theme
  • 其他 others

設定 Settings 與技巧 hints

  • 我的設定 settings.json
  • 安裝 code 指令 Install ‘code’ command in path
  • 如何使用 ‘code’ command 開啟 VS Code
  • 如何在 Windows 資料夾網址列直接開啟 VS Code?
  • 片段程式碼產生 Code snippets Generator
  • 快捷鍵 Key Binding
  • 推薦團隊安裝哪些套件
  • 團隊設定檔 settings.json
  • 常用的快捷鍵

Coding Enhancement

Babel JavaScript

JavaScript 語法高亮,支援 ES201x、React JSX、Flow 與 GraphQL。

有另一套很類似的套件,叫做 Sublime Babel,差別在一些 Highlight 不同,我自己覺得 Babel JavaScript 更符合我的需求,如果你想知道差異請看:What’s the difference between this and Sublime Babel?

Code Spell Checker

所有程式的變數或是方法命名都應該是「有意義」的,不是隨的縮寫,這個套件可以幫你檢查英文單字是否有拼錯,且支援駝峰命名。

EditorConfig for VS Code

讓 VS Code 有 EditorConfig 的能力。

EditorConfig 本身是一個幫助團隊有統一規範的工具,尤其是遇到團隊中有人用「不同的」作業系統或是編輯器時,統一各種的不同。

ESLint

可以與 project 中的 .eslintrc 互動,讓你的 ESLint 規則在 Coding 的時候就提醒你是否有違反 ESLint 的規則。

Import Cost

非必要,顯示 import 這個 library 「大約」會需要多少空間。

Prettier — Code formatter

可以與 project 中的 prettier 設定檔互動,可以設定自動 format 的時機點,例如:存檔就 format。

Project Manager

如果你同時有許多 project 要開發,這個套件可以幫助你快速切換 project,非常方便。

Bookmarks

在開發時,用書籤標記位置,方便後續回來找位置。

Vetur

如果你也開發 Vue,那麼這套你一定不陌生,可以幫助 VS Code 認識 Vue 的語法與幫助檢查問題。

npm Intellisense

在 import Library 的時候幫你提示 library 的名稱,避免打錯字,也能加速開發。

Path IntelliSense

好用的「相對路徑」提示工具,當你使用相對路徑 import 模組的時候,可以直接提示當前路徑的檔案,非常好用。

如果你常使用 Webpack 的 Alias 功能,可以考慮不安裝

Toggle Quotes

幫你快速重構「引號」,從 "' → ` 的循環。

Create tests

幫你快速建立測試檔案,支援 .ts.tsx.js.jsx 檔案類型。也支援 test template,但我通常自己寫 code snippet 達到同樣的目的

C#

微軟基本的 C# 套件。

C# FixFormat

強化 VS Code 對於 C# 的 format 能力,原生的太弱。

C# Extensions

強化 VS Code 對於 C# 的 Coding IntelliSense 能力。

Dotnet Core Test Explorer

套件會在 VS Code 產生一個新的 Tab,收集所有 DotNET Core 的測試,也可以跑測試,功能上類似 Visual Studio 的 Test Explore。

Go

VS Code 是寫 Go 目前最多人使用的 IDE,這套可以涵蓋所有你寫 Go 時所需的功能。

ES7 React/Redux/GraphQL/React-Native snippets

這套涵蓋了 React/Redux/GraphQL/React-Native 的大部分 code snippets,如果你不想客製化自己的 snippets,這套會是你很好的選擇。

團隊合作 Team Cooperation

Project Snippets

VS Code 本身可以依照語言自訂各個語言的 snippets,但這個功能只有「個人」,這個套件可以幫你把需要的 snippets 分享給團隊,只要把 snippets 放在 projectRoot/.vscode/snippets 底下就可以囉!

版本控制 Version Control

Git History

直接在 VS Code 裡面可以看到 Git 的 Graph 跟 History

GitLens

可以逐行看紀錄,也會自動 High light 這一行原始碼的上一個紀錄。

Gi

依照需求,快速產生 .gitignore 檔案的指令。

外觀 Theme

Subliminal

Dan Abramov 製作的 VS Code Theme,基於 Oceanic NextSpacegray 做的修改。

而這個套件的文件也有教你一些他自己推薦或是使用的設定,讓你自己決定你的 VS Code 只顯示某些東西,可以斟酌參考使用!

Theme 與 Icon Theme 的部分主要是分享我自己使用的 Theme,沒有一定要用哪個,只要自己用起來順手即可。

其他 Others

carbon-now-sh

Carbon 是一個程式碼美化與圖片輸出網頁,這套可以幫你快速從 Carbon 產出技術文章所需要的圖片。

我的設定 settings.json

{
"editor.fontFamily": "Fira Code", // 請先下載字型,否則無效
"editor.fontSize": 16,
"editor.fontLigatures": true, // 變型自設定
"editor.tabSize": 2,
"editor.snippetSuggestions": "top", // code snippet 提示拉到最上面
"files.autoSave": "onFocusChange", // 離開檔案自動存檔
"editor.folding": false,
"editor.lineHeight": 26,
"editor.lineNumbers": "off",
"editor.matchBrackets": false,
"editor.minimap.enabled": false, // 關閉 miniMap
"editor.occurrencesHighlight": false,
"editor.overviewRulerBorder": false,
"editor.renderIndentGuides": false,
"editor.renderLineHighlight": "none",
"editor.scrollbar.horizontal": "hidden",
"explorer.openEditors.visible": 0,
"window.zoomLevel": 0,
"workbench.colorTheme": "Subliminal",
"workbench.editor.showIcons": false,
"prettier.singleQuote": true,
"html.suggest.angular1": false,
"html.suggest.ionic": false,
"[html]": { "editor.autoIndent": false },
"csharp.format.enable": false,
"breadcrumbs.enabled": true,
"workbench.statusBar.visible": true,
"terminal.integrated.fontFamily": "Fira Mono for Powerline", // 跟你的 iTerm2 一樣就好
"terminal.integrated.fontSize": 14
}

以上是我的 MacOS 的設定,如果在 Windows 上我還會多做一個設定 “terminal.integrated.shell.windows”: “C:\\Program Files\\Git\\bin\\bash.exe” 讓 Windows 的 Terminal Tab 使用 GitBash,因為會顯示 Git 現在的 Branch 名稱,使用體驗上比較好。

安裝 code 指令 Install ‘code’ command in path

這個應該只有 MacOS 有需要做,Windows 安裝完應該就會有了。

如果你習慣使用 Terminal,那麼你應該會想從 Terminal「當前位置」開啟 VS Code,步驟如下

  • 使用 Command ⌘ + Shift ⇧ + P 開啟命令列
  • 輸入 install
  • 按下 Shell Command: Install ‘code’ command in PATH

如何使用 ‘code’ command 開啟 VS Code

如果你的 ‘code’ 指令都已經安裝好了,那麼 MacOS 與 Windows 的方法都是一樣的,在 Terminal 中,先跳到目的資料夾,接著下 code . 就可以「從該目錄打開 VS Code」。

如何在 Windows 資料夾網址列直接開啟 VS Code?

其實 Windows 版本 VS Code 安裝的時候會有一個選項是「在右鍵選單開啟 VS Code」,一樣可以做到同一件事情,但如果你想要從網址列開啟呢?

一種方法是在網址列輸入 cmd ,用 Windows Command 開啟當前資料夾位置,再輸入 code . ,就可以開啟 VS Code,但如果我們要直接開啟 VS Code,不要多開一個 Windows Command 呢?

在網址列輸入 code.cmd . 就可以做到這件事囉!

這個方法是從 Will 保哥 的文章學到的,如何在檔案總管快速開啟 cmd 命令提示字元或 Visual Studio Code

片段程式碼產生 Code snippets Generator

這邊以「個人」片段程式碼為例,如果你要使用 Project Snippet,就是放在 Project Snippet 相對應的路徑就對了!

如何開啟個人程式碼片段?

一樣先使用 Command ⌘ + Shift ⇧ + P 開啟命令列,輸入 snippet,點下 「Preferences: Configure User Snippets」

再輸入要寫入的語言,以 JavaScript React 為例,選擇 javascriptreact 這個選項

如何產生 Snippets

先到 snippet generator 網站,輸入你要的 code snippet 格式,包含縮排、空格等等,這邊以 React Component 為例,react component 就是我的描述, rc 就是我的觸發快捷鍵。

placeholder 宣告使用 ${數字:名稱} ,數字表示按了 Tab 會到下一個「數字」的 placeholder,名稱是幫助你再 coding 的時候顯示給你看的名稱,同一個 placeholder 可以放多個,如上圖 ${1:componentName} 放了 5 個不同的地方,這麼一來你在我第一個輸入 ComponentName 的時候就會一次改變五個地方的值。

快捷鍵 Key Binding

如果你跟我一樣有寫 Data Flow Pattern,例如:Redux、Flux 或是 Mobx,那麼 Action 的部分常會使用到「轉大寫」的功能,這算是一種習慣,而 VS Code 本身沒有預設「轉大寫與轉小寫」的 Key Binding,我們就透過設定自己調整!

  • 轉大寫 To UpperCase:Ctrl + U + P
  • 轉小寫 To LowerCase:Ctrl + L + P

推薦團隊安裝哪些套件

剛剛有講到 VS Code 有許多好用的套件,那如果團隊有新成員,你要怎麼告訴他哪些套件要安裝?一個一個講太慢,每個人要講一次又很浪費時間,所以我們會用到 VS Code 內建的「Project Plugins Recommend」,只要設定完成,新成員只要用 VS Code 開啟 project 就會看到,在套件的推薦 (Recommend) 裡面有你推薦的套件,這麼一來就不必多費口舌拉!

設定檔名稱與位置:projectRoot/.vscode/extensions.json

這邊以 Go 套件為例,把它增加到推薦當中

{
"recommendations": [
"ms-vscode.go"
]
}

ms-vscode.go 是怎麼來的呢?他算是套件的 ID,從套件說明頁面,套件名稱的右邊就有一小行 ID,那就是了!

團隊設定檔 settings.json

有個人的設定檔,當然也有團隊設定檔,算是可以強迫使用 VS Code 開啟這個 project 的人都套用這個設定,所以好不好用見仁見智囉,而且有 editorConfig,所以這個功能算是沒有一定必要。

設定檔名稱與位置:projectRoot/.vscode/settings.json

格式就跟個人的 settings.json 一樣,通常我只設定這兩個,增加團隊的工作效率即可。

{  
"editor.tabSize": 2,
"editor.snippetSuggestions": "top", // code snippet 提示拉到最上面
}

常用的快捷鍵 Shortcut

  • 開啟命令列:Command ⌘ + Shift ⇧ + P
  • 搜尋並開啟檔案:Command ⌘ + P
  • 關閉當前檔案:Command ⌘ + W
  • 開啟或關閉 Terminal:Command ⌘ + `

這幾個用的熟練就已經比 80% 的人快好幾倍了,如果其他你記不起來沒關係,就用「開啟命令列」搜尋你要的指令,這個功能幾乎涵蓋了所有快捷鍵,超級方便!

文章參考 Reference

結語

類似的文章其實我在 GitHub 有寫過類似的 Repository,但剛好利用這次,整理出除了設定以外,還有一些實用的小技巧,俗話說的好「自己的習慣只有自己才知道」所以把 IDE 設定為自己習慣的模式,絕對可以增加不少開發的速度!

Hi 我是 Ryan,如果這篇文章有幫助到你,請你不吝嗇的給予我鼓掌,那將是我進步的動力!👏

另外,你知道 Medium 一篇文章拍手其實可以拍 50 下嗎?如果你願意,請賜我掌聲,謝謝!

--

--