終端機基礎
Visual Studio Code 包含一個功能齊全的整合式終端機,它會從您的工作區根目錄啟動。它提供與編輯器的整合,以支援諸如連結和錯誤偵測等功能。整合式終端機可以執行諸如 `mkdir` 和 `git` 等命令,就像獨立終端機一樣。
您可以使用以下方式開啟終端機
- 從選單中,使用「終端機」>「新增終端機」或「檢視」>「終端機」選單指令。
- 從命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)),使用「檢視:切換終端機」指令。
- 在檔案總管中,您可以使用「在整合式終端機中開啟」右鍵選單指令,從資料夾開啟新的終端機。
- 若要切換終端機面板,請使用 ⌃` (Windows、Linux Ctrl+`) 鍵盤快速鍵。
- 若要建立新終端機,請使用 ⌃⇧` (Windows、Linux Ctrl+Shift+`) 鍵盤快速鍵。
VS Code 的終端機具有稱為殼層整合的附加功能,它會透過指令左側和捲軸上的裝飾來追蹤指令的執行位置

如果您喜歡在 VS Code 之外工作,請使用 ⇧⌘C (Windows、Linux Ctrl+Shift+C) 鍵盤快速鍵開啟外部終端機
終端機殼層
整合式終端機可以使用您電腦上安裝的各種殼層,預設會從您的系統預設值中提取。殼層會被偵測並顯示在終端機設定檔下拉式選單中。

您可以透過終端機設定檔文章,進一步了解如何設定終端機殼層。
管理終端機
終端機分頁使用者介面位於終端機檢視的右側。每個終端機都有一個條目,包含其名稱、圖示、顏色和群組裝飾 (如果有的話)。

