Terminaldarstellung
Das Aussehen des Terminals von Visual Studio Code kann umfangreich angepasst werden.

Sapphire-Theme mit benutzerdefinierter Starship-Eingabeaufforderung unter Verwendung der Schriftart Hack mit Nerd Font-Symbolen
Textstil
Text im Terminal kann mit den folgenden Einstellungen angepasst werden
- terminal.integrated.fontFamily: Die zu verwendende Schriftfamilie, im Format, das fontFamily in CSS verwendet. Zum Beispiel konfiguriert
"'Fira Code', monospace"Fira Codeals primäre Schriftart undmonospaceals Fallback, wenn ihr Glyphen fehlen. - terminal.integrated.fontSize: Ändert die Schriftgröße des Textes im Terminal.
- terminal.integrated.letterSpacing: Konfiguriert zusätzlichen horizontalen Abstand zwischen Zeichen in Pixeln.
- terminal.integrated.lineHeight: Konfiguriert zusätzlichen vertikalen Abstand zwischen Zeichen als Multiplikator der normalen Zeilenhöhe. Beispielsweise fügt
1.110 % zusätzlichen vertikalen Abstand hinzu. - terminal.integrated.fontWeight: Konfiguriert die Schriftstärke von "normalem" Text.
- terminal.integrated.fontWeightBold: Konfiguriert die Schriftstärke von "fettem" Text.
terminal.integrated.fontLigatures.*: Ligaturen konfigurieren.
Powerline-Symbole und Nerd Fonts
Powerline-Schriftarten sind speziell gepatchte Schriftarten, die zusätzliche Zeichen enthalten, die im Terminal verwendet werden können. Das Terminal von VS Code rendert einige der Powerline-Symbole ohne Notwendigkeit einer Schriftartkonfiguration, aber wenn mehr Glyphen gewünscht sind, konfigurieren Sie eine Powerline-Schriftart mit der Schriftartfamilie-Einstellung. Powerline-Schriftarten enden normalerweise mit " for Powerline". Die folgende Einstellung ist ein Beispiel für die Konfiguration einer DejaVu Sans Mono, die gepatcht wurde.
"editor.fontFamily": "'DejaVu Sans Mono for Powerline'"
Nerd Fonts funktionieren auf die gleiche Weise und haben typischerweise die Endung " NF". Das Folgende ist ein Beispiel für die Konfiguration der Nerd Fonts-Variante von Hack.
"terminal.integrated.fontFamily": "'Hack NF'"
Terminalcursor
Der Stil des Terminalcursors und ob er blinkt, kann mit den folgenden Einstellungen angepasst werden
- terminal.integrated.cursorStyle: Definiert die Form des Cursors, kann block, line oder underline sein.
- terminal.integrated.cursorWidth: Wie breit der Cursor in Pixel sein soll, wenn der Cursorstil auf
linegesetzt ist. - terminal.integrated.cursorBlinking: Ob der Cursor blinken soll, wenn das Terminal fokussiert ist.
- terminal.integrated.cursorStyleInactive: Definiert die Form des Cursors, kann outline, block, line, underline oder none sein.
Registerkarten anpassen
Terminal-Registerkarten erscheinen standardmäßig rechts in der Terminalansicht, wenn zwei oder mehr Terminals vorhanden sind, und zeigen das aktive Terminal im Ansichtsheader an, wenn nur eines vorhanden ist.

