當(dāng)你打開 Visual Studio Code (簡稱 VSCode),是否曾想過如何讓它變得更符合你的工作習(xí)慣?作為一款功能強大且靈活的代碼編輯器,VSCode 提供了豐富的配置選項,可以幫助你定制出最理想的開發(fā)環(huán)境。無論是自動化代碼格式化,還是實時編譯 Sass 文件,甚至只是簡單地美化你的編輯器界面,合理的配置都可以讓你的開發(fā)工作變得更加高效和愉悅。
在本文中,我們將介紹一些關(guān)鍵的 VSCode 配置項,幫助你在日常開發(fā)中節(jié)省時間、提高生產(chǎn)力,并享受更加流暢的編碼體驗。無論你是剛剛接觸 VSCode 的新手,還是希望進(jìn)一步優(yōu)化自己工作流程的開發(fā)者,以下的配置建議都將為你帶來實實在在的幫助。讓我們一起開始這場優(yōu)化之旅吧!
一、如何高效定制 VSCode
打開 VSCode,通過點擊左上角的 “File (文件)” 菜單,然后選擇 “Preferences (首選項)” > “Settings (設(shè)置)”,或者直接按下快捷鍵 Ctrl + ,(Windows/Linux)或 Cmd + ,(Mac)快捷鍵來訪問設(shè)置頁面。

在這里,你可以看到所有的配置項列表。為了方便管理,你可以創(chuàng)建一個 .json 文件來集中管理配置項。點擊設(shè)置頁面中 Open Setting (UI),即可打開一個名為 settings.json 的文件,在這里你可以直接編輯 JSON 格式的配置。

打開了 settings.json 文件,就可以開始添加或修改配置項了。確保你的配置語法正確無誤,以免引起錯誤。