透過選取「終端機」面板右上角的「+」圖示、從終端機下拉式選單中選取設定檔,或觸發 ⌃⇧` (Windows、Linux Ctrl+Shift+`) 指令來新增終端機實例。此操作會在與該終端機關聯的分頁清單中建立另一個條目。
透過將滑鼠懸停在分頁上並選取「垃圾桶」按鈕、選取分頁項目並按下 Delete、使用「終端機:終止作用中的終端機實例」指令,或透過右鍵選單來移除終端機實例。
使用「下一個焦點」⇧⌘] (Windows、Linux Ctrl+PageDown) 和「上一個焦點」⇧⌘[ (Windows、Linux Ctrl+PageUp) 在終端機群組之間導覽。
當終端機狀態變更時,圖示可能會出現在分頁標籤上終端機標題的右側。一些範例包括鈴聲 (macOS) 和任務,當沒有錯誤時顯示核取標記,否則顯示 X。將滑鼠懸停在圖示上以閱讀狀態資訊,其中可能包含動作。
群組 (分割窗格)
將多個終端機並排放置,並透過分割終端機來建立群組
- 將滑鼠懸停在右側終端機清單中的某個條目上,然後選取內嵌的分割按鈕。
- 右鍵點擊內容選單並選取「分割」選單選項。
- 按住 Alt 並點擊分頁、「+」按鈕,或終端機面板上的單一分頁。
- 觸發 ⌘\ (Windows、Linux Ctrl+Shift+5) 指令。
新終端機的工作目錄取決於 terminal.integrated.splitCwd 設定。
透過將焦點移至上一個窗格 ⌥⌘← (Windows、Linux Alt+Left),或下一個窗格 ⌥⌘→ (Windows、Linux Alt+Right) 來在群組中的終端機之間導覽。
在清單中拖放分頁會重新排列它們。將分頁拖曳到主要終端機區域可以將終端機從一個群組移到另一個群組。
您可以透過命令選擇區或右鍵選單中的「終端機:取消分割終端機」指令,將終端機移至其自己的群組。
編輯器區域中的終端機
您可以使用「終端機:在編輯器區域中建立新終端機」指令、「終端機:在編輯器區域側邊建立新終端機」指令,或將終端機從終端機檢視拖曳到編輯器區域來在編輯器區域 (終端機編輯器) 中開啟終端機。終端機編輯器會像一般的編輯器分頁一樣呈現

您可以在編輯器群組佈局系統中使用多個維度來將終端機編輯器放在任一側或排列起來,例如 PowerShell 和 WSL 終端機堆疊在檔案編輯器的右側

terminal.integrated.defaultLocation 設定可以變更預設的 view 或 editor 區域終端機位置。
新視窗中的終端機
有幾種不同的方式可以在新的 VS Code 視窗中開啟終端機
- 使用 ⌃⇧⌥` (Windows、Linux Ctrl+Shift+Alt+`)
- 如果您有多個終端機,請右鍵點擊終端機分頁;如果您只有一個終端機開啟,則左鍵點擊分頁。然後選取「將終端機移至新視窗」
- 選取可在多個不同選單中找到的「新終端機視窗」項目
瀏覽緩衝區
終端機中的內容稱為緩衝區,底部視窗正上方的部分稱為「捲動回溯區域」。保留的捲動回溯量由 terminal.integrated.scrollback 設定決定,預設為 1000 行。
有許多指令可用於在終端機緩衝區中導覽
- 向上捲動一行 - ⌥⌘PageUp (Windows Ctrl+Alt+PageUp、Linux Ctrl+Shift+Up)
- 向下捲動一行 - ⌥⌘PageDown (Windows Ctrl+Alt+PageDown、Linux Ctrl+Shift+Down)
- 向上捲動一頁 - PageUp (Windows、Linux Shift+PageUp)
- 向下捲動一頁 - PageDown (Windows、Linux Shift+PageDown)
- 捲動到頂部 - ⌘Home (Windows Ctrl+Home、Linux Shift+Home)
- 捲動到底部 - ⌘End (Windows Ctrl+End、Linux Shift+End)
指令導覽也可用 (請參閱殼層整合)
- 捲動到上一個指令 - ⌘↑ (Windows、Linux Ctrl+Up)
- 捲動到下一個指令 - ⌘↓ (Windows、Linux Ctrl+Down)
捲動會瞬間發生,但可以透過 terminal.integrated.smoothScrolling 設定配置為在短時間內動畫捲動。
連結
終端機具有複雜的連結偵測功能,並整合了編輯器,甚至支援擴充功能貢獻的連結處理程式。將滑鼠懸停在連結上以顯示底線,然後按住 Ctrl/Cmd 鍵並點擊。
這些內建的連結處理程式依以下優先順序使用
-
URI/URL:看起來像 URI 的連結,例如
https://vscode.com.tw、vscode://path/to/file或file://path/to/file將使用該協定的標準處理程式開啟。例如,https連結將會開啟瀏覽器。
-
檔案連結:已驗證存在於系統上的檔案連結。這些將會在新的編輯器分頁中開啟檔案,並支援許多常見的行/欄位格式,例如
file:1:2、file:line 1, column 2。
-
資料夾連結:資料夾連結與檔案連結類似,但會在該資料夾開啟新的 VS Code 視窗。

-
文字連結:使用 terminal.integrated.wordSeparators 設定的備用連結類型。此設定定義了單詞邊界,並將幾乎所有文字都變成單詞。啟用文字連結會在工作區中搜尋該單詞。如果只有一個結果,它將會開啟;否則將會顯示搜尋結果。文字連結被視為「低可信度」,除非您按住 Ctrl/Cmd 鍵,否則不會顯示底線或工具提示。它們對行和列後綴的支援也有限。

可以使用「開啟偵測到的連結」指令 (⇧⌘G (Windows、Linux Ctrl+Shift+G)) 透過鍵盤存取連結

如果連結驗證導致效能問題,例如在高延遲的遠端環境中,請透過 terminal.integrated.enableFileLinks 設定停用它。
處理連結的擴充功能
擴充功能可以貢獻連結提供者,讓擴充功能定義點擊時會發生什麼事。一個範例是 GitLens 擴充功能偵測 Git 分支連結。

