ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

Terminal-Grundlagen

Visual Studio Code enthält ein voll funktionsfähiges integriertes Terminal, das im Stammverzeichnis Ihres Arbeitsbereichs startet. Es bietet eine Integration mit dem Editor zur Unterstützung von Funktionen wie Links und Fehlererkennung. Das integrierte Terminal kann Befehle wie mkdir und git genauso ausführen wie ein eigenständiges Terminal.

Sie können ein Terminal wie folgt öffnen:

  • Über das Menü verwenden Sie die Befehle **Terminal** > **Neues Terminal** oder **Anzeigen** > **Terminal**.
  • Verwenden Sie über die **Befehlspalette** (⇧⌘P (Windows, Linux Ctrl+Shift+P)) den Befehl **Anzeigen: Terminal umschalten**.
  • Im Explorer können Sie den Kontextmenübefehl **Im integrierten Terminal öffnen** verwenden, um ein neues Terminal von einem Ordner aus zu öffnen.
  • Zum Umschalten der Terminal-Seitenleiste verwenden Sie die Tastenkombination ⌃` (Windows, Linux Ctrl+`).
  • Zum Erstellen eines neuen Terminals verwenden Sie die Tastenkombination ⌃⇧` (Windows, Linux Ctrl+Shift+`).

Das Terminal von VS Code verfügt über zusätzliche Funktionalität namens Shell-Integration, die verfolgt, wo Befehle mit Dekorationen links von einem Befehl und in der Bildlaufleiste ausgeführt werden.

The integrated terminal can run commands such as mkdir and git just like a standalone terminal. VS Code's terminal has additional functionality called shell integration that tracks where commands are run with decorations on the left of a command and in the scrollbar.

Hinweis

Wenn Sie lieber außerhalb von VS Code arbeiten, öffnen Sie ein externes Terminal mit der Tastenkombination ⇧⌘C (Windows, Linux Ctrl+Shift+C).

Terminal-Shells

Das integrierte Terminal kann verschiedene auf Ihrem Computer installierte Shells verwenden, wobei die Standardeinstellung aus Ihren Systemeinstellungen übernommen wird. Shells werden im Dropdown-Menü für Terminalprofile erkannt und präsentiert.

A detected profile can be chosen in the dropdown next to the new terminal button. Some examples on Windows include PowerShell, Command Prompt, Git Bash and WSL

Weitere Informationen zur Konfiguration von Terminal-Shells finden Sie im Artikel Terminalprofile.

Terminals verwalten

Die Benutzeroberfläche der Terminal-Tabs befindet sich auf der rechten Seite der Terminalansicht. Jedes Terminal hat einen Eintrag mit seinem Namen, Symbol, Farbe und Gruppen-Dekoration (falls vorhanden).

Activating the Launch Profile button will show all detected and manually configured profiles

Fügen Sie Terminalinstanzen hinzu, indem Sie auf das **+**-Symbol oben rechts im **TERMINAL**-Bereich klicken, ein Profil aus dem Terminal-Dropdown auswählen oder den Befehl ⌃⇧` (Windows, Linux Ctrl+Shift+`) ausführen. Diese Aktion erstellt einen weiteren Eintrag in der Tab-Liste, der diesem Terminal zugeordnet ist.

Entfernen Sie Terminalinstanzen, indem Sie mit der Maus über einen Tab fahren und auf die Schaltfläche **Papierkorb** klicken, einen Tab-Eintrag auswählen und **Entf** drücken, den Befehl **Terminal: Aktuelle Terminalinstanz beenden** verwenden oder das Kontextmenü per Rechtsklick verwenden.

