基本編輯
Visual Studio Code 首先是一個編輯器,並包含了高度提升原始碼編輯生產力所需的各項功能。本主題將帶領您了解編輯器的基本概念,並協助您開始編寫程式碼。
鍵盤快速鍵
在編寫程式碼時能夠保持雙手不離開鍵盤,對於高生產力至關重要。VS Code 具有豐富的預設快速鍵,同時也允許您進行自訂。
- 快速鍵參考 - 下載參考表,學習最常用且熱門的快速鍵。
- 安裝按鍵對應擴充功能 - 透過安裝按鍵對應擴充功能,在 VS Code 中使用您舊編輯器(例如 Sublime Text、Atom 和 Vim)的快速鍵。
- 自訂快速鍵 - 變更預設快速鍵以符合您的風格。
多重選取 (多游標)
VS Code 支援多重游標,可進行快速、同步的編輯。您可以使用 Alt+Click 新增次要游標(呈現較細)。每個游標會根據其所在的內容獨立運作。新增更多游標的常見方式是使用 ⌥⌘↓ (Windows Ctrl+Alt+Down, Linux Shift+Alt+Down) 或 ⌥⌘↑ (Windows Ctrl+Alt+Up, Linux Shift+Alt+Up) 在下方或上方插入游標。
您的顯示卡驅動程式(例如 NVIDIA)可能會覆寫這些預設快速鍵。

⌘D (Windows, Linux Ctrl+D) 會選取游標所在的單字,或是目前選取範圍的下一個相符項目。
在使用多重游標尋找時,您可以執行 ⌘K ⌘D (Windows, Linux Ctrl+K Ctrl+D) 來跳過下一個相符項目。這有助於您在編輯重複文字時避免加入不需要的選取項目。

您也可以使用 ⇧⌘L (Windows, Linux Ctrl+Shift+L) 新增更多游標,這會在目前選取文字的每一個相符項目處新增選取範圍。
多重游標修飾鍵
如果您想將套用多重游標的修飾鍵變更為 macOS 上的 Cmd+Click 以及 Windows 與 Linux 上的 Ctrl+Click,您可以透過 editor.multiCursorModifier 設定 來達成。這可讓來自其他編輯器(例如 Sublime Text 或 Atom)的使用者繼續使用他們熟悉的鍵盤修飾鍵。
此設定可以設為
ctrlCmd- 對應到 Windows 上的 Ctrl 以及 macOS 上的 Cmd。alt- 現有的預設 Alt。
還有一個功能表項目 Selection > Switch to Ctrl+Click for Multi-Cursor 或 Selection > Switch to Alt+Click for Multi-Cursor,可快速切換此設定。
Go to Definition (移至定義) 與 Open Link (開啟連結) 手勢也會遵循此設定並進行調整,以免發生衝突。例如,當設定為 ctrlCmd 時,可以使用 Ctrl/Cmd+Click 新增多重游標,而開啟連結或移至定義則可以使用 Alt+Click 來叫用。
縮小/擴大選取範圍
快速縮小或擴大目前的選取範圍。使用 ⌃⇧⌘← (Windows, Linux Shift+Alt+Left) 與 ⌃⇧⌘→ (Windows, Linux Shift+Alt+Right) 來觸發。
以下是使用 ⌃⇧⌘→ (Windows, Linux Shift+Alt+Right) 擴大選取範圍的範例

欄 (方塊) 選取
將游標放在其中一個角落,然後按住 Shift+Alt 同時拖曳到對角