鍵盤輔助功能
連結可透過多個指令透過鍵盤存取,這些指令會根據連結類型開啟連結。
- 終端機:開啟最後一個本機檔案連結 - 開啟最近的本機檔案連結。沒有預設鍵盤快速鍵。
- 終端機:開啟最後一個 URL 連結 - 開啟最近的 URI/URL 連結。沒有預設鍵盤快速鍵。
- 終端機:開啟偵測到的連結... - 開啟一個可搜尋的快速選擇器,其中包含所有偵測到的連結,包括文字連結。預設鍵盤快速鍵是 Ctrl/Cmd+Shift+O,與「移至編輯器中的符號」鍵盤快速鍵相同。
複製與貼上
複製與貼上的鍵盤快速鍵遵循平台標準
- Linux: Ctrl+Shift+C 和 Ctrl+Shift+V;選取貼上可透過 Shift+Insert 使用
- macOS: Cmd+C 和 Cmd+V
- Windows: Ctrl+C 和 Ctrl+V
當 terminal.integrated.copyOnSelection 啟用時,選取時會自動複製。
預設情況下,貼上多行時會出現警告,這可以透過 terminal.integrated.enableMultiLinePasteWarning 設定來停用。這只在殼層不支援「括號貼上模式」時發生。當該模式啟用時,殼層表示它可以處理多行貼上。
使用滑鼠
右鍵行為
右鍵行為因平台而異
- Linux:顯示右鍵選單。
- macOS:選取游標下的單詞並顯示右鍵選單。
- Windows:如果有選取,則複製並放置選取項目;否則貼上。
這可以使用 terminal.integrated.rightClickBehavior 設定進行配置。選項為
default- 顯示右鍵選單。copyPaste- 有選取時複製,否則貼上。paste- 右鍵貼上。selectWord- 選取游標下的單詞並顯示右鍵選單。nothing- 不執行任何動作並將事件傳遞給終端機。
欄位選取
按住 Alt 並拖曳滑鼠左鍵,以在終端機內選取一個矩形區域的文字,而不是常規的單行選取。
使用 Alt 重新定位游標
按住 Alt 並點擊滑鼠左鍵會將游標重新定位到滑鼠下方。這是透過模擬方向鍵來實現的,對於某些殼層或程式可能無法可靠地運作。此功能可以透過 terminal.integrated.altClickMovesCursor 設定停用。
滑鼠事件模式
當終端機中執行的應用程式啟用滑鼠事件模式時,例如 Vim 滑鼠模式,滑鼠互動會傳送到應用程式而不是終端機。這表示點擊和拖曳將不再建立選取範圍。在 Windows 和 Linux 上,可以透過按住 Alt 鍵強制進行終端機選取;在 macOS 上,也可以透過 Option 鍵完成此操作,但需要先啟用 terminal.integrated.macOptionClickForcesSelection 設定。
尋找
整合式終端機具有可透過 ⌘F (Windows、Linux Ctrl+F) 觸發的尋找功能。