Navigieren Sie zwischen Terminalgruppen, indem Sie den Fokus auf den nächsten Bereich legen, ⇧⌘] (Windows, Linux Ctrl+PageDown), oder den Fokus auf den vorherigen Bereich legen, ⇧⌘[ (Windows, Linux Ctrl+PageUp).

Symbole können rechts neben dem Terminaltitel im Tab-Label erscheinen, wenn sich der Status eines Terminals ändert. Einige Beispiele sind eine Glocke (macOS) und für Aufgaben die Anzeige eines Häkchens, wenn keine Fehler vorhanden sind, und andernfalls ein X. Fahren Sie mit der Maus über das Symbol, um Statusinformationen zu lesen, die Aktionen enthalten können.

Gruppen (geteilte Bereiche)

Platzieren Sie mehrere Terminals nebeneinander und erstellen Sie eine Gruppe, indem Sie ein Terminal aufteilen.

  • Fahren Sie mit der Maus über einen Eintrag in der Liste der Terminals auf der rechten Seite und wählen Sie die Inline-Schaltfläche zum Aufteilen aus.
  • Klicken Sie mit der rechten Maustaste auf das Kontextmenü und wählen Sie die Menüoption **Teilen**.
  • Klicken Sie mit der **Alt**-Taste und einem Linksklick auf einen Tab, die **+**-Schaltfläche oder den einzelnen Tab im Terminalbereich.
  • Führen Sie den Befehl ⌘\ (Windows, Linux Ctrl+Shift+5) aus.
Tipp

Das Arbeitsverzeichnis für das neue Terminal hängt von der Einstellung terminal.integrated.splitCwd ab. Einstellung.

Navigieren Sie zwischen Terminals in einer Gruppe, indem Sie den vorherigen Bereich fokussieren, ⌥⌘← (Windows, Linux Alt+Left), oder den nächsten Bereich fokussieren, ⌥⌘→ (Windows, Linux Alt+Right).

Das Ziehen und Ablegen von Tabs in der Liste ordnet sie neu an. Das Ziehen eines Tabs in den Hauptterminalbereich ermöglicht das Verschieben eines Terminals von einer Gruppe in eine andere.

Das Verschieben eines Terminals in eine eigene Gruppe kann mit dem Befehl **Terminal: Terminal aufteilen** über die Befehlspalette oder im Kontextmenü per Rechtsklick erfolgen.

Terminals im Editorbereich

Sie können Terminals im Editorbereich (Terminal-Editoren) mit dem Befehl **Terminal: Neues Terminal im Editorbereich erstellen**, dem Befehl **Terminal: Neues Terminal im Editorbereich zur Seite erstellen** oder durch Ziehen eines Terminals aus der Terminalansicht in den Editorbereich öffnen. Terminal-Editoren werden wie normale Editor-Tabs dargestellt.

Terminal editors are presented like regular text file tabs

Sie können Terminal-Editoren auf beiden Seiten oder in mehreren Dimensionen anordnen, indem Sie das Layoutsystem der Editorgruppe verwenden, z. B. PowerShell- und WSL-Terminals gestapelt rechts von den Datei-Editoren.

Terminal editors are can be laid out using the editor group layout system, for example 2 terminals could sit to the right of a text editor

Die Einstellung terminal.integrated.defaultLocation kann den Standardstandort des Terminals im **Ansicht**- oder **Editor**-Bereich ändern.

Terminals in neuen Fenstern

Das Öffnen eines Terminals in einem neuen VS Code-Fenster ist auf verschiedene Arten möglich.

  • Verwenden Sie ⌃⇧⌥` (Windows, Linux Ctrl+Shift+Alt+`).
  • Klicken Sie mit der rechten Maustaste auf den Terminal-Tab, wenn Sie mehrere Terminals haben, oder klicken Sie mit der linken Maustaste auf den Tab, wenn nur ein Terminal geöffnet ist. Wählen Sie dann **Terminal in neues Fenster verschieben** aus.
  • Wählen Sie den Eintrag **Neues Terminalfenster** aus, der in verschiedenen Menüs verfügbar ist.

Den Puffer navigieren

Der Inhalt im Terminal wird als Puffer bezeichnet, und der Bereich direkt über dem unteren Viewport wird als "Scrollback" bezeichnet. Die Menge des beibehaltenen Scrollbacks wird durch die Einstellung terminal.integrated.scrollback bestimmt und beträgt standardmäßig 1000 Zeilen. Einstellung.

