終端外觀
Visual Studio Code 的終端外觀可以進行廣泛的自定義。

使用 Sapphire 主題,並使用 Starship 自定義提示符,字型為 Hack,並支援 Nerd Font 符號。
文字樣式
終端文字可以透過以下設定進行自定義:
- terminal.integrated.fontFamily: 要使用的字體系列,格式與 CSS 中的 fontFamily 相同。例如,
"'Fira Code', monospace"將 Fira Code 設定為主要字型,並將 monospace 設定為當 Fira Code 缺少字形時的備用字型。 - terminal.integrated.fontSize: 更改終端中文字的字型大小。
- terminal.integrated.letterSpacing: 以畫素為單位配置字元之間的額外水平間距。
- terminal.integrated.lineHeight: 將字元之間的額外垂直間距配置為常規行高的乘數。例如,
1.1將增加 10% 的額外垂直空間。 - terminal.integrated.fontWeight: 配置“正常”文字的字型粗細。
- terminal.integrated.fontWeightBold: 配置“粗體”文字的字型粗細。
terminal.integrated.fontLigatures.*: 配置連字。
Powerline 符號和 Nerd Fonts
Powerline 字型是包含可在終端中使用的額外字元的特殊修補字型。VS Code 的終端 在不需要配置字型的情況下即可渲染一些 Powerline 符號,但如果需要更多字形,則可以透過字體系列設定配置 Powerline 字型。Powerline 字型通常以 " for Powerline" 結尾,以下設定是如何配置已修補的 DejaVu Sans Mono 的示例。
"editor.fontFamily": "'DejaVu Sans Mono for Powerline'"
Nerd Fonts 的工作方式相同,通常帶有 " NF" 字尾,以下是如何配置 Hack 的 nerd fonts 變體的示例:
"terminal.integrated.fontFamily": "'Hack NF'"
終端游標
終端游標樣式以及它是否閃爍可以透過以下設定進行自定義:
- terminal.integrated.cursorStyle: 定義游標的形狀,可以是塊狀、線條或下劃線。
- terminal.integrated.cursorWidth: 當游標樣式設定為
line時,游標的畫素寬度。 - terminal.integrated.cursorBlinking: 當終端獲得焦點時,游標是否應該閃爍。
- terminal.integrated.cursorStyleInactive: 定義游標的形狀,可以是輪廓、塊狀、線條、下劃線或無。
自定義標籤頁
預設情況下,當有兩個或更多終端時,終端選項卡會顯示在終端檢視的右側,當只有一個終端時,它會顯示在檢視標題中,指示活動終端。

可見性
預設的可見性設定是為了節省水平空間,但這可能不符合您的需求。選項卡的外觀可以透過以下設定進行配置:
- terminal.integrated.tabs.hideCondition: 何時隱藏右側的選項卡,設定為
never即可始終顯示它們。 - terminal.integrated.tabs.showActiveTerminal: 何時在終端檢視標題中顯示活動終端。
- terminal.integrated.tabs.showActions: 何時在檢視標題中顯示活動終端的操作。
- terminal.integrated.tabs.location: 選項卡應該顯示在終端的左側還是右側。
- terminal.integrated.tabs.enabled: 是否使用選項卡,停用此選項將顯示原始的下拉檢視。
選項卡文字
每個選項卡的文字由以下設定決定:
- terminal.integrated.tabs.title: 選項卡標題。
- terminal.integrated.tabs.description: 顯示在標題右側的文字。
- terminal.integrated.tabs.separator: 標題和描述之間的分隔符字元。
預設情況下,標題顯示 shell 檢測到的程序名稱。
其他終端通常將 shell 傳送的轉義序列顯示為標題,這可以透過以下方式配置:
"terminal.integrated.tabs.title": "${sequence}"
這裡是所有可用的變數:
${cwd}: 終端的當前工作目錄。${cwdFolder}: 終端的當前工作目錄,當是多根工作區時,或者在單根工作區中且其值與初始工作目錄不同時顯示。在 Windows 上,只有在啟用 shell 整合時才會顯示此項。${workspaceFolder}: 終端啟動時所在的工作區。${workspaceFolderName}: 終端啟動時所在工作區的名稱。${local}: 表示遠端工作區中的本地終端。${process}: 終端程序的名稱。${progress}: 由 OSC9;4序列報告的進度狀態。${separator}: 條件分隔符(-),只有當它被具有值的變數或靜態文字包圍時才會顯示。${sequence}: 程序為終端提供的名稱。${task}: 表明此終端與任務相關聯。${shellType}: 檢測到的 shell 型別。${shellCommand}: 根據 shell 整合正在執行的命令。這還需要對檢測到的命令列有高置信度,這在某些提示符框架下可能不起作用。${shellPromptInput}: 根據 shell 整合,shell 的完整提示輸入。
圖示
每個終端都有一個關聯的圖示,該圖示由其 終端配置檔案 確定。預設圖示及其顏色(如果在配置檔案中未定義則使用)可以透過 terminal.integrated.tabs.defaultIcon 和 terminal.integrated.tabs.defaultColor 設定進行配置。
狀態
終端的“狀態”(如果有)由出現在選項卡右側的圖標表示。某些狀態涉及動畫。如果這很分散注意力,可以透過以下方式停用動畫:
"terminal.integrated.tabs.enableAnimation": false
視覺響鈴
當終端的響鈴觸發時,會短暫顯示一個黃色的響鈴圖示。這可以透過 terminal.integrated.enableBell 停用,持續時間可以透過 terminal.integrated.bellDuration 配置。
終端顏色
雖然終端能夠顯示真彩色,但程式通常使用 8 種 ANSI 顏色(黑色、紅色、綠色、黃色、藍色、品紅、青色和白色)及其亮色變體。這些 ANSI 顏色由活動的 顏色主題 決定,但也可以使用 workbench.colorCustomizations 設定獨立於主題進行配置。
粗體文字是使用普通 ANSI 顏色還是亮色變體,可以透過 terminal.integrated.drawBoldTextInBrightColors 設定進行配置。
最小對比度
由於深色/淺色主題、ANSI 顏色或執行的 shell/程式等原因,終端的對比度常常存在問題。
最小對比度比功能透過增加或減少文字前景色亮度直到達到 4.5:1 的對比度比來解決此問題。
這樣做的一個缺點是彩色文字有時會失去一些飽和度。可以透過以下方式配置或停用此功能以獲得原始顏色:
"terminal.integrated.minimumContrastRatio": 1
連字
終端 連字 允許將多個字元渲染為一個。您可以透過配置 terminal.integrated.fontLigatures.enabled 設定來在終端中啟用連字,前提是終端字體系列(terminal.integrated.fontFamily)支援它們。