透過從跳過殼層的指令中移除 workbench.action.terminal.focusFind 指令,Ctrl+F 可以傳送給殼層。
執行選取的文字
若要使用 runSelectedText 指令,請在編輯器中選取文字,並透過命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 執行指令「終端機:在作用中的終端機中執行選取的文字」,終端機將會嘗試執行選取的文字。如果作用中的編輯器中沒有選取任何文字,則游標所在整行將會在終端機中執行。
也可以使用指令 workbench.action.terminal.runActiveFile 執行作用中的檔案。
最大化終端機
終端機檢視可以透過點擊帶有向上 V 形圖示的最大化面板大小按鈕來最大化。這將暫時隱藏編輯器並最大化面板。這對於暫時專注於大量輸出很有用。有些開發人員透過開啟新視窗、最大化面板並隱藏側邊欄來將 VS Code 用作獨立終端機。
請注意,只有當面板的對齊選項設定為「置中」時,才能最大化面板。
全選
有一個「終端機:全選」指令,在 macOS 上綁定到 Cmd+A,但在 Windows 和 Linux 上沒有預設鍵盤快速鍵,因為它可能與殼層熱鍵衝突。若要使用 Ctrl+A 來全選,請新增此自訂鍵盤快速鍵
{
"key": "ctrl+a",
"command": "workbench.action.terminal.selectAll",
"when": "terminalFocus && !isMac"
},
拖放檔案路徑
將檔案拖曳到終端機中,會將路徑輸入到終端機中,並帶有逸出字元以符合作用中的殼層。
使用任務自動化終端機
任務功能可以用來自動啟動終端機,例如,當視窗啟動時,以下 .vscode/tasks.json 檔案將會在單一終端機群組中啟動 Command Prompt 和 PowerShell 終端機
{
"version": "2.0.0",
"presentation": {
"echo": false,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": true
},
"tasks": [
{
"label": "Create terminals",
"dependsOn": [
"First",
"Second"
],
// Mark as the default build task so cmd/ctrl+shift+b will create them
"group": {
"kind": "build",
"isDefault": true
},
// Try start the task on folder open
"runOptions": {
"runOn": "folderOpen"
}
},
{
// The name that shows up in terminal tab
"label": "First",
// The task will launch a shell
"type": "shell",
"command": "",
// Set the shell type
"options": {
"shell": {
"executable": "cmd.exe",
"args": []
}
},
// Mark as a background task to avoid the spinner animation on the terminal tab
"isBackground": true,
"problemMatcher": [],
// Create the tasks in a terminal group
"presentation": {
"group": "my-group"
}
},
{
"label": "Second",
"type": "shell",
"command": "",
"options": {
"shell": {
"executable": "pwsh.exe",
"args": []
}
},
"isBackground": true,
"problemMatcher": [],
"presentation": {
"group": "my-group"
}
}
]
}
此檔案可以提交到儲存庫與其他開發人員共享,或透過 workbench.action.tasks.openUserTasks 指令建立為使用者任務。
工作目錄
預設情況下,終端機將會在檔案總管中開啟的資料夾處開啟。 terminal.integrated.cwd 設定允許指定一個自訂路徑來開啟。
{
"terminal.integrated.cwd": "/home/user"
}
在 Windows 上分割的終端機將會在其父終端機啟動的目錄中啟動。在 macOS 和 Linux 上,分割的終端機將會繼承父終端機的目前工作目錄。此行為可以使用 terminal.integrated.splitCwd 設定進行變更
{
"terminal.integrated.splitCwd": "workspaceRoot"
}
也有一些擴充功能提供更多選項,例如 Terminal Here。
固定尺寸終端機
「終端機:設定固定尺寸」指令允許變更終端機及其支援的虛擬終端機所使用的欄數和列數。這會在必要時新增捲軸,這可能會導致不愉快的用戶體驗,通常不建議這樣做,但在 Windows 上尤其常見的需求是,當分頁工具不可用時,用於讀取日誌或長行。
您也可以右鍵點擊終端機分頁,然後選取「切換內容寬度大小」(⌥Z (Windows、Linux Alt+Z)),以將終端機的欄數調整為終端機中最大換行行的寬度。
終端機中的 GitHub Copilot
如果您有權存取 GitHub Copilot,您可以使用它來獲得 AI 支援的終端機指令和殼層指令碼協助。有幾種方法可以在終端機中使用 Copilot
終端機內嵌聊天
直接在終端機中開始內嵌聊天以獲得殼層指令的幫助
- 開啟終端機 (⌃` (Windows、Linux Ctrl+`))
- 按下 ⌘I (Windows、Linux Ctrl+I) 或從命令選擇區執行「終端機內嵌聊天」指令
- 以自然語言輸入您的問題或請求,例如
- 「如何在此目錄中找到最大的檔案?」
- 「示範如何復原上次 git 提交」
- 「建立一個 bash 指令碼來分析日誌檔案」