Es stehen verschiedene Befehle zur Navigation im Terminalpuffer zur Verfügung.

  • Eine Zeile nach oben scrollen - ⌥⌘PageUp (Windows Ctrl+Alt+PageUp, Linux Ctrl+Shift+Up)
  • Eine Zeile nach unten scrollen - ⌥⌘PageDown (Windows Ctrl+Alt+PageDown, Linux Ctrl+Shift+Down)
  • Eine Seite nach oben scrollen - PageUp (Windows, Linux Shift+PageUp)
  • Eine Seite nach unten scrollen - PageDown (Windows, Linux Shift+PageDown)
  • Zum Anfang scrollen - ⌘Home (Windows Ctrl+Home, Linux Shift+Home)
  • Zum Ende scrollen - ⌘End (Windows Ctrl+End, Linux Shift+End)

**Befehlsnavigation** ist ebenfalls verfügbar (siehe Shell-Integration).

  • Zum vorherigen Befehl scrollen - ⌘↑ (Windows, Linux Ctrl+Up)
  • Zum nächsten Befehl scrollen - ⌘↓ (Windows, Linux Ctrl+Down)

Das Scrollen erfolgt sofort, kann aber mit der Einstellung terminal.integrated.smoothScrolling konfiguriert werden, um über einen kurzen Zeitraum animiert zu werden.

Das Terminal verfügt über eine hochentwickelte Linkerkennung mit Editor-Integration und sogar von Erweiterungen bereitgestellten Link-Handlern. Fahren Sie mit der Maus über einen Link, um eine Unterstreichung anzuzeigen, halten Sie dann die Taste **Strg**/**Cmd** gedrückt und klicken Sie.

Diese integrierten Link-Handler werden in der folgenden Prioritätsreihenfolge verwendet:

  • URIs/URLs: Links, die wie URIs aussehen, z. B. https://visualstudiocode.de, vscode://path/to/file oder file://path/to/file, werden mit dem Standard-Handler für das Protokoll geöffnet. Zum Beispiel werden https-Links den Browser öffnen.

    Opening a URI link will open it in the system browser

  • Dateilinks: Links zu Dateien, deren Existenz auf dem System verifiziert wurde. Diese öffnen die Datei in einem neuen Editor-Tab und unterstützen viele gängige Zeilen-/Spaltenformate wie file:1:2, file: Zeile 1, Spalte 2.

    Activating a file link will open it in an editor

  • Ordnerlinks: Ordnerlinks ähneln Dateilinks, öffnen jedoch ein neues VS Code-Fenster im Ordner.

    Activating a folder link will open it in a new window

  • Wortlinks: Fallback-Linktyp, der die Einstellung terminal.integrated.wordSeparators verwendet. Die Einstellung definiert Wortgrenzen und macht fast jeden Text zu einem Wort. Das Aktivieren eines Wortlinks durchsucht den Arbeitsbereich nach dem Wort. Wenn es ein einzelnes Ergebnis gibt, wird es geöffnet, andernfalls werden die Suchergebnisse angezeigt. Wortlinks gelten als "geringe Zuverlässigkeit" und zeigen keine Unterstreichung oder Tooltip an, es sei denn, Sie halten die Taste **Strg**/**Cmd** gedrückt. Sie haben auch nur eingeschränkte Unterstützung für Zeilen- und Spaltensuffixe.

    Activating a word link 'terminal:15' will open a Quick Pick searching the workspace for all files containing 'terminal', choosing an option will open the file at line 15

Der Befehl **Erkannten Link öffnen** (⇧⌘O (Windows, Linux Ctrl+Shift+O)) kann verwendet werden, um über die Tastatur auf Links zuzugreifen.

Open Detected Link opens a quick pick with all links in the viewport, split into categories

Tipp

Wenn die Link-Überprüfung Leistungsprobleme verursacht, z. B. in Umgebungen mit hoher Latenz bei Remote-Verbindungen, deaktivieren Sie sie über die Einstellung terminal.integrated.enableFileLinks. Einstellung.

