現已釋出!閱讀關於 11 月新增功能和修復的內容。

終端外觀

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

An example of a custom UI, using Powerline and Nerd Font symbols in the prompt and a custom workbench theme

使用 Sapphire 主題,並使用 Starship 自定義提示符,字型為 Hack,並支援 Nerd Font 符號。

文字樣式

終端文字可以透過以下設定進行自定義:

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'"

終端游標

終端游標樣式以及它是否閃爍可以透過以下設定進行自定義:

自定義標籤頁

預設情況下,當有兩個或更多終端時,終端選項卡會顯示在終端檢視的右側,當只有一個終端時,它會顯示在檢視標題中,指示活動終端。

A blank terminal without tabs and then with tabs displayed for three terminals

可見性

預設的可見性設定是為了節省水平空間,但這可能不符合您的需求。選項卡的外觀可以透過以下設定進行配置:

選項卡文字

每個選項卡的文字由以下設定決定:

預設情況下,標題顯示 shell 檢測到的程序名稱。

其他終端通常將 shell 傳送的轉義序列顯示為標題,這可以透過以下方式配置:

"terminal.integrated.tabs.title": "${sequence}"

這裡是所有可用的變數:

  • ${cwd}: 終端的當前工作目錄。
  • ${cwdFolder}: 終端的當前工作目錄,當是多根工作區時,或者在單根工作區中且其值與初始工作目錄不同時顯示。在 Windows 上,只有在啟用 shell 整合時才會顯示此項。
  • ${workspaceFolder}: 終端啟動時所在的工作區。
  • ${workspaceFolderName}: 終端啟動時所在工作區的名稱。
  • ${local}: 表示遠端工作區中的本地終端。
  • ${process}: 終端程序的名稱。
  • ${progress}: 由 OSC 9;4 序列報告的進度狀態。
  • ${separator}: 條件分隔符(-),只有當它被具有值的變數或靜態文字包圍時才會顯示。
  • ${sequence}: 程序為終端提供的名稱。
  • ${task}: 表明此終端與任務相關聯。
  • ${shellType}: 檢測到的 shell 型別。
  • ${shellCommand}: 根據 shell 整合正在執行的命令。這還需要對檢測到的命令列有高置信度,這在某些提示符框架下可能不起作用。
  • ${shellPromptInput}: 根據 shell 整合,shell 的完整提示輸入。

圖示

每個終端都有一個關聯的圖示,該圖示由其 終端配置檔案 確定。預設圖示及其顏色(如果在配置檔案中未定義則使用)可以透過 terminal.integrated.tabs.defaultIconterminal.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)支援它們。

Enabling ligatures will combine certain sets of characters into one, for example >= into the greater than or equals sign

字型功能設定

啟用連字後,還可以設定詳細的字型功能設定列表,格式為 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.gpuAccelerationauto 會嘗試使用 WebGL 渲染器,如果失敗則回退到 DOM 渲染器。在 Linux 虛擬機器、不支援 WebGL 的瀏覽器或驅動程式過時的機器上,WebGL 可能無法正常工作。

自定義字形

啟用 GPU 加速 後,自定義渲染(而非字型)可以改進某些字元在終端中的顯示方式。這些包括框繪字元(U+2500-U+257F)、塊元素(U+2580-U+259F)以及部分 Powerline 符號(U+E0B0-U+E0BF)。這意味著配置的字型不必支援這些字元,並且這些字元可以畫素完美地繪製並拉伸到整個單元格的大小。

以下是一些這些字元在配置了自定義行高和字母間距時的示例。請注意,由於自定義字形,單元格之間沒有間隙。

Box drawing, block characters and some Powerline symbols fill the entire cell in the terminal

可以透過將 terminal.integrated.customGlyphs 設定為 false 來停用此功能。

重縮放模糊寬度字形

某些 Unicode 字元的寬度模糊,終端的後端和前端可能對其大小不一致。當啟用 GPU 加速 並且發生此模糊時,字形將被水平重縮放以適應單個單元格並防止重疊。

例如,下圖包含被壓縮到單個單元格中的羅馬數字字元。

VIII and XII characters would be rescaled horizontally so as to not overlap with following characters. They feature a thinner stroke width when this happens due to the scaling

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

When off, the VIII and XII characters may overlap the following characters

自定義你的提示符

大多數 shell 都允許對終端提示符進行廣泛的自定義。這通常透過在 VS Code 外部配置 shell 來完成,通常是透過修改 $PS1 變數、設定 $PROMPT_COMMAND 或安裝外掛來實現。

Starshipoh-my-posh 這樣的提示符可以顯示 git 狀態等資訊,並且與大多數 shell 相容,因此是初學者的不錯選擇。

常見問題

為什麼我的終端顯示多色三角形或黑方塊?

在某些環境中,終端在 GPU 加速渲染時可能會出現問題。例如,您可能會看到一個大的多色三角形而不是文字。這通常是由驅動程式/VM 圖形問題引起的,在 Chromium 中也會發生同樣的情況。可以透過使用 --disable-gpu 標誌啟動 code 或將 terminal.integrated.gpuAcceleration 設定為 off 來避免在終端中使用畫布,從而解決這些問題。有關更多資訊,請參閱 GPU 加速 部分。

為什麼終端中的顏色不正確?

最小對比度比功能 可能會導致顏色顯示不符合預期。可以透過以下方式停用它:

"terminal.integrated.minimumContrastRatio": 1

有關這是預設值的原因的背景資訊,請參閱 vscode#146406

© . This site is unofficial and not affiliated with Microsoft.