當使用 Ctrl/Cmd 作為 多重游標修飾鍵 時,這會變更為 Shift+Ctrl/Cmd。
macOS 和 Windows 上也有欄選取的預設快速鍵,但 Linux 上沒有。
| 按鍵 | 指令 | 命令 ID |
|---|---|---|
| ⇧↓ (Windows, Linux Shift+Down) | 向下欄選取 | cursorColumnSelectDown |
| ⇧↑ (Windows, Linux Shift+Up) | 向上欄選取 | cursorColumnSelectUp |
| ⇧← (Windows, Linux Shift+Left) | 向左欄選取 | cursorColumnSelectLeft |
| ⇧→ (Windows, Linux Shift+Right) | 向右欄選取 | cursorColumnSelectRight |
| ⇧PageDown (Windows, Linux Shift+PageDown) | 向下翻頁欄選取 | cursorColumnSelectPageDown |
| ⇧PageUp (Windows, Linux Shift+PageUp) | 向上翻頁欄選取 | cursorColumnSelectPageUp |
如果您願意,您可以 編輯 keybindings.json 將其繫結至您更熟悉的按鍵。
欄選取模式
使用者設定 Editor: Column Selection 會控制此功能。一旦進入此模式(如狀態列所示),滑鼠手勢和方向鍵預設將會建立欄選取。此全域切換開關也可以透過 Selection > Column Selection Mode 功能表項目來存取。此外,也可以從狀態列停用欄選取模式。
儲存 / 自動儲存
依預設,VS Code 需要明確動作才能將變更儲存到磁碟中 ⌘S (Windows, Linux Ctrl+S)。
當編輯器有未儲存的變更時,編輯器分頁中會顯示一個點狀指示器,且總管檢視會顯示一個徽章,指出未儲存的檔案數量。這些變更尚未儲存至磁碟,但 VS Code 會自動備份它們,以便在應用程式意外關閉時進行還原(請參閱 熱退出 (Hot Exit))。
不過,您可以輕鬆開啟 Auto Save(自動儲存),它會在經過設定的延遲時間後,或當焦點離開編輯器時儲存您的變更。開啟此選項後,就不需要明確儲存檔案。開啟 Auto Save 最簡單的方法是使用 File > Auto Save 切換開關,以開啟或關閉延遲後儲存。
若要對 Auto Save 有更多控制,請開啟使用者或工作區 設定 並尋找相關設定
- files.autoSave :可以有下列值
off- 停用自動儲存。afterDelay- 在經過設定的延遲時間後儲存檔案(預設為 1000 毫秒)。onFocusChange- 當焦點移出已變更檔案的編輯器時儲存檔案。onWindowChange- 當焦點移出 VS Code 視窗時儲存檔案。
- files.autoSaveDelay :當 files.autoSave 設定為
afterDelay時,以毫秒為單位設定延遲時間。預設值為 1000 毫秒。
如果您想要針對特定語言或檔案類型自訂 Auto Save 功能,可以在 settings.json 檔案中新增語言特定規則來達成。
例如,若要為 LaTeX 檔案停用 Auto Save
"[latex]": {
"files.autoSave": "off",
},
熱退出 (Hot Exit)
依預設,當您結束時,VS Code 會記住檔案中未儲存的變更。當透過 File > Exit(macOS 上為 Code > Quit)關閉應用程式,或關閉最後一個視窗時,就會觸發熱退出。
您可以透過將 files.hotExit 設定為下列值來設定熱退出
"off":停用熱退出。"onExit":當應用程式關閉時(也就是在 Windows/Linux 上關閉最後一個視窗時,或觸發workbench.action.quit命令(從命令選擇區、快速鍵或功能表)時),將會觸發熱退出。所有未開啟資料夾的視窗將會在下次啟動時還原。"onExitAndWindowClose":當應用程式關閉時(也就是在 Windows/Linux 上關閉最後一個視窗時,或觸發workbench.action.quit命令(從命令選擇區、快速鍵或功能表)時),以及針對任何已開啟資料夾的視窗(無論是否為最後一個視窗)都會觸發熱退出。所有未開啟資料夾的視窗將會在下次啟動時還原。若要將資料夾視窗還原至關機前的狀態,請將 window.restoreWindows 設定為all。
如果熱退出發生問題,所有備份都會儲存在標準安裝位置的下列資料夾中
- Windows
%APPDATA%\Code\Backups - macOS
$HOME/Library/Application Support/Code/Backups - Linux
$HOME/.config/Code/Backups
尋找與取代
VS Code 允許您在目前開啟的檔案中快速尋找與取代文字。按下 ⌘F (Windows, Linux Ctrl+F) 在編輯器中開啟「尋找」控制項並輸入搜尋字串。搜尋結果會在編輯器、概觀尺標和迷你地圖中反白顯示。
VS Code 會在您輸入時立即開始搜尋。若要僅在按下 Enter 時才開始搜尋,請清除 editor.find.findOnType 設定。
若要在找到相符項目後自動關閉「尋找」控制項並將焦點歸還給編輯器,請啟用 editor.find.closeOnResult 設定。
如果目前檔案中有多個相符項目,當「尋找」輸入方塊具有焦點時,請按下 Enter 前往下一個結果,或按下 ⇧Enter (Windows, Linux Shift+Enter) 前往上一個結果。
依預設,VS Code 會儲存工作區的尋找與取代查詢歷史記錄,並在重新啟動後還原。您可以使用 editor.find.history 與 editor.find.replaceHistory 設定來設定此行為。將值設為 never 即可停用儲存歷史記錄。
從選取範圍植入搜尋字串
當開啟「尋找」控制項時,它會自動將編輯器中選取的文字填入「尋找」輸入方塊中。如果選取範圍是空的,則會改為將游標下方的單字插入輸入方塊中。