Erweiterungen können **Link-Provider** beisteuern, die es der Erweiterung ermöglichen zu definieren, was beim Klicken geschieht. Ein Beispiel hierfür ist die Erweiterung GitLens, die Git-Branch-Links erkennt.

When GitLens is installed, hovering a branch name will provide custom behavior to open the branch in the UI

Tastaturzugänglichkeit

Links sind über mehrere Befehle tastaturzugänglich, die Links basierend auf dem Linktyp öffnen.

  • **Terminal: Letzten lokalen Dateilink öffnen** - Öffnet den zuletzt erkannten lokalen Dateilink. Keine Standard-Tastenkombination.
  • **Terminal: Letzten URL-Link öffnen** - Öffnet den zuletzt erkannten URI/URL-Link. Keine Standard-Tastenkombination.
  • **Terminal: Erkannten Link öffnen...** - Öffnet eine durchsuchbare Schnellauswahl mit allen erkannten Links, einschließlich Wortlinks. Die Standard-Tastenkombination ist Strg/Cmd+Umschalt+O, die gleiche wie die Tastenkombination für **Gehe zu Symbol im Editor**.

Kopieren und Einfügen

Die Tastenkombinationen für Kopieren und Einfügen folgen den Plattformstandards.

  • Linux: Strg+Umschalt+C und Strg+Umschalt+V; Einfügen der Auswahl ist mit Umschalt+Einfg verfügbar.
  • macOS: Cmd+C und Cmd+V.
  • Windows: Strg+C und Strg+V.

Das Kopieren erfolgt automatisch bei der Auswahl, wenn terminal.integrated.copyOnSelection aktiviert ist.

Standardmäßig gibt es eine Warnung beim Einfügen mehrerer Zeilen, die mit der Einstellung terminal.integrated.enableMultiLinePasteWarning deaktiviert werden kann. Dies geschieht nur, wenn die Shell den "Bracketed Paste Mode" nicht unterstützt. Wenn dieser Modus aktiviert ist, zeigt die Shell an, dass sie das Einfügen mehrerer Zeilen verarbeiten kann.

Die Maus verwenden

Verhalten bei Rechtsklick

Das Verhalten bei Rechtsklick unterscheidet sich je nach Plattform.

  • Linux: Zeigt das Kontextmenü an.
  • macOS: Wählt das Wort unter dem Cursor aus und zeigt das Kontextmenü an.
  • Windows: Kopiert und verwirft die Auswahl, wenn eine Auswahl vorhanden ist, andernfalls wird eingefügt.

Dies kann mit der Einstellung terminal.integrated.rightClickBehavior konfiguriert werden. Die Optionen sind:

  • default - Zeigt das Kontextmenü an.
  • copyPaste - Kopiert bei Auswahl, andernfalls wird eingefügt.
  • paste - Fügt per Rechtsklick ein.
  • selectWord - Wählt das Wort unter dem Cursor aus und zeigt das Kontextmenü an.
  • nothing - Tut nichts und übergibt das Ereignis an das Terminal.

Spaltenauswahl

Halten Sie die **Alt**-Taste gedrückt und ziehen Sie mit der linken Maustaste, um ein Rechteck aus Text im Terminal auszuwählen, anstatt die normale Zeilenauswahl.

Positionieren Sie den Cursor mit Alt neu

Mit **Alt** und einem Linksklick wird der Cursor unter die Mausposition verschoben. Dies geschieht durch Simulation von Pfeiltastenanschlägen, was bei einigen Shells oder Programmen möglicherweise nicht zuverlässig funktioniert. Diese Funktion kann mit der Einstellung terminal.integrated.altClickMovesCursor deaktiviert werden.

Mausereignismodus

Wenn Anwendungen im Terminal den Mausereignismodus aktivieren, wie z. B. der Vim-Mausmodus, werden Mausinteraktionen an die Anwendung und nicht an das Terminal gesendet. Das bedeutet, dass Klicken und Ziehen keine Auswahl mehr erzeugt. Die Terminalauswahl kann erzwungen werden, indem Sie unter Windows und Linux die Taste **Alt** gedrückt halten. Dies kann auch mit der Taste **Option** unter macOS erfolgen, erfordert jedoch zuerst die Aktivierung der Einstellung terminal.integrated.macOptionClickForcesSelection.