二、VSCode 配置清單
1、保存時自動格式化
此配置用于控制 VSCode 中不同文件類型的默認(rèn)格式化工具,確保在保存文件時自動格式化代碼,并指定特定語言的默認(rèn)格式化擴展(需安裝插件:Prettier - Code formatter)。
配置 Json:
{
"editor.formatOnSave": true,
"editor.wordWrapColumn": 200,
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[less]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[scss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[yaml]": {
"editor.defaultFormatter": "redhat.vscode-yaml"
}
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
editor.formatOnSave |
true |
啟用保存文件時自動格式化代碼。 |
editor.wordWrapColumn |
200 |
設(shè)置自動換行的列數(shù)為 200,當(dāng)文本長度超過此列數(shù)時自動換行。 |
[html] |
{...} |
指定 HTML 文件的默認(rèn)格式化工具為esbenp.prettier-vscode。 |
[css], [less], [scss]
|
{...} |
指定 CSS、LESS 和 SCSS 文件的默認(rèn)格式化工具為esbenp.prettier-vscode。 |
[javascript], [typescript]
|
{...} |
指定 JavaScript 和 TypeScript 文件的默認(rèn)格式化工具為esbenp.prettier-vscode。 |
[vue] |
{...} |
指定 Vue 文件的默認(rèn)格式化工具為esbenp.prettier-vscode。 |
[markdown] |
{...} |
指定 Markdown 文件的默認(rèn)格式化工具為esbenp.prettier-vscode。 |
[json], [jsonc]
|
{...} |
指定 JSON 和帶有注釋的 JSON 文件的默認(rèn)格式化工具為vscode.json-language-features。 |
[yaml] |
{...} |
指定 YAML 文件的默認(rèn)格式化工具為redhat.vscode-yaml。 |
2、光標(biāo)的平滑動效
此配置改善了 VSCode 中的編輯器和平面工作區(qū)列表的滾動體驗,并調(diào)整了光標(biāo)的顯示方式,使得編碼更加流暢舒適。
配置 Json:
{
"editor.smoothScrolling": true,
"editor.cursorBlinking": "expand",
"editor.cursorSmoothCaretAnimation": "on",
"workbench.list.smoothScrolling": true
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
editor.smoothScrolling |
true |
開啟平滑滾動功能,使編輯器內(nèi)的滾動更加順暢。 |
editor.cursorBlinking |
expand |
設(shè)置光標(biāo)的閃爍樣式為展開模式,當(dāng)光標(biāo)在最后一行時,會擴展到下一行的開始位置。 |
editor.cursorSmoothCaretAnimation |
on |
啟用平滑的光標(biāo)動畫效果,使得光標(biāo)的移動更加自然。 |
workbench.list.smoothScrolling |
true |
在工作臺的所有列表和平面樹控件中啟用平滑滾動,如文件資源管理器、符號列表等。 |
3、自動補全
此配置優(yōu)化了 VSCode 編輯器中自動關(guān)閉括號、引號以及刪除和覆蓋行為,使得代碼輸入更加流暢,并減少了手動添加關(guān)閉符號的工作量。
配置 Json:
{
"editor.autoClosingBrackets": "beforeWhitespace",
"editor.autoClosingDelete": "always",
"editor.autoClosingOvertype": "always",
"editor.autoClosingQuotes": "beforeWhitespace",
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
editor.autoClosingBrackets |
"beforeWhitespace" |
當(dāng)光標(biāo)位于空格之前時,自動關(guān)閉括號。這可以防止在字符串內(nèi)部或其他不希望的地方自動添加括號。 |
editor.autoClosingDelete |
"always" |
在刪除與之配對的打開括號/引號時,也刪除對應(yīng)的自動關(guān)閉括號/引號。 |
editor.autoClosingOvertype |
"always" |
在覆蓋模式下,插入自動關(guān)閉的括號/引號時替換已存在的字符。 |
editor.autoClosingQuotes |
"beforeWhitespace" |
當(dāng)光標(biāo)位于空格之前時,自動關(guān)閉引號。這可以防止在字符串內(nèi)部或其他不希望的地方自動添加引號。 |
4、代碼格式規(guī)范
通過配置文本的換行和行高、縮進(jìn)檢測及 Tab 寬度、保存文件時移除行尾空白字符,以及控制 JavaScript 和 TypeScript 代碼格式化時是否移除多余的分號,你可以顯著提升 VSCode 編輯器的可讀性和代碼整潔度。這些設(shè)置不僅使代碼更加統(tǒng)一和美觀,還能避免因意外縮進(jìn)或不必要的變更而導(dǎo)致的問題,確保代碼風(fēng)格的一致性,并遵循特定的編碼規(guī)范。
配置 Json:
{
"editor.wordWrap": "on",
"editor.lineHeight": 1.6,
"editor.detectIndentation": false,
"editor.tabSize": 4,
"files.trimTrailingWhitespace": true,
"javascript.format.semicolons": "remove",
"typescript.format.semicolons": "remove",
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
editor.wordWrap |
"on" |
啟用自動換行功能,當(dāng)文本長度超過視圖寬度時,文本將會自動換行,避免水平滾動。 |
editor.lineHeight |
1.6 |
設(shè)置行高為 1.6 倍,默認(rèn)情況下,行間距增加,使得文本行之間的空間更大,提高可讀性。 |
editor.detectIndentation |
false |
關(guān)閉自動檢測文件中的縮進(jìn)寬度和使用空格代替 Tab 的功能。這樣可以避免加載文件時根據(jù)文件內(nèi)容自動調(diào)整縮進(jìn)的問題。 |
editor.tabSize |
4 |
設(shè)置 Tab 鍵插入的字符數(shù)為 4 個,即每個 Tab 相當(dāng)于 4 個空格的寬度。這有助于保持代碼風(fēng)格一致。 |
files.trimTrailingWhitespace |
true |
啟用保存文件時移除每行末尾空白字符的功能。這有助于保持代碼的整潔,并減少由于無意的空格引起的版本控制差異。 |
javascript.format.semicolons |
"remove" |
設(shè)置 JavaScript 代碼格式化時移除多余的分號。 |
typescript.format.semicolons |
"remove" |
設(shè)置 TypeScript 代碼格式化時移除多余的分號。 |
5、自動更新引用
此配置用于優(yōu)化 VSCode 中 TypeScript、JavaScript 和 Vue.js 項目的自動導(dǎo)入行為,使得代碼編寫更加高效,并確保文件移動時自動更新導(dǎo)入語句。
配置 Json:
{
"typescript.preferences.preferTypeOnlyAutoImports": true,
"typescript.preferences.includePackageJsonAutoImports": "on",
"javascript.suggest.autoImports": true,
"typescript.suggest.autoImports": true,
"vue.updateImportsOnFileMove.enabled": true,
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
typescript.preferences.preferTypeOnlyAutoImports |
true |
在自動導(dǎo)入時,優(yōu)先使用類型只讀導(dǎo)入(import type {} from 'module'),適用于僅需要類型信息的情況。 |
typescript.preferences.includePackageJsonAutoImports |
"on" |
在自動導(dǎo)入時,包括來自package.json中的依賴項。這使得從node_modules中引入模塊更加方便。 |
javascript.suggest.autoImports |
true |
啟用 JavaScript 的自動導(dǎo)入建議,當(dāng)引用模塊或類型時,自動提供導(dǎo)入語句的建議。 |
typescript.suggest.autoImports |
true |
啟用 TypeScript 的自動導(dǎo)入建議,與 JavaScript 類似,但在 TypeScript 環(huán)境中更為重要。 |
vue.updateImportsOnFileMove.enabled |
true |
當(dāng) Vue 組件文件被移動時,自動更新所有相關(guān)導(dǎo)入語句,確保文件路徑正確無誤。 |
6、代碼展示優(yōu)化
通過配置括號匹配的高亮顯示和引導(dǎo)線,以及控制迷你地圖的顯示和折疊策略,你可以增強 VSCode 編輯器內(nèi)代碼結(jié)構(gòu)的可見性和美觀性,同時保持編輯器界面的簡潔。這些設(shè)置不僅幫助開發(fā)者更容易地理解和導(dǎo)航代碼結(jié)構(gòu),還能通過基于代碼縮進(jìn)的折疊策略減少視覺上的雜亂,從而提升開發(fā)效率和代碼可讀性。
配置 Json:
{
"editor.guides.bracketPairs": true,
"editor.bracketPairColorization.enabled": true,
"editor.minimap.enabled": false,
"editor.foldingStrategy": "indentation",
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
editor.guides.bracketPairs |
true |
啟用括號對引導(dǎo)線,在編輯器中繪制線條連接成對的括號,以便更清晰地看到它們的關(guān)系。 |
editor.bracketPairColorization.enabled |
true |
啟用括號對的顏色高亮功能,為不同類型的括號對使用不同的顏色進(jìn)行標(biāo)記,以區(qū)分不同的代碼塊。 |
editor.minimap.enabled |
false |
禁用迷你地圖功能,移除編輯器右側(cè)的迷你地圖面板。 |
editor.foldingStrategy |
"indentation" |
設(shè)置折疊策略為基于代碼縮進(jìn)的折疊方式,使得代碼折疊更加直觀和易于理解。 |
7、文件標(biāo)簽顯示方式
此配置用于自定義 VSCode 中特定文件的標(biāo)簽顯示方式,使得目錄中的index文件在編輯器標(biāo)簽中顯示為目錄名加上文件擴展名的形式,從而更清晰地區(qū)分不同目錄下的同名文件。
配置 Json:
{
"workbench.editor.customLabels.patterns": {
"**/index.vue": "${dirname}.vue",
"**/index.js": "${dirname}.js",
"**/index.ts": "${dirname}.ts",
"**/index.jsx": "${dirname}.jsx",
"**/index.tsx": "${dirname}.tsx"
},
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
workbench.editor.customLabels.patterns |
{...} |
定義了一組模式匹配規(guī)則,用于自定義特定文件類型的編輯器標(biāo)簽顯示方式。 |
**/index.vue |
${dirname}.vue |
當(dāng)打開名為index.vue的文件時,編輯器標(biāo)簽將顯示為該文件所在目錄名加上.vue。 |
**/index.js |
${dirname}.js |
當(dāng)打開名為index.js的文件時,編輯器標(biāo)簽將顯示為該文件所在目錄名加上.js。 |
**/index.ts |
${dirname}.ts |
當(dāng)打開名為index.ts的文件時,編輯器標(biāo)簽將顯示為該文件所在目錄名加上.ts。 |
**/index.jsx |
${dirname}.jsx |
當(dāng)打開名為index.jsx的文件時,編輯器標(biāo)簽將顯示為該文件所在目錄名加上.jsx。 |
**/index.tsx |
${dirname}.tsx |
當(dāng)打開名為index.tsx的文件時,編輯器標(biāo)簽將顯示為該文件所在目錄名加上.tsx。 |
8、文件關(guān)聯(lián)
此配置用于控制 VSCode 中文件擴展名與語言模式的關(guān)聯(lián),使得特定擴展名的文件能夠使用預(yù)設(shè)的語言模式進(jìn)行高亮顯示和語法檢查。
配置 Json:
{
"files.associations": {
"*.wxss": "css",
"*.wxml": "html",
"*.svg": "html",
"*.xml": "html",
"*.wxs": "javascript",
"*.cjson": "jsonc",
"*.json": "jsonc",
},
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
files.associations |
{...} |
文件擴展名與語言模式關(guān)聯(lián)的配置對象。 |
*.wxss |
css |
將.wxss文件關(guān)聯(lián)為 CSS 語言模式。 |
*.wxml |
html |
將.wxml文件關(guān)聯(lián)為 HTML 語言模式。 |
*.svg |
html |
將.svg文件關(guān)聯(lián)為 HTML 語言模式。 |
*.xml |
html |
將.xml文件關(guān)聯(lián)為 HTML 語言模式。 |
*.wxs |
javascript |
將.wxs文件關(guān)聯(lián)為 JavaScript 語言模式。 |
*.cjson |
jsonc |
將.cjson文件關(guān)聯(lián)為 JSON with Comments 語言模式。 |
*.json |
jsonc |
將.json文件關(guān)聯(lián)為 JSON with Comments 語言模式。 |
9、提示設(shè)置
此配置項優(yōu)化了 VSCode 的智能建議和代碼補全功能,使其更加符合用戶的操作習(xí)慣,并提高代碼輸入的效率。通過調(diào)整建議行為和接受方式,可以讓代碼編寫過程更加順暢。
此配置用于控制 VSCode 編輯器中快速建議的行為,使得在鍵入代碼時,編輯器不僅在普通代碼中提供快速建議,還能夠在注釋和字符串中提供相應(yīng)的建議。
配置 Json:
{
"editor.suggest.snippetsPreventQuickSuggestions": false,
"editor.acceptSuggestionOnEnter": "smart",
"editor.suggestSelection": "recentlyUsedByPrefix",
"editor.suggest.insertMode": "replace",
"editor.quickSuggestions": {
"other": true,
"comments": true,
"strings": true
},
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
editor.suggest.snippetsPreventQuickSuggestions |
false |
控制是否讓代碼片段阻止快速建議的顯示。設(shè)置為 false 表示即使存在代碼片段,也會顯示快速建議。 |
editor.acceptSuggestionOnEnter |
"smart" |
控制是否在按下 Enter 鍵時接受建議。設(shè)置為 "smart" 表示只有當(dāng)建議確實完成輸入時才接受。 |
editor.suggestSelection |
"recentlyUsedByPrefix" |
當(dāng)有多個建議時,優(yōu)先選擇最近使用過的或與前綴最匹配的建議。 |
editor.suggest.insertMode |
replace |
設(shè)置智能建議插入模式為替換模式。這意味著當(dāng)插入建議時,它將替換掉光標(biāo)后面的文本,而不是僅僅插入文本。 |
editor.quickSuggestions |
{...} |
配置快速建議的全局開關(guān),控制何時顯示代碼建議。 |
other |
true |
在非字符串和非注釋的代碼中開啟快速建議。 |
comments |
true |
在注釋中開啟快速建議。 |
strings |
true |
在字符串中開啟快速建議。 |
10、美化編輯器界面
此配置用于改變 VSCode 窗口的樣式,控制啟動時的行為,并設(shè)置編輯器的顏色主題,從而打造出一個既符合個人審美又高效的開發(fā)環(huán)境。
配置 Json:
{
"window.dialogStyle": "custom",
"workbench.startupEditor": "none",
"workbench.colorTheme": "One Dark Pro Darker",
"workbench.startupEditor": "none",
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
window.dialogStyle |
"custom" |
將對話框樣式設(shè)置為自定義模式,這意味著對話框?qū)⑹褂?VSCode 自身的樣式,而不是操作系統(tǒng)默認(rèn)的對話框樣式。 |
workbench.startupEditor |
"none" |
設(shè)置啟動編輯器為“無”,意味著在啟動 VSCode 時不會自動打開任何編輯器或歡迎頁面,而是直接進(jìn)入空工作區(qū)。 |
workbench.colorTheme |
"One Dark Pro Darker" |
設(shè)置工作區(qū)的顏色主題為"One Dark Pro Darker"(需安裝 One Dark Pro Darker 主題)。 |
files.autoGuessEncoding |
true |
啟用自動猜測文件編碼的功能。當(dāng)打開一個文件時,VSCode 將嘗試自動檢測文件的編碼格式,以確保文件內(nèi)容能夠正確顯示。 |
11、搜索排除
此配置用于控制 VSCode 中的搜索行為,排除指定路徑下的文件和文件夾,以提高搜索效率并避免不必要的結(jié)果。
配置 Json:
{
"search.exclude": {
"**/node_modules": true,
"**/pnpm-lock.yaml": true,
"**/package-lock.json": true,
"**/.DS_Store": true,
"**/.git": true,
"**/.gitignore": true,
"**/.idea": true,
"**/.vscode": true,
"**/build": true,
"**/dist": true,
"**/tmp": true,
},
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
search.exclude |
{...} |
排除搜索路徑的配置對象。 |
**/node_modules |
true |
排除node_modules目錄下的所有文件。 |
**/pnpm-lock.yaml |
true |
排除pnpm-lock.yaml文件。 |
**/package-lock.json |
true |
排除package-lock.json文件。 |
**/.DS_Store |
true |
排除.DS_Store文件(macOS 系統(tǒng)文件)。 |
**/.git |
true |
排除.git目錄下的所有文件。 |
**/.gitignore |
true |
排除.gitignore文件。 |
**/.idea |
true |
排除.idea目錄下的所有文件(IntelliJ IDEA 配置文件)。 |
**/.vscode |
true |
排除.vscode目錄下的所有文件(VSCode 工作區(qū)配置文件)。 |
**/build |
true |
排除build目錄下的所有文件。 |
**/dist |
true |
排除dist目錄下的所有文件(通常用于存放構(gòu)建后的文件)。 |
**/tmp |
true |
排除tmp目錄下的所有文件(臨時文件)。 |
12、其它的配置
通過配置 editor.wordSeparators、啟用鼠標(biāo)滾輪縮放、設(shè)置粘性滾動以及調(diào)整折疊策略,你可以顯著提升 VSCode 編輯器的操作便利性和代碼可讀性。自定義單詞分隔符可以更精確地識別代碼中的關(guān)鍵字和變量名,滾輪縮放功能則便于調(diào)整文本大小以便更好地查看代碼。粘性滾動功能讓頂部的行在滾動時暫時固定顯示,直至滾動到一定距離后再繼續(xù)跟隨滾動,而資源管理器和筆記本視圖,使其顯示更加緊湊,從而節(jié)省空間并提高瀏覽效率。
配置 Json:
{
"editor.wordSeparators": "`~!@%^&*()=+[{]}\\|;:'\",.<>/?(),。;:",
"editor.mouseWheelZoom": true,
"editor.stickyScroll.enabled": true,
"explorer.compactFolders": true,
"notebook.compactView": true,
}
配置說明:
| 配置項 | 值 | 作用說明 |
|---|---|---|
editor.wordSeparators |
"`~!@%^&*()=+[{]}\|;:'",.<>/?(),。;:" | 通過定義單詞分隔符集合在編輯器中被視為單詞的邊界 |
editor.mouseWheelZoom |
true |
啟用鼠標(biāo)滾輪縮放功能,當(dāng)用戶按住 Ctrl 鍵并滾動鼠標(biāo)滾輪時,編輯器內(nèi)的文本大小將會縮放。 |
editor.stickyScroll.enabled |
true |
啟用粘性滾動功能,當(dāng)滾動編輯器內(nèi)容時,頂部幾行會在短時間內(nèi)保持靜止,直到滾動過一定距離后才隨文檔繼續(xù)移動。 |
explorer.compactFolders |
true |
在資源管理器中啟用緊湊模式,隱藏未打開文件夾的圖標(biāo),只顯示文件夾名稱,節(jié)省空間。 |
notebook.compactView |
true |
在筆記本編輯器中啟用緊湊視圖模式,減少單元格間的空白區(qū)域,使得頁面布局更加緊密。 |