將 editor.find.seedSearchStringFromSelection 設定為 "never" 即可關閉此功能。
在選取範圍中尋找
依預設,尋找作業會在編輯器中的整個檔案上執行。若要將搜尋限制在文字選取範圍內,請選取「尋找」控制項上的 Find in Selection 圖示,或按下 ⌥⌘L (Windows, Linux Alt+L)。

如果您希望這成為「尋找」控制項的預設行為,您可以將 editor.find.autoFindInSelection 設定為 always;或者如果您希望僅在選取多行內容時才對選取文字執行,則可設定為 multiline。
進階尋找與取代選項
針對更進階的情境,「尋找與取代」控制項具有下列選項
-
「尋找」控制項
- 區分大小寫
- 全字匹配
- 常規表示法
-
「取代」控制項
- 保留大小寫

多行支援與「尋找」控制項調整大小
您可以將文字貼到「尋找」輸入方塊和「取代」輸入方塊中來搜尋多行文字。按下 Ctrl+Enter 會在輸入方塊中插入新行。

搜尋長文字時,「尋找」控制項的預設大小可能會太小。您可以拖曳左側分隔條來放大「尋找」控制項,或是按兩下左側分隔條將其最大化或縮回預設大小。

跨檔案搜尋
VS Code 允許您快速搜尋目前開啟資料夾中的所有檔案。按下 ⇧⌘F (Windows, Linux Ctrl+Shift+F) 並輸入您的搜尋字詞。搜尋結果會分組到包含搜尋字詞的檔案中,並指出每個檔案中的相符次數與其位置。展開檔案即可預覽該檔案中的所有相符項目。然後按一下其中一個相符項目,即可在編輯器中檢視它。

VS Code 也支援在搜尋方塊中使用常規表示法搜尋。
您可以選取搜尋方塊右下方側的省略符號 (Toggle Search Details) 來設定進階搜尋選項(或按下 ⇧⌘J (Windows, Linux Ctrl+Shift+J))。這會顯示用來設定搜尋的其他欄位。
您可以使用快速搜尋在目前開啟資料夾的所有檔案中快速尋找文字。開啟命令選擇區 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 並輸入 Search: Quick Search 命令。
進階搜尋選項