Suchen

Das integrierte Terminal verfügt über eine Suchfunktion, die mit ⌘F (Windows, Linux Ctrl+F) aufgerufen werden kann.

Find in the terminal will highlight all text matching the query

Tipp

Strg+F kann an die Shell gesendet werden, indem der Befehl workbench.action.terminal.focusFind aus den Befehlen zum Überspringen der Shell entfernt wird.

Ausgewählten Text ausführen

Um den Befehl runSelectedText zu verwenden, wählen Sie Text in einem Editor aus und führen Sie den Befehl **Terminal: Ausgewählten Text im aktiven Terminal ausführen** über die **Befehlspalette** (⇧⌘P (Windows, Linux Ctrl+Shift+P)) aus. Das Terminal versucht dann, den ausgewählten Text auszuführen. Wenn im aktiven Editor kein Text ausgewählt ist, wird die gesamte Zeile, auf der sich der Cursor befindet, im Terminal ausgeführt.

Tipp

Führen Sie auch die aktive Datei mit dem Befehl workbench.action.terminal.runActiveFile aus.

Das Terminal maximieren

Die Terminalansicht kann durch Klicken auf die Schaltfläche zum Maximieren der Panelgröße mit dem nach oben gerichteten Pfeilsymbol maximiert werden. Dadurch werden die Editoren vorübergehend ausgeblendet und das Panel maximiert. Dies ist nützlich, um sich vorübergehend auf eine große Menge an Ausgabe zu konzentrieren. Einige Entwickler verwenden VS Code als eigenständiges Terminal, indem sie ein neues Fenster öffnen, das Panel maximieren und die Seitenleiste ausblenden.

Beachten Sie, dass das Panel nur maximiert werden kann, wenn seine Option Panel-Ausrichtung auf **Mitte** eingestellt ist.

Alles auswählen

Es gibt einen Befehl **Terminal: Alles auswählen**, der unter macOS mit Cmd+A belegt ist, aber unter Windows und Linux keine Standard-Tastenkombination hat, da er mit Shell-Hotkeys in Konflikt geraten kann. Um Strg+A zum Auswählen aller zu verwenden, fügen Sie diese benutzerdefinierte Tastenkombination hinzu.

{
  "key": "ctrl+a",
  "command": "workbench.action.terminal.selectAll",
  "when": "terminalFocus && !isMac"
},

Dateipfade per Drag & Drop ziehen

Das Ziehen einer Datei in das Terminal fügt den Pfad in das Terminal ein, wobei die Maskierung der aktiven Shell entspricht.

Terminals mit Aufgaben automatisieren

Die Funktion Aufgaben kann verwendet werden, um den Start von Terminals zu automatisieren. Zum Beispiel startet die folgende .vscode/tasks.json-Datei eine Eingabeaufforderung und ein PowerShell-Terminal in einer einzigen Terminalgruppe, wenn das Fenster gestartet wird.

{
  "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"
      }
    }
  ]
}

Diese Datei könnte im Repository gespeichert werden, um sie mit anderen Entwicklern zu teilen, oder als Benutzeraufgabe über den Befehl workbench.action.tasks.openUserTasks erstellt werden.

Arbeitsverzeichnis

Standardmäßig wird das Terminal in dem Ordner geöffnet, der im Explorer geöffnet ist. Die Einstellung terminal.integrated.cwd ermöglicht die Angabe eines benutzerdefinierten Pfads, der stattdessen geöffnet werden soll.

{
  "terminal.integrated.cwd": "/home/user"
}

Auf Windows geteilte Terminals starten im Verzeichnis, in dem das Elternterminal gestartet wurde. Unter macOS und Linux erben geteilte Terminals das aktuelle Arbeitsverzeichnis des Elternterminals. Dieses Verhalten kann mit der Einstellung terminal.integrated.splitCwd geändert werden.

{
  "terminal.integrated.splitCwd": "workspaceRoot"
}