當 Copilot 提供回應時,您可以選取「執行」來直接執行指令,或選取「插入」將其新增到終端機以進行進一步編輯。
有關如何在終端機中使用 GitHub Copilot 的詳細資訊,請參閱使用終端機內嵌聊天。
終端機聊天參與者
在聊天檢視的提問模式中使用專用的 @terminal 聊天參與者
- 開啟聊天檢視 (⌃⌘I (Windows、Linux Ctrl+Alt+I))
- 使用
@terminal開啟您的問題,以將其導向終端機參與者 - 詢問終端機指令、殼層指令碼或解釋終端機輸出
範例
@terminal 列出此工作區中最大的 5 個檔案@terminal /解釋 top 殼層指令@terminal 如何遞迴搜尋模式
在聊天中參考終端機上下文
您可以在聊天提示中包含終端機資訊作為上下文
- 使用
#terminalSelection將終端機中選取的文字新增到您的聊天提示 - 使用
#terminalLastCommand包含您在終端機中執行的最後一個指令
後續步驟
本文件已涵蓋終端機的基本知識。請繼續閱讀以了解更多資訊
- 終端機內嵌聊天 - 在您的終端機中直接獲得 AI 驅動的建議。
- 任務 - 任務讓您與外部工具整合,並大量利用終端機。
- 掌握 VS Code 的終端機 - 一篇外部部落格,包含許多終端機進階使用者秘訣。
- 透過瀏覽 VS Code 中的鍵盤快速鍵來探索終端機指令 (「偏好設定:開啟鍵盤快速鍵」,然後搜尋「terminal」)。
常見問題
我無法啟動終端機
針對這類問題,有專門的疑難排解指南。
如何建立管理員終端機?
整合式終端機殼層以 VS Code 的權限執行。如果您需要以提升的 (管理員) 或不同權限執行殼層指令,請在終端機內使用平台工具,例如 runas.exe。
您可以透過設定設定檔,進一步了解如何透過終端機設定檔自訂終端機。
我可以為檔案總管的「在整合式終端機中開啟」指令新增鍵盤快速鍵嗎?
您可以透過檔案總管中的「在整合式終端機中開啟」右鍵選單指令,為特定資料夾開啟新的終端機。