在搜尋方塊下方的兩個輸入方塊中,您可以輸入要包含在搜尋中或從搜尋中排除的模式。如果您輸入 example,將會符合工作區中所有命名為 example 的資料夾與檔案。如果您輸入 ./example,將會符合工作區最上層的 example/ 資料夾。使用 , 分隔多個模式。路徑必須使用正斜線。您也可以使用 通用模式 (glob pattern) 語法,例如
*:符合路徑片段中零個或多個字元?:符合路徑片段中一個字元**:符合任意數量的路徑片段,包括沒有{}用來將條件分組(例如{**/*.html,**/*.txt}會符合所有 HTML 與文字檔案)[]用來宣告要符合的字元範圍(example.[0-9]會符合example.0、example.1等)[!...]用來否定要符合的字元範圍(example.[!0-9]會符合example.a、example.b,但不會符合example.0)
關於區分大小寫的注意事項:通用模式遵循作業系統的檔案系統規則。在 Windows 和 macOS 上,模式不區分大小寫(例如 *.CS 會符合 file.cs)。在 Linux 上,模式會區分大小寫。這與控制搜尋文字本身是否區分大小寫的 Match Case (區分大小寫) 切換開關是分開的。深入了解 通用模式區分大小寫。
VS Code 預設會排除某些資料夾,以減少您不感興趣的搜尋結果數量(例如:node_modules)。請開啟 設定 以在 files.exclude 和 search.exclude 區段下變更這些規則。
請注意,搜尋檢視中的通用模式運作方式與 files.exclude 和 search.exclude 等設定中的運作方式不同。在設定中,您必須使用 **/example 來符合工作區中子資料夾 folder1/example 內名為 example 的資料夾。在搜尋檢視中,會自動假設有 ** 前置詞。這些設定中的通用模式一律會相對於工作區資料夾的路徑進行評估。
另請注意 files to exclude 方塊中的 Use Exclude Settings and Ignore Files 切換按鈕。此切換開關決定是否要排除被您的 .gitignore 檔案忽略且/或符合您的 files.exclude 與 search.exclude 設定的檔案。
在 files to include 方塊中,您可以使用 Search only in changed files 切換按鈕,將搜尋結果限制為具有未提交原始碼控制變更的檔案。當沒有存放庫或沒有要搜尋的變更時,此切換開關會停用。
.gitignore 檔案中的模式在 Windows 和 macOS 上是不區分大小寫來進行比對,在 Linux 上則是區分大小寫。深入了解 通用模式區分大小寫。
從總管中,您可以在資料夾上按一下滑鼠右鍵並選取 Find in Folder,以僅在資料夾內部搜尋。
搜尋與取代
您也可以跨檔案進行搜尋與取代。展開搜尋小工具以顯示「取代」文字方塊。

當您在「取代」文字方塊中輸入文字時,您將會看到待處理變更的 diff 顯示。您可以從「取代」文字方塊跨所有檔案進行取代、在單一檔案中全部取代,或取代單一變更。

您可以使用 ↓ (Windows, Linux Down) 與 ↑ (Windows, Linux Up) 來瀏覽您的搜尋字詞歷史記錄,以快速重複使用先前的搜尋字詞。
正規表示式取代中的大小寫轉換
VS Code 支援在編輯器內或全域進行「搜尋與取代」時變更常規表示法比對群組的大小寫。這是透過修改子 \u\U\l\L 來完成的,其中 \u 和 \l 會將單一字元轉為大寫/小寫,而 \U 和 \L 會將比對群組的其餘部分轉為大寫/小寫。
範例

這些修飾詞也可以疊加使用 — 例如,\u\u\u$1 會將群組的前三個字元轉為大寫,或者 \l\U$1 會將第一個字元轉為小寫,並將其餘部分轉為大寫。在取代字串中,擷取群組是以 $n 來參照,其中 n 是擷取群組的順序。
搜尋編輯器
搜尋編輯器讓您可以在完整大小的編輯器中檢視工作區搜尋結果,並具備語法反白顯示以及周圍本文的選用行。
以下是搜尋單字 'SearchEditor' 的範例,其中包含相符項目前後各兩行文字作為本文