Es gibt auch Erweiterungen, die weitere Optionen bieten, wie z. B. Terminal Here.

Terminals mit fester Größe

Der Befehl **Terminal: Feste Dimensionen festlegen** ermöglicht die Änderung der Anzahl von Spalten und Zeilen, die das Terminal und sein zugrunde liegendes Pseudoterminal verwenden. Dies fügt bei Bedarf Scrollbalken hinzu, was zu einer unangenehmen Benutzererfahrung führen kann und im Allgemeinen nicht empfohlen wird, aber eine häufige Anfrage ist, insbesondere unter Windows, um Logs oder lange Zeilen zu lesen, wenn Paging-Tools nicht verfügbar sind.

Sie können auch mit der rechten Maustaste auf einen Terminal-Tab klicken und **Größe an Inhalt anpassen** (⌥Z (Windows, Linux Alt+Z)) auswählen, um die Anzahl der Terminalspalten auf die längste umgebrochene Zeile im Terminal zu ändern.

GitHub Copilot im Terminal

Wenn Sie Zugriff auf GitHub Copilot haben, können Sie es verwenden, um KI-gestützte Hilfe bei Terminalbefehlen und Shell-Skripting zu erhalten. Es gibt mehrere Möglichkeiten, Copilot mit dem Terminal zu verwenden:

Inline-Chat im Terminal

Starten Sie einen Inline-Chat direkt im Terminal, um Hilfe bei Shell-Befehlen zu erhalten.

  1. Öffnen Sie das Terminal (⌃` (Windows, Linux Ctrl+`)).
  2. Drücken Sie ⌘I (Windows, Linux Ctrl+I) oder führen Sie den Befehl **Terminal Inline-Chat** aus der Befehlspalette aus.
  3. Geben Sie Ihre Frage oder Anfrage in natürlicher Sprache ein, z. B.:
    • "Wie finde ich die größten Dateien in diesem Verzeichnis?"
    • "Zeigen Sie mir, wie ich den letzten Git-Commit rückgängig mache."
    • "Erstellen Sie ein Bash-Skript zur Analyse von Logdateien."

Terminal inline chat helps you quickly get and run shell commands

Wenn Copilot eine Antwort gibt, können Sie auf **Ausführen** klicken, um den Befehl direkt auszuführen, oder auf **Einfügen**, um ihn zur weiteren Bearbeitung in das Terminal einzufügen.

Weitere Informationen zur Verwendung von GitHub Copilot mit dem Terminal finden Sie unter Terminal-Inline-Chat verwenden.

Terminal-Chat-Teilnehmer

Verwenden Sie den dedizierten Chat-Teilnehmer @terminal im Frage-Modus in der Chat-Ansicht.

  1. Öffnen Sie die Chat-Ansicht (⌃⌘I (Windows, Linux Ctrl+Alt+I)).
  2. Beginnen Sie Ihre Frage mit @terminal, um sie an den Terminal-Teilnehmer zu richten.
  3. Fragen Sie nach Terminalbefehlen, Shell-Skripting oder erklären Sie Terminalausgaben.

Beispiele

  • @terminal Listen Sie die 5 größten Dateien in diesem Arbeitsbereich auf.
  • @terminal /explain Top Shell-Befehl
  • @terminal wie man rekursiv nach Mustern sucht.

Terminalkontext im Chat referenzieren

Sie können Terminalinformationen als Kontext in Ihren Chat-Aufforderungen einbeziehen.

  • Verwenden Sie #terminalSelection, um ausgewählten Text aus dem Terminal Ihrer Chat-Aufforderung hinzuzufügen.
  • Verwenden Sie #terminalLastCommand, um den letzten von Ihnen ausgeführten Befehl im Terminal einzubeziehen.

Nächste Schritte