Sichtbarkeit
Die Standardanzeige ist darauf ausgelegt, horizontalen Platz zu sparen, ist aber möglicherweise nicht wünschenswert. Wie Registerkarten dargestellt werden, kann mit den folgenden Einstellungen konfiguriert werden
- terminal.integrated.tabs.hideCondition: Wann die Registerkarten nach rechts ausgeblendet werden sollen. Setzen Sie auf
never, um sie immer anzuzeigen. - terminal.integrated.tabs.showActiveTerminal: Wann das aktive Terminal im Terminalansichts-Header angezeigt werden soll.
- terminal.integrated.tabs.showActions: Wann die Aktionen des aktiven Terminals im Ansichts-Header angezeigt werden sollen.
- terminal.integrated.tabs.location: Ob die Registerkarten links oder rechts vom Terminal angezeigt werden sollen.
- terminal.integrated.tabs.enabled: Ob Registerkarten verwendet werden sollen. Wenn deaktiviert, wird die ursprüngliche Dropdown-Ansicht angezeigt.
Registerkarten-Text
Der Text auf jeder Registerkarte wird durch die folgenden Einstellungen bestimmt
- terminal.integrated.tabs.title: Titel der Registerkarte.
- terminal.integrated.tabs.description: Text, der rechts vom Titel erscheint.
- terminal.integrated.tabs.separator: Trennzeichen zwischen Titel und Beschreibung.
Standardmäßig zeigt der Titel den vom Shell erkannten Prozessnamen an.
Andere Terminals zeigen oft die von der Shell gesendete Escape-Sequenz als Titel an, was mit Folgendem konfiguriert werden kann:
"terminal.integrated.tabs.title": "${sequence}"
Hier sind alle verfügbaren Variablen
${cwd}: Das aktuelle Arbeitsverzeichnis des Terminals.${cwdFolder}: Das aktuelle Arbeitsverzeichnis des Terminals, angezeigt für Multi-Root-Workspaces oder in einem Single-Root-Workspace, wenn der Wert vom anfänglichen Arbeitsverzeichnis abweicht. Unter Windows wird dies nur angezeigt, wenn die Shell-Integration aktiviert ist.${workspaceFolder}: Der Workspace, in dem das Terminal gestartet wurde.${workspaceFolderName}: Der Name des Workspaces, in dem das Terminal gestartet wurde.${local}: Gibt ein lokales Terminal in einem Remote-Workspace an.${process}: Der Name des Terminalprozesses.${progress}: Der von der OSC-9;4-Sequenz gemeldete Fortschrittszustand.${separator}: Ein bedingter Trenner (-), der nur angezeigt wird, wenn er von Variablen mit Werten oder statischem Text umgeben ist.${sequence}: Der vom Prozess dem Terminal bereitgestellte Name.${task}: Gibt an, dass dieses Terminal mit einer Aufgabe verknüpft ist.${shellType}: Der erkannte Shell-Typ.${shellCommand}: Der gemäß der Shell-Integration ausgeführte Befehl. Dies erfordert auch ein hohes Vertrauen in die erkannte Befehlszeile, was bei einigen Eingabeaufforderungs-Frameworks möglicherweise nicht funktioniert.${shellPromptInput}: Die vollständige Eingabeaufforderung der Shell gemäß der Shell-Integration.
Symbole
Jedes Terminal hat ein zugehöriges Symbol, das von seinem Terminalprofil bestimmt wird. Das Standardsymbol und seine Farbe, die verwendet werden, wenn sie nicht in einem Profil definiert sind, können mit den Einstellungen terminal.integrated.tabs.defaultIcon und terminal.integrated.tabs.defaultColor konfiguriert werden.
Status
Der "Status" eines Terminals, falls vorhanden, wird durch ein Symbol angezeigt, das rechts von der Registerkarte erscheint. Einige Status beinhalten Animationen. Wenn dies ablenkend ist, kann die Animation deaktiviert werden mit
"terminal.integrated.tabs.enableAnimation": false
Visueller Glockenton
Wenn der Glockenton des Terminals ausgelöst wird, wird kurz ein gelbes Glockensymbol angezeigt. Dies kann mit terminal.integrated.enableBell deaktiviert und die Dauer mit terminal.integrated.bellDuration konfiguriert werden.
Terminalfarben
Während das Terminal in der Lage ist, True Color anzuzeigen, verwenden Programme üblicherweise 8 ANSI-Farben (schwarz, rot, grün, gelb, blau, magenta, cyan und weiß) und helle Varianten davon. Diese ANSI-Farben werden durch das aktive Farbschema bestimmt, können aber auch unabhängig vom Schema mit der Einstellung workbench.colorCustomizations konfiguriert werden.
Ob fetter Text die normalen ANSI-Farben oder die helle Variante verwendet, kann mit der Einstellung terminal.integrated.drawBoldTextInBrightColors konfiguriert werden.
Minimales Kontrastverhältnis
Terminals haben oft Kontrastprobleme aufgrund von Konflikten mit dunklen/hellen Schemata, ANSI-Farben oder laufenden Shells/Programmen und mehr.
Das Feature für minimale Kontrastverhältnisse löst dieses Problem, indem die Luminanz der Vordergrundfarbe des Textes erhöht oder verringert wird, bis ein Kontrastverhältnis von 4,5:1 erreicht ist.
Ein Nachteil davon ist, dass farbiger Text manchmal an Sättigung verlieren kann. Dieses Feature kann konfiguriert oder deaktiviert werden, um die ursprünglichen Farben mit Folgendem zu erhalten:
"terminal.integrated.minimumContrastRatio": 1
Ligaturen
Terminal Ligaturen ermöglichen die Darstellung mehrerer Zeichen als eines. Sie können Ligaturen im Terminal aktivieren, indem Sie die Einstellung terminal.integrated.fontLigatures.enabled konfigurieren, vorausgesetzt, die Terminalschriftartfamilie (terminal.integrated.fontFamily) unterstützt diese.