Open Search Editor 命令會開啟現有的搜尋編輯器(如果有的話),否則會建立新的搜尋編輯器。New Search Editor 命令則會永遠建立新的搜尋編輯器。
在搜尋編輯器中,可以使用 Go to Definition 動作來巡覽至結果,例如按下 F12 在目前的編輯器群組中開啟原始程式位置,或按下 ⌘K F12 (Windows, Linux Ctrl+K F12) 在側邊的編輯器中開啟該位置。此外,您可以使用 search.searchEditor.singleClickBehaviour 與 search.searchEditor.doubleClickBehaviour 設定來設定按一下或按兩下搜尋結果的行為。例如,開啟預覽定義視窗或開啟原始程式位置。
您也可以使用搜尋檢視頂端的 Open New Search Editor 按鈕,並透過結果樹狀結構頂端的 Open in editor 連結或 Search Editor: Open Results in Editor 命令,將現有結果從搜尋檢視複製到搜尋編輯器中。

上方的搜尋編輯器是透過選取搜尋檢視頂端的 Open New Search Editor 按鈕(第三個按鈕)來開啟的。
搜尋編輯器命令與引數
search.action.openNewEditor- 在新分頁中開啟搜尋編輯器。search.action.openInEditor- 將目前的搜尋結果複製到新的搜尋編輯器中。search.action.openNewEditorToSide- 在您目前開啟的視窗旁邊的新視窗中開啟搜尋編輯器。
您可以將兩個引數傳遞給搜尋編輯器命令(search.action.openNewEditor、search.action.openNewEditorToSide),讓快速鍵能夠設定新搜尋編輯器的行為方式
triggerSearch- 開啟搜尋編輯器時是否自動執行搜尋。預設為 true。focusResults- 要將焦點放在搜尋結果中還是查詢輸入方塊中。預設為 true。
例如,下列快速鍵會在開啟搜尋編輯器時執行搜尋,但將焦點留在搜尋查詢控制項中。
{
"key": "ctrl+o",
"command": "search.action.openNewEditor",
"args": { "query": "VS Code", "triggerSearch": true, "focusResults": false }
}
搜尋編輯器本文預設值
search.searchEditor.defaultNumberOfContextLines 設定的預設值為 1,表示會在搜尋編輯器中的每個結果行前後顯示一行本文。
重複使用上次的搜尋編輯器設定
search.searchEditor.reusePriorSearchConfiguration 設定(預設為 false)讓您在建立新的搜尋編輯器時,可以重複使用上次作用中搜尋編輯器的設定。
IntelliSense
我們一律會提供單字自動完成,但對於功能豐富的 語言(例如 JavaScript、JSON、HTML、CSS、SCSS、Less、C# 和 TypeScript),我們提供真正的 IntelliSense 體驗。如果語言服務知道可能的完成項目,IntelliSense 建議就會在您輸入時彈出。您隨時可以使用 ⌃Space (Windows, Linux Ctrl+Space) 手動觸發它。依預設,Tab 或 Enter 是接受建議的按鍵觸發程序,但您也可以 自訂這些快速鍵。
建議篩選支援駝峰式大小寫 (CamelCase),因此您可以輸入方法名稱中的大寫字母來限制建議。例如,「cra」會快速帶出「createApplication」。
IntelliSense 建議可以透過 editor.quickSuggestions 與 editor.suggestOnTriggerCharacters 設定 來進行設定。
JavaScript 與 TypeScript 開發人員可以利用 npmjs 型別宣告 (typings) 檔案存放庫,來取得常用 JavaScript 程式庫(Node.js、React、Angular)的 IntelliSense。您可以在 JavaScript 語言 主題和 Node.js 教學課程中找到關於使用型別宣告檔案的詳細說明。
深入了解請參閱 IntelliSense 文件。
格式化
VS Code 對原始碼格式化提供絕佳的支援。編輯器具有兩個明確的格式化動作
- Format Document (⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I)) - 格式化整個作用中檔案。
- Format Selection (⌘K ⌘F (Windows, Linux Ctrl+K Ctrl+F)) - 格式化選取的文字。
您可以從命令選擇區 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 或編輯器內容功能表叫用這些功能。
VS Code 針對 JavaScript、TypeScript、JSON、HTML 和 CSS 提供預設的格式化工具。每種語言都有特定的格式化選項(例如 html.format.indentInnerHtml ),您可以在使用者或工作區 設定 中根據您的偏好進行調整。如果您安裝了其他提供相同語言格式化功能的擴充功能,也可以停用預設的語言格式化工具。
"html.format.enable": false
除了手動叫用程式碼格式化之外,您也可以根據使用者手勢(例如輸入、儲存或貼上)來觸發格式化。這些功能預設為關閉,但您可以透過下列 設定 來啟用這些行為
- editor.formatOnType - 輸入後格式化該行。
- editor.formatOnSave - 儲存時格式化檔案。
- editor.formatOnPaste - 格式化貼上的內容。
並非所有格式化工具都支援貼上時格式化,因為若要這樣做,它們必須支援格式化選取範圍或文字範圍。
除了預設的格式化工具之外,您也可以在 Marketplace 上找到支援其他語言或格式化工具的擴充功能。有一個 Formatters 類別,讓您能夠輕鬆搜尋並尋找 格式化擴充功能。在 Extensions 檢視搜尋方塊中,輸入 'formatters' 或 'category:formatters' 即可在 VS Code 中檢視篩選後的擴充功能清單。
程式碼摺疊
您可以使用行號與行首之間裝訂邊上的折疊圖示來折疊原始碼區域。將滑鼠移至裝訂邊上方並按一下即可折疊和展開區域。在折疊圖示上使用 Shift + Click 可折疊或展開該區域以及其中的所有區域。