字型功能設定
啟用連字後,還可以設定詳細的字型功能設定列表,格式為 font-feature-settings CSS 屬性。這為您提供了對連字渲染方式更精細地控制。例如,停用標準的 calt 連字並啟用特定的字型變體看起來類似於 "calt" off, "ss03"。有關字型支援的變體列表,請查閱字型的文件。
備用連字
當字型支援連字但 VS Code 不支援解析所選字型時,您可以停用 GPU 加速 或指定字元序列列表以手動連線以生成連字。
預設情況下,備用連字是編碼中常用連字的列表。透過配置 terminal.integrated.fontLigatures.fallbackLigatures 設定來微調列表。例如:
// Only use ligatures for `ff`, `fi` and `fl`
"terminal.integrated.fontLigatures.fallbackLigatures": [
"ff",
"fi",
"fl"
]
GPU 加速
終端包含兩種不同的渲染器,每種渲染器都有不同的權衡:
- WebGL 渲染器 - 完全的 GPU 加速。
- DOM 渲染器 - 一個備用渲染器,速度較慢但相容性很好。
由 WebGL 渲染器驅動的 GPU 加速在終端中預設啟用。這有助於終端更快地工作,並以高 FPS 顯示,透過顯著減少 CPU 在渲染每一幀上花費的時間。
預設的 terminal.integrated.gpuAcceleration 值 auto 會嘗試使用 WebGL 渲染器,如果失敗則回退到 DOM 渲染器。在 Linux 虛擬機器、不支援 WebGL 的瀏覽器或驅動程式過時的機器上,WebGL 可能無法正常工作。
自定義字形
啟用 GPU 加速 後,自定義渲染(而非字型)可以改進某些字元在終端中的顯示方式。這些包括框繪字元(U+2500-U+257F)、塊元素(U+2580-U+259F)以及部分 Powerline 符號(U+E0B0-U+E0BF)。這意味著配置的字型不必支援這些字元,並且這些字元可以畫素完美地繪製並拉伸到整個單元格的大小。
以下是一些這些字元在配置了自定義行高和字母間距時的示例。請注意,由於自定義字形,單元格之間沒有間隙。

可以透過將 terminal.integrated.customGlyphs 設定為 false 來停用此功能。
重縮放模糊寬度字形
某些 Unicode 字元的寬度模糊,終端的後端和前端可能對其大小不一致。當啟用 GPU 加速 並且發生此模糊時,字形將被水平重縮放以適應單個單元格並防止重疊。
例如,下圖包含被壓縮到單個單元格中的羅馬數字字元。

可以透過將 terminal.integrated.rescaleOverlappingGlyphs 設定為 false 來停用此功能,這將導致以下重疊渲染:

自定義你的提示符
大多數 shell 都允許對終端提示符進行廣泛的自定義。這通常透過在 VS Code 外部配置 shell 來完成,通常是透過修改 $PS1 變數、設定 $PROMPT_COMMAND 或安裝外掛來實現。
像 Starship 和 oh-my-posh 這樣的提示符可以顯示 git 狀態等資訊,並且與大多數 shell 相容,因此是初學者的不錯選擇。
常見問題
為什麼我的終端顯示多色三角形或黑方塊?
在某些環境中,終端在 GPU 加速渲染時可能會出現問題。例如,您可能會看到一個大的多色三角形而不是文字。這通常是由驅動程式/VM 圖形問題引起的,在 Chromium 中也會發生同樣的情況。可以透過使用 --disable-gpu 標誌啟動 code 或將 terminal.integrated.gpuAcceleration 設定為 off 來避免在終端中使用畫布,從而解決這些問題。有關更多資訊,請參閱 GPU 加速 部分。
為什麼終端中的顏色不正確?
最小對比度比功能 可能會導致顏色顯示不符合預期。可以透過以下方式停用它:
"terminal.integrated.minimumContrastRatio": 1
有關這是預設值的原因的背景資訊,請參閱 vscode#146406。