Schriftart-Feature-Einstellungen
Wenn Ligaturen aktiviert sind, ist es auch möglich, eine detaillierte Liste von Schriftart-Feature-Einstellungen im Format der CSS-Eigenschaft font-feature-settings festzulegen. Dies gibt Ihnen eine feinere Kontrolle darüber, wie Ligaturen gerendert werden. Zum Beispiel sieht das Deaktivieren der Standard-calt-Ligaturen und das Aktivieren einer bestimmten Schriftvarianten etwa so aus: "calt" off, "ss03". Eine Liste der von der Schriftart unterstützten Varianten finden Sie in der Dokumentation der Schriftart.
Fallback-Ligaturen
Wenn eine Schriftart Ligaturen unterstützt, VS Code aber die fragliche Schriftart nicht parsen kann, können Sie entweder die GPU-Beschleunigung deaktivieren oder eine Liste von Zeichensequenzen angeben, um Ligaturen manuell zu verbinden.
Standardmäßig ist die Liste der Fallback-Ligaturen eine Liste gängiger Ligaturen, die beim Programmieren verwendet werden. Passen Sie die Liste an, indem Sie die Einstellung terminal.integrated.fontLigatures.fallbackLigatures konfigurieren. Zum Beispiel
// Only use ligatures for `ff`, `fi` and `fl`
"terminal.integrated.fontLigatures.fallbackLigatures": [
"ff",
"fi",
"fl"
]
GPU-Beschleunigung
Das Terminal bietet zwei verschiedene Renderer, die jeweils unterschiedliche Kompromisse eingehen
- WebGL-Renderer – Echte GPU-Beschleunigung.
- DOM-Renderer – Ein Fallback-Renderer, der viel langsamer ist, aber eine gute Kompatibilität aufweist.
Die GPU-Beschleunigung, die vom WebGL-Renderer gesteuert wird, ist standardmäßig im Terminal aktiviert. Dies hilft dem Terminal, schneller zu arbeiten und mit hoher Bildrate anzuzeigen, indem die Zeit, die die CPU für das Rendern jedes Frames benötigt, erheblich reduziert wird.
Der Standardwert von terminal.integrated.gpuAcceleration von auto versucht den WebGL-Renderer und fällt auf den DOM-Renderer zurück, wenn dieser fehlschlägt. Unter Linux-VMs, Browsern, die WebGL nicht unterstützen, oder Rechnern mit veralteten Treibern funktioniert WebGL möglicherweise nicht richtig.
Benutzerdefinierte Glyphen
Wenn GPU-Beschleunigung aktiviert ist, verbessert das benutzerdefinierte Rendern anstelle der Schriftart die Darstellung einiger Zeichen im Terminal. Dazu gehören Rahmenzeichen (U+2500-U+257F), Blockelemente (U+2580-U+259F) und eine Teilmenge von Powerline-Symbolen (U+E0B0-U+E0BF). Das bedeutet, dass die konfigurierte Schriftart diese Zeichen nicht unterstützen muss und die Zeichen pixelgenau gezeichnet und auf die Größe der gesamten Zelle gestreckt werden.
Unten sind einige Beispiele für diese Zeichen mit konfigurierter Zeilenhöhe und Buchstabenabstand. Beachten Sie, dass es dank der benutzerdefinierten Glyphen keine Lücken zwischen den Zellen gibt.

Diese Funktion kann deaktiviert werden, indem terminal.integrated.customGlyphs auf false gesetzt wird.
Neuskalierung von Glyphen mit ambigurer Breite
Einige Unicode-Zeichen haben eine ambigue Breite, bei der das Backend und das Frontend des Terminals sich möglicherweise nicht über die Größe einig sind. Wenn die GPU-Beschleunigung aktiviert ist und diese Ambiguität auftritt, wird die Glyphe horizontal skaliert, um in eine einzelne Zelle zu passen und Überlappungen zu verhindern.
Zum Beispiel zeigt das folgende Bild römische Ziffern, die in eine einzelne Zelle gequetscht sind.

Diese Funktion kann deaktiviert werden, indem terminal.integrated.rescaleOverlappingGlyphs auf false gesetzt wird, was zu der folgenden überlappenden Darstellung führen würde.

Passen Sie Ihre Eingabeaufforderung an
Die meisten Shells erlauben eine umfangreiche Anpassung der Terminal-Eingabeaufforderung. Dies geschieht durch Konfiguration Ihrer Shell außerhalb von VS Code, typischerweise durch Modifizierung der $PS1-Variable, Setzen von $PROMPT_COMMAND oder Installation eines Plugins.
Einige Eingabeaufforderungen wie Starship und oh-my-posh zeigen Dinge wie den Git-Status an und funktionieren mit den meisten Shells, daher sind sie eine gute Wahl für den Anfang.
Häufig gestellte Fragen
Warum zeigt mein Terminal ein mehrfarbiges Dreieck oder ein schwarzes Rechteck an?
Das Terminal kann in einigen Umgebungen Probleme mit GPU-beschleunigtem Rendering haben. Zum Beispiel sehen Sie möglicherweise ein großes mehrfarbiges Dreieck anstelle von Text. Dies wird typischerweise durch Treiber-/VM-Grafikprobleme verursacht und tritt auch in Chromium auf. Umgehen Sie diese Probleme, indem Sie code mit dem Flag --disable-gpu starten oder terminal.integrated.gpuAcceleration auf off setzen, um die Verwendung der Leinwand im Terminal zu vermeiden. Weitere Informationen finden Sie im Abschnitt GPU-Beschleunigung.
Warum sind die Farben im Terminal nicht korrekt?
Die Funktion für das minimale Kontrastverhältnis kann dazu führen, dass Farben nicht wie erwartet angezeigt werden. Sie kann deaktiviert werden mit
"terminal.integrated.minimumContrastRatio": 1
Der Hintergrund, warum dies der Standard ist, wird in vscode#146406 erklärt.