您也可以使用下列動作
- Fold (⌥⌘[ (Windows, Linux Ctrl+Shift+[)) 會折疊游標處最內層未摺疊的區域。
- Unfold (⌥⌘] (Windows, Linux Ctrl+Shift+])) 會展開游標處已折疊的區域。
- Toggle Fold (⌘K ⌘L (Windows, Linux Ctrl+K Ctrl+L)) 會折疊或展開游標處的區域。
- Fold Recursively (⌘K ⌘[ (Windows, Linux Ctrl+K Ctrl+[)) 會折疊游標處最內層未摺疊的區域以及該區域內的所有區域。
- Unfold Recursively (⌘K ⌘] (Windows, Linux Ctrl+K Ctrl+])) 會展開游標處的區域以及該區域內的所有區域。
- Fold All (⌘K ⌘0 (Windows, Linux Ctrl+K Ctrl+0)) 會折疊編輯器中的所有區域。
- Unfold All (⌘K ⌘J (Windows, Linux Ctrl+K Ctrl+J)) 會展開編輯器中的所有區域。
- Fold Level X (⌘K ⌘2 (Windows, Linux Ctrl+K Ctrl+2) 用於層級 2) 會折疊層級 X 的所有區域,但目前游標位置所在的區域除外。
- Fold All Block Comments (⌘K ⌘/ (Windows, Linux Ctrl+K Ctrl+/)) 會折疊所有以區塊註解符號開頭的區域。
折疊區域預設會根據行的縮排來評估。當某行的縮排小於一或多個後續行時,折疊區域即會開始;當出現縮排相同或更小的行時,折疊區域即會結束。
也可以根據編輯器設定語言的語法符號來計算折疊區域。下列語言已經提供感知語法的折疊:Markdown、HTML、CSS、LESS、SCSS 和 JSON。
如果您偏好針對上述其中一種(或所有)語言切換回以縮排為基礎的折疊,請使用
"[html]": {
"editor.foldingStrategy": "indentation"
},
區域也可以由各語言定義的標記來定義。下列語言目前已定義標記
| 語言 | 開始區域 | 結束區域 |
|---|---|---|
| Bat | ::#region 或 REM #region |
::#endregion 或 REM #endregion |
| C# | #region |
#endregion |
| C/C++ | #pragma region |
#pragma endregion |
| CSS/Less/SCSS | /*#region*/ |
/*#endregion*/ |
| Coffeescript | #region |
#endregion |
| F# | //#region 或 (#_region) |
//#endregion 或 (#_endregion) |
| Java | //#region 或 //<editor-fold> |
//#endregion 或 //</editor-fold> |
| Markdown | <!-- #region --> |
<!-- #endregion --> |
| Perl5 | #region 或 =pod |
#endregion 或 =cut |
| PHP | #region |
#endregion |
| PowerShell | #region |
#endregion |
| Python | #region 或 # region |
#endregion 或 # endregion |
| TypeScript/JavaScript | //#region |
//#endregion |
| Visual Basic | #Region |
#End Region |
若要僅折疊和展開由標記定義的區域,請使用
- Fold Marker Regions (⌘K ⌘8 (Windows, Linux Ctrl+K Ctrl+8)) 會折疊所有標記區域。
- Unfold Marker Regions (⌘K ⌘9 (Windows, Linux Ctrl+K Ctrl+9)) 會展開所有標記區域。
折疊選取範圍
Create Manual Folding Ranges from Selection 命令 (⌘K ⌘, (Windows, Linux Ctrl+K Ctrl+,)) 會從目前選取的行建立折疊範圍並加以收合。該範圍稱為手動折疊範圍,它會覆蓋在由折疊提供者計算出的範圍之上。
可以使用 Remove Manual Folding Ranges 命令 (⌘K ⌘. (Windows, Linux Ctrl+K Ctrl+.)) 來移除手動折疊範圍。
手動折疊範圍對於沒有程式語言支援折疊的情況特別有用。
縮排
VS Code 讓您可以控制文字縮排,以及您是想要使用空格還是定位點。依預設,VS Code 會插入空格,並每個 Tab 鍵使用 4 個空格。如果您想使用其他預設值,可以修改 editor.insertSpaces 與 editor.tabSize 設定。
"editor.insertSpaces": true,
"editor.tabSize": 4,
自動偵測
VS Code 會分析您的開啟檔案,並決定文件中使用的縮排。自動偵測到的縮排會覆寫您的預設縮排設定。偵測到的設定會顯示在狀態列的右側