預設情況下,沒有與「在整合式終端機中開啟」相關聯的鍵盤快速鍵,但您可以透過鍵盤快速鍵編輯器 (⌘K ⌘S (Windows、Linux Ctrl+K Ctrl+S)) 來新增您自己的鍵盤快速鍵到您的 keybindings.json。
下面的 keybindings.json 範例為 openInTerminal 新增了鍵盤快速鍵 Ctrl+T。
{
"key": "ctrl+t",
"command": "openInTerminal",
"when": "filesExplorerFocus"
}
為什麼整合式終端機啟動時 nvm 會抱怨前綴選項?
nvm (Node 版本管理工具) 使用者經常在 VS Code 的整合式終端機中首次看到此錯誤
nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"
Run `npm config delete prefix` or `nvm use --delete-prefix v8.9.1 --silent` to unset it
這主要是一個 macOS 問題,並且不會發生在外部終端機中。常見的原因如下
npm是使用位於您路徑中某處的另一個node實例全域安裝的 (例如/usr/local/bin/npm)。- 為了將開發工具納入
$PATH,VS Code 會在啟動時啟動一個 bash 登入殼層。這表示您的~/.bash_profile已經執行,當整合式終端機啟動時,它會執行另一個登入殼層,這可能會以意想不到的方式重新排序$PATH。
若要解決此問題,您需要追蹤舊的 npm 安裝位置,並移除它及其過時的 node_modules。找到 nvm 初始化指令碼,並在它執行之前執行 which npm,當您啟動新終端機時,這應該會列印路徑。
一旦您有了 npm 的路徑,請透過執行類似以下的指令來解析符號連結,以找到舊的 node_modules
ls -la /usr/local/bin | grep "np[mx]"
這會在最後給您解析後的路徑
... npm -> ../lib/node_modules/npm/bin/npm-cli.js
... npx -> ../lib/node_modules/npm/bin/npx-cli.js
從那裡,移除檔案並重新啟動 VS Code 應該可以解決問題
rm /usr/local/bin/npm /usr/local/lib/node_modules/npm/bin/npm-cli.js
rm /usr/local/bin/npx /usr/local/lib/node_modules/npm/bin/npx-cli.js
為什麼當我調整終端機分割窗格大小時,macOS 會發出叮咚聲?
鍵盤快速鍵 ⌃⌘← 和 ⌃⌘→ 是終端機中調整個別分割窗格大小的預設值。雖然它們有效,但由於 Chromium 中的問題,它們也會導致系統播放「無效鍵」聲音。建議的解決方法是透過在您的終端機中執行此命令,告知 macOS 這些鍵盤快速鍵不執行任何操作
mkdir -p ~/Library/KeyBindings
cat > ~/Library/KeyBindings/DefaultKeyBinding.dict <<EOF
{
"@^\UF700" = "noop:";
"@^\UF701" = "noop:";
"@^\UF702" = "noop:";
"@^\UF703" = "noop:";
"@~^\UF700" = "noop:";
"@~^\UF701" = "noop:";
"@~^\UF702" = "noop:";
"@~^\UF703" = "noop:";
}
EOF
我的終端機渲染出現問題。我該怎麼辦?
預設情況下,整合式終端機在大多數機器上會使用 GPU 加速進行渲染。通常,當出現渲染問題時,是因為您的硬體/作業系統/驅動程式與 GPU 渲染器不相容。首先嘗試的是停用 GPU 加速,犧牲渲染速度以換取基於 DOM 的渲染,這更可靠
{
"terminal.integrated.gpuAcceleration": "off"
}
請參閱GPU 加速章節以獲取更多資訊。
當我貼上東西時,我看到 1~ 或 [201~
這通常表示在終端機中執行的程式/殼層要求開啟「括號貼上模式」,但某個部分未能正確支援它。若要解決此問題,您可以執行 printf "\e[?2004l" 以停用該會話,或將以下內容新增到您的 ~/.inputrc 檔案中
set enable-bracketed-paste off
或者,可以透過此設定關閉括號貼上模式,強制其忽略殼層的請求
{
"terminal.integrated.ignoreBracketedPasteMode": true
}
在 zsh 中,Ctrl+A、Ctrl+R 輸出 ^A、^R
如果 zsh 處於 Vim 模式而非 Emacs 模式,由於在您的初始化腳本中將 $EDITOR 或 $VISUAL 設定為 vi/vim,就可能會發生這種情況。
若要解決此問題,您有兩種選擇
- 確保您沒有將
$EDITOR設定為vi(m)。但是,如果您希望 Git 編輯器能夠運作,這就不是一個選項了。 - 將
bindkey -e新增到您的初始化指令碼中,以明確設定 Emacs。
如何像 macOS 的內建終端機一樣,將 Cmd+. 配置為對應到 Ctrl+C?
macOS 預設終端機使用 Cmd+. 來執行與 Ctrl+C 相同的操作。若要在 VS Code 中獲得此行為,請新增此自訂鍵盤快速鍵
{
"key": "cmd+.",
"command": "workbench.action.terminal.sendSequence",
"when": "terminalFocus",
"args": { "text": "\u0003" }
}
為什麼終端機中的顏色不正確?
我們預設啟用的一項輔助功能是確保前景文字的最小對比度至少達到 4.5。此功能確保文字無論使用何種殼層和主題都可讀,否則這是無法實現的。若要停用此功能,您可以設定
"terminal.integrated.minimumContrastRatio": 1
請參閱最小對比度章節以獲取更多資訊。