Die Grundlagen des Terminals wurden in diesem Dokument behandelt. Lesen Sie weiter, um mehr über Folgendes zu erfahren:

  • Terminal-Inline-Chat - KI-gestützte Vorschläge direkt in Ihrem Terminal.
  • Aufgaben - Aufgaben ermöglichen Ihnen die Integration mit externen Tools und die starke Nutzung des Terminals.
  • VS Code's Terminal meistern - Ein externer Blog mit vielen Tipps für Power-User für das Terminal.
  • Erkunden Sie Terminalbefehle, indem Sie die Tastenkombinationen in VS Code durchsuchen (**Einstellungen: Tastenkombinationen öffnen** und dann nach "terminal" suchen).

Häufig gestellte Fragen

Ich habe Probleme beim Starten des Terminals.

Es gibt einen dedizierten Leitfaden zur Fehlerbehebung für diese Art von Problemen.

Wie erstelle ich ein Admin-Terminal?

Die integrierte Terminal-Shell läuft mit den Berechtigungen von VS Code. Wenn Sie einen Shell-Befehl mit erhöhten (Administrator-) oder anderen Berechtigungen ausführen müssen, verwenden Sie plattformspezifische Dienstprogramme wie runas.exe innerhalb eines Terminals.

Weitere Informationen zur Anpassung von Terminals über Terminalprofile finden Sie in Konfigurieren von Profilen.

Kann ich eine Tastenkombination für die Funktion "Im integrierten Terminal öffnen" des Explorers hinzufügen?

Sie können neue Terminals für bestimmte Ordner aus dem Explorer über den Kontextmenübefehl **Im integrierten Terminal öffnen** öffnen.

A folder selected in the Explorer displaying the context menu with the Open in Integrated Terminal command

Standardmäßig gibt es keine Tastenkombination für **Im integrierten Terminal öffnen**, aber Sie können Ihre eigene über den Editor für Tastenkombinationen hinzufügen (**Einstellungen: Globale Tastenkombinationen öffnen**, dann suchen Sie nach `openInTerminal`) und eine Tastenkombination zu Ihrer keybindings.json hinzufügen.

Das unten stehende Beispiel für keybindings.json fügt die Tastenkombination Strg+T für openInTerminal hinzu.

{
  "key": "ctrl+t",
  "command": "openInTerminal",
  "when": "filesExplorerFocus"
}

Warum beschwert sich nvm über eine Präfix-Option, wenn das integrierte Terminal gestartet wird?

nvm (Node Version Manager) Benutzer sehen diesen Fehler zum ersten Mal in VS Codes integriertem Terminal.

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

Dies ist hauptsächlich ein macOS-Problem und tritt nicht in externen Terminals auf. Die typischen Gründe dafür sind die folgenden:

  • npm wurde global mit einer anderen Instanz von node installiert, die sich irgendwo in Ihrem Pfad befindet (z. B. /usr/local/bin/npm).
  • Um die Entwicklungstools in den $PATH zu bekommen, startet VS Code beim Hochfahren eine Bash-Login-Shell. Das bedeutet, dass Ihr ~/.bash_profile bereits ausgeführt wurde und wenn ein integriertes Terminal gestartet wird, führt es **eine weitere** Login-Shell aus, wodurch der $PATH potenziell auf unerwartete Weise neu geordnet wird.

Um dieses Problem zu lösen, müssen Sie nachverfolgen, wo das alte npm installiert ist, und sowohl es als auch seine veralteten node_modules entfernen. Finden Sie das nvm-Initialisierungsskript und führen Sie which npm aus, bevor es ausgeführt wird, was den Pfad anzeigen sollte, wenn Sie ein neues Terminal starten.

Sobald Sie den Pfad zu npm haben, finden Sie die alten node_modules, indem Sie den Symlink auflösen, indem Sie einen Befehl wie diesen ausführen:

ls -la /usr/local/bin | grep "np[mx]"

Dies gibt Ihnen den aufgelösten Pfad am Ende.

... npm -> ../lib/node_modules/npm/bin/npm-cli.js
... npx -> ../lib/node_modules/npm/bin/npx-cli.js

Von dort aus sollten das Entfernen der Dateien und das Neustarten von VS Code das Problem beheben.

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

Warum gibt macOS einen Ding-Sound aus, wenn ich Terminal-Split-Bereiche vergrößere?