您可以按一下狀態列的縮排顯示,以開啟包含縮排命令的下拉式選單,讓您變更開啟檔案的預設設定,或在定位點與空格之間進行轉換。

VS Code 自動偵測會檢查 2、4、6 或 8 個空格的縮排。如果您的檔案使用不同數量的空格,可能無法正確偵測縮排。例如,如果您的慣例是使用 3 個空格縮排,您可能會想要關閉 editor.detectIndentation 並明確將定位點大小設為 3。
"editor.detectIndentation": false,
"editor.tabSize": 3,
檔案編碼支援
使用 User Settings 或 Workspace Settings 中的 files.encoding 設定,即可全域或依工作區設定檔案編碼。

您可以在狀態列中檢視檔案編碼。

按一下狀態列中的編碼按鈕,即可使用不同的編碼重新開啟或儲存作用中檔案。

然後選擇編碼。

覆寫模式
在 1.96 版發布之前,除非您安裝了 Vim 按鍵對應擴充功能,否則 VS Code 僅支援 insert 模式(在此模式下,字元會插入在游標位置)。
從 1.96 版開始,VS Code 支援 overtype 模式,讓您能夠覆寫現有的字元,而不是在游標位置插入字元。依預設,覆寫模式為關閉。
若要在插入和覆寫模式之間切換,請在命令選擇區中執行 Toggle Overtype/Insert Mode 命令,或按下 (⌥⌘O (Windows, Linux Insert))。當您處於覆寫模式時,狀態列指示器會顯示 OVR。
您可以透過設定 editor.overtypeCursorStyle 設定來變更覆寫模式的游標樣式。
使用 editor.overtypeOnPaste 設定可以在貼上時覆寫文字。您必須處於覆寫模式,此設定才會生效。
比較檔案
VS Code 支援多種方法來比較目前檔案或任意兩個檔案的內容。
當您在編輯器中開啟作用中檔案時,您有下列比較選項
- Compare with a workspace file:在命令選擇區中,選取 File: Compare Active File With...,然後選擇要比較的另一個檔案。
- Compare with clipboard:在命令選擇區中,選取 File: Compare Active File with Clipboard (⌘K C (Windows, Linux Ctrl+K C)),將目前檔案與剪貼簿內容進行比較。
- Compare with saved:在命令選擇區中,選取 File: Compare Active File with Saved (⌘K D (Windows, Linux Ctrl+K D)),將目前檔案與上次儲存的版本進行比較。
若要比較任意兩個檔案
- 在總管檢視中的檔案上按一下滑鼠右鍵,然後選取 Select for Compare。接著,在第二個檔案上按一下滑鼠右鍵,並選取 Compare with Selected。
- 若要在兩個空白編輯器視窗之間開始比較,請從命令選擇區選取 File: Compare New Untitled Text Files。
您可以使用命令列搭配 --diff 選項來啟動 VS Code 以比較兩個檔案。深入了解 VS Code 命令列介面。
後續步驟
您已經了解基本的使用者介面 — VS Code 還有更多功能。請繼續閱讀以了解
- 入門影片 - 設定與基本概念 - 觀看關於 VS Code 基本概念的教學課程。
- 使用者/工作區設定 - 了解如何透過使用者和工作區設定將 VS Code 設定為您的偏好。
- 程式碼導覽 - 預覽與移至定義等功能。
- 整合式終端機 - 了解整合式終端機,以便在 VS Code 內快速執行命令列工作。
- IntelliSense - VS Code 帶來智慧型程式碼自動完成。
- 偵錯 - 這是 VS Code 真正發光發熱的地方。
常見問題
是否可以全域搜尋與取代?
可以,展開搜尋檢視文字方塊以包含取代文字欄位。您可以在工作區中的所有檔案跨檔案搜尋與取代。請注意,如果您未在資料夾中開啟 VS Code,則搜尋將僅在目前開啟的檔案上執行。

