Leitfaden zur Fehlerbehebung der Terminal-Integration
Dieser Leitfaden hilft Ihnen bei der Behebung von Terminal-Integrationsproblemen in Careti. Die Terminal-Integration ist entscheidend, damit Careti Befehle ausführen und deren Ausgabe lesen kann, was es ermöglicht, Fehler, Testergebnisse und Befehlsantworten zu verstehen.
Tip
Wenn Sie Terminal-Probleme haben, versuchen Sie, in den Careti-Einstellungen unter „Terminal Settings“ zu einer einfacheren Shell wie bash zu wechseln.
Dies löst die meisten Terminal-Integrationsprobleme.
Schnell-Diagnose-Ablaufdiagramm
Folgen Sie diesem Ablaufdiagramm, um Ihr Problem schnell zu identifizieren:
Häufige Probleme & Schnelle Lösungen
1. Shell-Integration nicht verfügbar
Symptome:
- Meldung: „Shell Integration Unavailable“
- Befehle werden ausgeführt, aber Careti kann die Ausgabe nicht lesen
- Das Terminal funktioniert manuell einwandfrei, aber nicht mit Careti
Schnelle Lösungen:
macOS
-
Zu bash wechseln
- Öffnen Sie die Careti Settings
- Klicken Sie mit der linken Maustaste auf den Tab „Terminal Settings“
- Navigieren Sie zu „Default Terminal Profile“ und wählen Sie „bash“ aus dem Drop-down-Menü
-
Oh-My-Zsh vorübergehend deaktivieren:
- Wenn Sie zsh verwenden, geben Sie
mv ~/.zshrc ~/.zshrc.backupim Terminal ein - Starten Sie VS Code neu
- Wenn Sie zsh verwenden, geben Sie
-
Environment setzen: 1.a Für Zsh-Benutzer: Verwenden Sie einen der folgenden Zsh-Befehle, um Ihr Shell-Profil zu bearbeiten:
nano ~/.zshrcvim ~/.zshrccode ~/.zshrc
1.b Für Bash-Benutzer:
- nano ~/.bash_profile
- Fügen Sie folgendes zu Ihrer Shell-Konfiguration hinzu:
export TERM=xterm-256color - Speichern Sie Ihre Konfiguration
Windows
-
PowerShell 7 verwenden
- Aus dem Microsoft Store installieren
- Öffnen Sie die Careti Settings
- Klicken Sie mit der linken Maustaste auf den Tab „Terminal Settings“
- Navigieren Sie zu „Default Terminal Profile“ und wählen Sie „PowerShell 7“ aus dem Drop-down-Menü
-
Windows ConPTY deaktivieren
- Navigieren Sie zu Ihren VS Code Settings
- Geben Sie „Integrated: Windows Enable Conpty“ in die Suchleiste der Settings ein
- Deaktivieren Sie die Option
-
Eingabeaufforderung (Command Prompt) versuchen
- Öffnen Sie die Careti Settings
- Klicken Sie mit der linken Maustaste auf den Tab „Terminal Settings“
- Navigieren Sie zu „Default Terminal Profile“ und wählen Sie „Command Prompt“ aus dem Drop-down-Menü
Linux
-
bash verwenden
- Öffnen Sie die Careti Settings
- Klicken Sie mit der linken Maustaste auf den Tab „Terminal Settings“
- Navigieren Sie zu „Default Terminal Profile“ und wählen Sie „bash“ aus dem Drop-down-Menü
-
Berechtigungen prüfen
- Stellen Sie sicher, dass VS Code über Terminal-Zugriffsberechtigungen verfügt
-
Benutzerdefinierte Prompts deaktivieren
- Kommentieren Sie Prompt-Anpassungen in der
.bashrcaus
- Kommentieren Sie Prompt-Anpassungen in der
2. Befehlsausgabe nicht sichtbar
Symptome:
- Careti meldet im Chat: „[Command is running but producing no output]“
- Befehle werden abgeschlossen, aber Careti sieht die Ergebnisse nicht
- Befehle funktionieren manchmal, aber nicht konsistent
Lösungen:
-
Shell-Integration-Timeout erhöhen
- Klicken Sie innerhalb von Careti auf die Schaltfläche Settings in der oberen rechten Ecke des Chat-Fensters
- Klicken Sie im Settings-Fenster in der linken Spalte auf den Tab „Terminal Settings“
- Navigieren Sie zu „Shell integration timeout (seconds)“ und geben Sie „10“ in das Textfeld ein
-
Terminal-Wiederverwendung deaktivieren
- Klicken Sie innerhalb von Careti auf die Schaltfläche Settings in der oberen rechten Ecke des Chat-Fensters
- Klicken Sie im Settings-Fenster in der linken Spalte auf den Tab „Terminal Settings“
- Suchen Sie nach „Enable aggressive terminal reuse“ und deaktivieren Sie diese Option
-
Auf störende Extensions prüfen
- Deaktivieren Sie andere terminalbezogene VS Code Extensions
3. Probleme bei der Zeichenfilterung
Symptome:
- Kommas fehlen in der Ausgabe (JSON erscheint beschädigt)
- Sonderzeichen werden aus der Terminal-Ausgabe entfernt
- Syntaxfehler, die bei manueller Ausführung nicht auftreten
Lösung: Dies ist ein bekannter Fehler bei der Ausgabeverarbeitung. Workarounds:
- Empfehlen Sie der AI, stattdessen die Dateiausgabe zu verwenden
- Weisen Sie Careti im Chat oder über Careti-Regeln an,
command > output.txtzu verwenden, bevor die Datei(en) gelesen werden
- Weisen Sie Careti im Chat oder über Careti-Regeln an,
Tip
Diese Kategorie von Problemen ist in den neuesten Careti-Versionen nur teilweise gelöst. Wenn Sie also weiterhin damit konfrontiert sind, erstellen Sie ein GitHub-Issue, falls es sich um ein dauerhaftes Problem handelt.
4. Langlaufende Befehle & Fortschrittsbalken
Symptome:
- Docker-Builds werden in Careti nie abgeschlossen
- Fortschrittsbalken verbrauchen tausende Tokens
- Die Careti-Schaltfläche „Proceed while running“ funktioniert im Chat nicht ordnungsgemäß
Tip
Diese Kategorie von Problemen wurde in den neuesten Careti-Versionen gelöst. Sollten Sie dennoch auf Probleme stoßen, erstellen Sie bitte ein GitHub-Issue dazu.
Terminal-Einstellungen erklärt
Greifen Sie in Careti darauf zu, indem Sie auf das Zahnrad-Symbol klicken und zum Bereich „Terminal Settings“ navigieren:
Default Terminal Profile
- Funktion: Wählt aus, welche Shell Careti für Befehle verwendet
- Wann zu ändern: Bei Shell-Integrationsproblemen mit Ihrer Standard-Shell
- Empfohlen: - macOS: bash (falls zsh Probleme macht) - Windows: PowerShell 7 - Linux: bash
Shell Integration Timeout
- Funktion: Wie lange Careti wartet, bis das Terminal bereit ist
- Standard: 4 Sekunden
- Wann zu erhöhen:
- Langsamer Shell-Start (aufgrund umfangreicher .zshrc/.bashrc)
- WSL-Umgebungen
- SSH-Verbindungen
- Empfohlen: - Starten Sie bei Problemen mit 10 Sekunden
Enable Aggressive Terminal Reuse
- Funktion: Verwendet bestehende Terminals wieder, auch wenn sie sich nicht im korrekten Verzeichnis befinden
- Wann zu deaktivieren:
- Befehle werden im falschen Verzeichnis ausgeführt
- Probleme mit Virtual Environments
- Korruption des Terminal-Status
- Kompromiss: - Deaktivierung erzeugt mehr Terminals, gewährleistet aber einen sauberen Status
Terminal Output Line Limit
- Funktion: Begrenzt, wie viele Zeilen Careti aus der Terminal-Ausgabe liest
- Standard: 500 Zeilen
- Wann anzupassen:
- Erhöhen bei ausführlichen Build-Ausgaben
- Verringern bei Erreichen von Token-Limits
- Auf 100 setzen für Befehle mit Fortschrittsbalken
Plattformspezifische Lösungen
macOS Probleme
Oh-My-Zsh Konflikte
Oh-My-Zsh stört oft die Shell-Integration. Lösungen:
- Erstellen Sie eine minimale
.zshrcfür VS Code:# ~/.zshrc-vscode
export TERM=xterm-256color
export PAGER=cat
# Minimales PATH- und Environment-Setup - Konfigurieren Sie VS Code so, dass diese verwendet wird:
{
"terminal.integrated.env.osx": {
"ZDOTDIR": "~/.zshrc-vscode"
}
}
macOS 15+ Probleme
Neuere macOS-Versionen haben strengere Terminal-Berechtigungen:
- System Preferences → Privacy & Security → Developer Tools
- Visual Studio Code hinzufügen
- VS Code komplett neu starten
Windows Probleme
Wenn Sie Windows verwenden und nach den vorherigen Schritten immer noch Probleme mit der Shell-Integration haben, wird empfohlen, Git Bash (oder PowerShell) zu verwenden.
Git Bash
Git Bash ist ein Terminal-Emulator, der eine Unix-ähnliche Kommandozeilenerfahrung unter Windows bietet. Um Git Bash zu verwenden:
- Laden Sie den Git for Windows Installer unter https://git-scm.com/downloads/win herunter und führen Sie ihn aus
- Beenden Sie VS Code und öffnen Sie es erneut
- Drücken Sie
Ctrl + Shift + P, um die Command Palette zu öffnen - Geben Sie „Terminal: Select Default Profile“ ein und wählen Sie es aus
- Wählen Sie „Git Bash“
PowerShell
Wenn Sie weiterhin PowerShell verwenden möchten, stellen Sie sicher, dass Sie eine aktuelle Version verwenden (mindestens v7+).
- Überprüfen Sie Ihre aktuelle PowerShell-Version mit:
$PSVersionTable.PSVersion - Wenn Ihre Version unter 7 liegt, aktualisieren Sie PowerShell.
Möglicherweise müssen Sie auch Ihre PowerShell-Ausführungsrichtlinie anpassen. Standardmäßig schränkt PowerShell die Skriptausführung aus Sicherheitsgründen ein.
PowerShell-Ausführungsrichtlinien verstehen
PowerShell verwendet Ausführungsrichtlinien, um zu bestimmen, welche Skripte auf Ihrem System ausgeführt werden dürfen. Hier sind die gängigsten Richtlinien:
Restricted: Es können keine PowerShell-Skripte ausgeführt werden. Dies ist die Standardeinstellung.AllSigned: Alle Skripte, auch lokale, müssen von einem vertrauenswürdigen Herausgeber signiert sein.RemoteSigned: Lokal erstellte Skripte können ausgeführt werden, aber aus dem Internet heruntergeladene Skripte müssen signiert sein.Unrestricted: Keine Einschränkungen. Jedes Skript kann ausgeführt werden, wobei Sie vor dem Ausführen von aus dem Internet heruntergeladenen Skripten gewarnt werden.
Für die Entwicklungsarbeit in VS Code wird im Allgemeinen die Richtlinie RemoteSigned empfohlen. Sie ermöglicht die Ausführung lokal erstellter Skripte ohne Einschränkungen, während die Sicherheit für heruntergeladene Skripte gewahrt bleibt. Um mehr über PowerShell-Ausführungsrichtlinien und die Sicherheitsfolgen einer Änderung zu erfahren, besuchen Sie die Microsoft-Dokumentation: About Execution Policies.
Schritte zum Ändern der Ausführungsrichtlinie
-
Öffnen Sie PowerShell als Administrator: Drücken Sie
Win + Xund wählen Sie „Windows PowerShell (Administrator)“ oder „Windows Terminal (Administrator)“. -
Überprüfen Sie die aktuelle Ausführungsrichtlinie mit diesem Befehl:
Get-ExecutionPolicy- Wenn die Ausgabe bereits
RemoteSigned,UnrestrictedoderBypasslautet, müssen Sie die Richtlinie wahrscheinlich nicht ändern. Diese Richtlinien sollten die Shell-Integration ermöglichen. - Wenn die Ausgabe
RestrictedoderAllSignedlautet, müssen Sie Ihre Richtlinie möglicherweise ändern, um die Shell-Integration zu aktivieren.
- Wenn die Ausgabe bereits
-
Ändern Sie die Ausführungsrichtlinie durch Ausführen des folgenden Befehls:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser- Dies setzt die Richtlinie auf
RemoteSignednur für den aktuellen Benutzer, was sicherer ist als eine systemweite Änderung.
- Dies setzt die Richtlinie auf
-
Bestätigen Sie die Änderung, indem Sie
Yeingeben und Enter drücken, wenn Sie dazu aufgefordert werden. -
Überprüfen Sie die Richtlinienänderung, indem Sie erneut
Get-ExecutionPolicyausführen. -
Starten Sie VS Code neu und versuchen Sie die Shell-Integration erneut.
WSL Integration
Bei WSL-Problemen:
- Verwenden Sie die WSL Extension für VS Code
- Ordner in WSL öffnen:
code .vom WSL-Terminal aus - Wählen Sie „WSL Bash“ als Terminal-Profil in Careti
Pfad-Probleme
Windows-Pfadprobleme:
- Verwenden Sie Vorwärts-Slashes in Careti:
C:/Users/... - Setzen Sie Pfade mit Leerzeichen in Anführungszeichen:
"C:/Program Files/..." - Vermeiden Sie
~- verwenden Sie vollständige Pfade
Linux/SSH/Container Probleme
SSH Verbindungen
Für Remote-Entwicklung:
- Installieren Sie Careti auf der Remote-Maschine, nicht lokal
- Verwenden Sie das integrierte Terminal der SSH Extension
- Erhöhen Sie das Timeout auf 15+ Sekunden
Docker Container
Bei der Entwicklung in Containern:
- Installieren Sie Careti im Container
- Verwenden Sie die Dev Containers Extension
- Stellen Sie sicher, dass Shell-Integrationsskripte verfügbar sind
Shell-spezifische Fixes
Zsh
# Zu ~/.zshrc hinzufügen
export TERM=xterm-256color
export PAGER=cat
# Dekorative Prompts für VS Code deaktivieren
if [[ "$TERM_PROGRAM" == "vscode" ]]; then
PS1="%n@%m %1~ %# "
fi
Bash
# Zu ~/.bashrc hinzufügen
export TERM=xterm-256color
export PAGER=cat
# Einfacher Prompt für VS Code
if [[ "$TERM_PROGRAM" == "vscode" ]]; then
PS1='\u@\h:\w\$ '
fi
Fish
# Zu ~/.config/fish/config.fish hinzufügen
set -x TERM xterm-256color
set -x PAGER cat
# Dekorative Funktionen in VS Code deaktivieren
if test "$TERM_PROGRAM" = "vscode"
function fish_prompt
echo (whoami)'@'(hostname)':'(pwd)'> '
end
end
PowerShell
# Zu $PROFILE hinzufügen
$env:PAGER = "cat"
# Fortschrittsbalken deaktivieren
$ProgressPreference = 'SilentlyContinue'
Fortgeschrittene Fehlerbehebung
Debug Modus
Aktivieren Sie das Terminal-Debugging, um zu sehen, was im Hintergrund passiert:
- Öffnen Sie die VS Code Command Palette (Cmd/Ctrl+Shift+P)
- Führen Sie aus: „Developer: Set Log Level...“
- Wählen Sie „Trace“
- Prüfen Sie das Output-Panel → „Careti“ auf Terminal-Logs
Manueller Shell-Integrationstest
Testen Sie, ob die Shell-Integration überhaupt funktioniert:
# Im VS Code Terminal
echo $TERM_PROGRAM # Sollte "vscode" anzeigen
echo $VSCODE_SHELL_INTEGRATION # Sollte "1" sein
FAQ
Warum erstellt Careti so viele Terminals?
Wenn die Shell-Integration fehlschlägt, kann Careti Terminals nicht sicher wiederverwenden (da sie möglicherweise noch langlaufende Prozesse ausführen). Aktivieren Sie die Shell-Integration oder passen Sie die Einstellung für die Terminal-Wiederverwendung an.
Kann ich meine benutzerdefinierte Shell verwenden (nushell, xonsh, etc.)?
Careti unterstützt offiziell bash, zsh, fish und PowerShell. Benutzerdefinierte Shells funktionieren möglicherweise, werden aber nicht garantiert. Verwenden Sie bash als Fallback.
Warum funktionieren einige Befehle, andere aber nicht?
Befehle, die interaktive Funktionen nutzen (Pager, Fortschrittsbalken, Curses), schlagen oft fehl. Setzen Sie PAGER=cat und verwenden Sie nicht-interaktive Flags.
Woher weiß ich, ob die Shell-Integration funktioniert?
Eine funktionierende Integration zeigt die Befehlsausgabe im Chat von Careti an. Eine fehlgeschlagene Integration zeigt „Shell Integration Unavailable“ oder „[Command is running but producing no output]“.
Immer noch Probleme?
Wenn Sie alles versucht haben:
-
Debug-Infos sammeln:
echo "Shell: $SHELL"
echo "Term: $TERM"
echo "VSCode: $TERM_PROGRAM"
which bash
bash --version -
Problem melden:
- Verwenden Sie
/reportbugin den Careti GitHub Issues - Fügen Sie Ihre Debug-Infos bei
- Erwähnen Sie, welche Lösungen Sie bereits ausprobiert haben
- Verwenden Sie
Tip
Hinweis: Die meisten Terminal-Probleme lassen sich durch den Wechsel zu bash und das Erhöhen des Timeouts lösen. Beginnen Sie dort, bevor Sie komplexe Lösungen versuchen.