Die Tastenkombinationen ⌃⌘← und ⌃⌘→ sind die Standardeinstellungen zum Ändern der Größe einzelner Split-Bereiche im Terminal. Obwohl sie funktionieren, verursachen sie aufgrund eines Problems in Chromium auch einen System-"Ungültiger Schlüssel"-Sound. Die empfohlene Problemumgehung besteht darin, macOS mitzuteilen, diese Tastenkombinationen nicht auszuführen, indem Sie dies in Ihrem Terminal ausführen:

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

Ich habe Probleme mit der Terminaldarstellung. Was kann ich tun?

Standardmäßig rendert das integrierte Terminal auf den meisten Computern mit GPU-Beschleunigung. Typischerweise sind Rendering-Probleme auf ein Problem zurückzuführen, bei dem etwas in Ihrer Hardware/Ihrem Betriebssystem/Ihren Treibern nicht gut mit dem GPU-Renderer zusammenarbeitet. Das Erste, was Sie versuchen sollten, ist, die GPU-Beschleunigung zu deaktivieren und die Rendering-Geschwindigkeit gegen eine DOM-basierte Darstellung einzutauschen, die zuverlässiger ist.

{
  "terminal.integrated.gpuAcceleration": "off"
}

Weitere Informationen finden Sie im Abschnitt GPU-Beschleunigung.

Ich sehe 1~ oder [201~, wenn ich etwas einfüge.

Dies bedeutet normalerweise, dass das Programm/die Shell, die im Terminal ausgeführt wird, angefordert hat, den "Bracketed Paste Mode" zu aktivieren, aber etwas unterstützt ihn nicht richtig. Um dies zu umgehen, können Sie printf "\e[?2004l" ausführen, um ihn für diese Sitzung zu deaktivieren, oder die folgende Zeile zu Ihrer Datei ~/.inputrc hinzufügen:

set enable-bracketed-paste off

Alternativ kann der Bracketed Paste Mode gezwungen werden, die Anfrage der Shell zu ignorieren, indem er mit dieser Einstellung deaktiviert wird:

{
  "terminal.integrated.ignoreBracketedPasteMode": true
}

Ctrl+A, Ctrl+R Ausgabe ^A, ^R unter zsh

Dies kann passieren, wenn zsh im Vim-Modus statt im Emacs-Modus ist, aufgrund der Einstellung von $EDITOR oder $VISUAL auf vi/vim in Ihren Init-Skripten.

Um dies zu umgehen, haben Sie zwei Möglichkeiten:

  • Stellen Sie sicher, dass Sie $EDITOR nicht auf vi(m) setzen. Dies ist jedoch keine Option, wenn Sie möchten, dass Ihr Git-Editor funktioniert.
  • Fügen Sie bindkey -e zu Ihrem Init-Skript hinzu, um Emacs explizit einzustellen.

Wie kann ich Cmd+. so mappen, dass es wie das integrierte Terminal von macOS Ctrl+C entspricht?

Das Standardterminal von macOS verwendet Cmd+., um das Gleiche wie Ctrl+C zu tun. Um dieses Verhalten in VS Code zu erzielen, fügen Sie diese benutzerdefinierte Tastenkombination hinzu.

{
  "key": "cmd+.",
  "command": "workbench.action.terminal.sendSequence",
  "when": "terminalFocus",
  "args": { "text": "\u0003" }
}

Warum sind die Farben im Terminal nicht korrekt?

Eine unserer standardmäßig aktivierten Barrierefreiheitsfunktionen stellt sicher, dass für den Vordergrundtext ein Mindestkontrastverhältnis von mindestens 4,5 eingehalten wird. Diese Funktion stellt sicher, dass Text unabhängig von der verwendeten Shell und dem verwendeten Thema lesbar ist, was sonst nicht möglich wäre. Um diese Funktion zu deaktivieren, können Sie Folgendes einstellen:

"terminal.integrated.minimumContrastRatio": 1

Weitere Informationen finden Sie im Abschnitt zum Mindestkontrastverhältnis.

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