如何開啟自動換行?
您可以透過 editor.wordWrap 設定 來控制自動換行。依預設, editor.wordWrap 為 off,但如果您將其設為 on,文字將會在編輯器的視口寬度處自動換行。
"editor.wordWrap": "on"
您可以使用 ⌥Z (Windows, Linux Alt+Z) 切換 VS Code 工作階段的自動換行。
您也可以使用 editor.rulers 設定將垂直欄尺標新增至編輯器,該設定接受您希望放置垂直尺標的欄字元位置陣列。
如同其他編輯器一樣,像 剪下 和 複製 這類的指令會套用到整個自動換行行。按三下滑鼠可選取整個自動換行行。連按兩下 Home 鍵會將游標移至該行的最前端。連按兩下 End 鍵會將游標移至該行的最末端。
如何避免在自動換行行中放置額外的游標?
如果您在目前選取範圍的上方或下方新增游標時想要忽略自動換行,您可以像這樣將 { "logicalLine": true } 傳入鍵盤快速鍵的 args 中
{
"key": "shift+alt+down",
"command": "editor.action.insertCursorBelow",
"when": "textInputFocus",
"args": { "logicalLine": true },
},
{
"key": "shift+alt+up",
"command": "editor.action.insertCursorAbove",
"when": "textInputFocus",
"args": { "logicalLine": true },
},