feat(ui): Cheat-Sheet-Fenster im Hilfe-Menue
Sechs Markdown-Sheets (git, Conventional Commits, Claude CLI, Claude-Config, dotnet CLI, PowerShell) als EmbeddedResource, gerendert im modelosen, per Topmost anpinnbaren CheatSheetsWindow. MarkdownView bekommt dafuer das Opt-in CommandRows: `befehl` - beschreibung wird zu Mono-Chip + Copy-Button, jede ##-Sektion landet in einem Expander. Enthaelt ausserdem: Mission Control wird beim Oeffnen aus dem Minimiert-Zustand geholt, nicht nur aktiviert.
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# Claude CLI
|
||||
|
||||
## Session starten
|
||||
- `claude` — interaktive Session im aktuellen Verzeichnis
|
||||
- `claude "<prompt>"` — Session mit erstem Prompt starten
|
||||
- `claude -c` — letzte Session in diesem Verzeichnis fortsetzen
|
||||
- `claude -r` — Session aus einer Auswahlliste fortsetzen
|
||||
- `claude -r <session-id>` — bestimmte Session fortsetzen
|
||||
- `claude --fork-session -r <id>` — Session unter neuer ID fortsetzen
|
||||
- `claude -n "<name>"` — Anzeigename für die Session setzen
|
||||
|
||||
## Modell und Aufwand
|
||||
- `claude --model sonnet` — Alias oder voller Name (`fable`, `opus`, `sonnet`, `claude-opus-5`)
|
||||
- `claude --effort high` — Denkaufwand: `low`, `medium`, `high`, `xhigh`, `max`
|
||||
- `claude --fallback-model sonnet` — Ausweichmodell bei Überlast (nur mit `-p`)
|
||||
|
||||
## Nicht interaktiv
|
||||
- `claude -p "<prompt>"` — antworten und beenden
|
||||
- `claude -p --output-format json` — ein JSON-Ergebnis
|
||||
- `claude -p --output-format stream-json` — Streaming-JSON für Skripte
|
||||
- `claude -p --include-partial-messages` — Teil-Chunks mitstreamen
|
||||
- `claude -p --max-budget-usd 5` — Kostendeckel für den Lauf
|
||||
- `claude -p --json-schema '<schema>'` — strukturierte Ausgabe validieren
|
||||
|
||||
## Berechtigungen und Tools
|
||||
- `claude --permission-mode <mode>` — `acceptEdits`, `auto`, `plan`, `manual`, `dontAsk`, `bypassPermissions`
|
||||
- `claude --allowed-tools "Bash(git *)" Edit` — nur diese Tools erlauben
|
||||
- `claude --disallowed-tools "Bash(rm *)"` — diese Tools sperren
|
||||
- `claude --tools "Bash,Edit,Read"` — Built-in-Toolset festlegen
|
||||
- `claude --add-dir <pfad>` — weiteres Arbeitsverzeichnis freigeben
|
||||
- `claude --restricted` — ohne befehlsausführende Tools und ohne lokale Settings
|
||||
|
||||
## Kontext und Konfiguration
|
||||
- `claude --append-system-prompt "<text>"` — Systemprompt ergänzen
|
||||
- `claude --system-prompt "<text>"` — Systemprompt ersetzen
|
||||
- `claude --settings <datei|json>` — zusätzliche Settings laden
|
||||
- `claude --agents '<json>'` — eigene Subagents für diese Session
|
||||
- `claude --mcp-config <datei>` — MCP-Server aus JSON laden
|
||||
- `claude --strict-mcp-config` — nur diese MCP-Server, alle anderen ignorieren
|
||||
- `claude --safe-mode` — alle Anpassungen aus, zum Fehlersuchen
|
||||
- `claude --bare` — Minimalmodus ohne Hooks, Plugins, CLAUDE.md
|
||||
|
||||
## Hintergrund-Sessions
|
||||
- `claude --bg "<prompt>"` — im Hintergrund starten, gibt die Kurz-ID aus
|
||||
- `claude agents` — laufende Hintergrund-Sessions auflisten
|
||||
- `claude attach <id>` — Hintergrund-Session in dieses Terminal holen
|
||||
- `claude logs <id>` — letzte Ausgabe einer Hintergrund-Session
|
||||
- `claude stop <id>` — Session stoppen, Verlauf bleibt
|
||||
- `claude rm <id>` — Session löschen
|
||||
|
||||
## Worktree
|
||||
- `claude -w` — neuen Git-Worktree für diese Session anlegen
|
||||
- `claude -w <name>` — Worktree mit eigenem Namen
|
||||
|
||||
## Verwaltung
|
||||
- `claude doctor` — Installation prüfen
|
||||
- `claude update` — auf neue Version aktualisieren
|
||||
- `claude mcp` — MCP-Server konfigurieren
|
||||
- `claude plugin` — Plugins verwalten
|
||||
- `claude auth` — Authentifizierung verwalten
|
||||
- `claude setup-token` — Langzeit-Token einrichten
|
||||
- `claude -d api,hooks` — Debugmodus mit Kategoriefilter
|
||||
- `claude -v` — Version ausgeben
|
||||
@@ -0,0 +1,48 @@
|
||||
# Claude Konfiguration
|
||||
|
||||
## Dateien und Orte
|
||||
- `~/.claude/settings.json` — globale Settings für alle Projekte
|
||||
- `.claude/settings.json` — Projekt-Settings, eingecheckt fürs Team
|
||||
- `.claude/settings.local.json` — persönliche Projekt-Settings, nicht eingecheckt
|
||||
- `Rangfolge: managed > local > projekt > global` — spezifischer gewinnt
|
||||
- `/config` — Settings interaktiv in der Session ansehen und ändern
|
||||
- `claude doctor` — Konfiguration auf Fehler prüfen
|
||||
|
||||
## CLAUDE.md
|
||||
- `~/.claude/CLAUDE.md` — globale Anweisungen für alle Projekte
|
||||
- `CLAUDE.md` — im Projekt-Root, wird bei Start automatisch geladen
|
||||
- `<unterordner>/CLAUDE.md` — wird geladen, sobald dort gearbeitet wird
|
||||
- `@pfad/zur/datei.md` — Import einer weiteren Datei in eine CLAUDE.md
|
||||
- `# <notiz>` — in der Session: Notiz in die CLAUDE.md übernehmen
|
||||
- `/init` — CLAUDE.md für ein Projekt generieren lassen
|
||||
|
||||
## Berechtigungen
|
||||
- `"permissions": { "allow": [...], "deny": [...], "ask": [...] }` — Struktur in settings.json
|
||||
- `Bash(git *)` — Bash-Befehle per Muster erlauben oder sperren
|
||||
- `Edit(src/**)` — Dateizugriff per Glob einschränken
|
||||
- `WebFetch(domain:example.com)` — Webzugriff auf eine Domain begrenzen
|
||||
- `mcp__<server>__<tool>` — Regel für ein einzelnes MCP-Tool
|
||||
- `/permissions` — Regeln in der Session ansehen und ergänzen
|
||||
|
||||
## MCP-Server
|
||||
- `claude mcp add <name> -- <befehl>` — lokalen stdio-Server anlegen
|
||||
- `claude mcp add --transport http <name> <url>` — HTTP-Server anlegen
|
||||
- `claude mcp add --scope project <name> ...` — in `.mcp.json` fürs Team
|
||||
- `claude mcp list` — konfigurierte Server anzeigen
|
||||
- `claude mcp remove <name>` — Server entfernen
|
||||
- `/mcp` — Serverstatus in der Session, OAuth-Login
|
||||
|
||||
## Hooks
|
||||
- `"hooks": { "PreToolUse": [...] }` — Shell-Befehle an Lifecycle-Events hängen
|
||||
- `PreToolUse / PostToolUse` — vor und nach jedem Tool-Aufruf
|
||||
- `UserPromptSubmit` — beim Absenden eines Prompts
|
||||
- `SessionStart / Stop` — bei Sessionbeginn und -ende
|
||||
- `Exit-Code 2` — blockiert die Aktion, stderr geht an Claude
|
||||
- `/hooks` — Hooks interaktiv verwalten
|
||||
|
||||
## Erweiterungen
|
||||
- `.claude/commands/<name>.md` — eigener Slash-Command `/name`
|
||||
- `.claude/skills/<name>/SKILL.md` — Skill, wird bei passender Aufgabe geladen
|
||||
- `.claude/agents/<name>.md` — eigener Subagent-Typ
|
||||
- `~/.claude/...` — dieselben Ordner global statt pro Projekt
|
||||
- `claude plugin` — Plugins installieren und verwalten
|
||||
@@ -0,0 +1,34 @@
|
||||
# Conventional Commits
|
||||
|
||||
## Format
|
||||
- `<type>(<scope>): <beschreibung>` — Grundform, Scope optional
|
||||
- `feat(auth): add login endpoint` — Beispiel mit Scope
|
||||
- `fix: prevent crash on empty input` — Beispiel ohne Scope
|
||||
- `imperativ, klein, kein Punkt am Ende` — Stil der Beschreibung
|
||||
|
||||
## Types
|
||||
- `feat` — neues Feature
|
||||
- `fix` — Bugfix
|
||||
- `refactor` — Umbau ohne Verhaltensänderung
|
||||
- `perf` — Performance-Verbesserung
|
||||
- `docs` — nur Dokumentation
|
||||
- `test` — Tests hinzufügen oder korrigieren
|
||||
- `style` — Formatierung, kein Code-Effekt
|
||||
- `build` — Build-System oder Dependencies
|
||||
- `ci` — CI-Konfiguration
|
||||
- `chore` — Sonstiges ohne src- oder Test-Änderung
|
||||
|
||||
## Breaking Changes
|
||||
- `feat(api)!: remove legacy endpoint` — `!` markiert einen Breaking Change
|
||||
- `BREAKING CHANGE: <erklärung>` — alternativ als Footer im Commit-Body
|
||||
|
||||
## Body und Footer
|
||||
- `Leerzeile nach der Betreffzeile` — dann optionaler Body mit dem Warum
|
||||
- `Refs: #123` — Footer für Ticket-Referenzen
|
||||
- `Reverts: <hash>` — Footer für Reverts
|
||||
|
||||
## Warum das Ganze
|
||||
- `feat` — löst ein Minor-Release aus (SemVer)
|
||||
- `fix` — löst ein Patch-Release aus (SemVer)
|
||||
- `!` oder `BREAKING CHANGE` — löst ein Major-Release aus
|
||||
- `git log --oneline --grep "^feat"` — Verlauf wird filterbar
|
||||
@@ -0,0 +1,49 @@
|
||||
# dotnet CLI
|
||||
|
||||
## Projekt anlegen
|
||||
- `dotnet new list` — verfügbare Vorlagen anzeigen
|
||||
- `dotnet new console -n <name>` — Projekt aus Vorlage anlegen
|
||||
- `dotnet new sln` — Solution anlegen
|
||||
- `dotnet sln add <projekt>` — Projekt in die Solution aufnehmen
|
||||
|
||||
## Bauen
|
||||
- `dotnet restore` — NuGet-Pakete auflösen
|
||||
- `dotnet build <projekt> -c Release` — Release bauen
|
||||
- `dotnet build --no-restore` — ohne Restore, wenn Pakete aktuell sind
|
||||
- `dotnet build -v minimal` — knappere Ausgabe
|
||||
- `dotnet clean -c Release` — Build-Ausgabe löschen
|
||||
|
||||
## Laufen lassen
|
||||
- `dotnet run --project <projekt> -c Release` — starten
|
||||
- `dotnet run --project <projekt> -- <args>` — Argumente an die App
|
||||
- `dotnet watch --project <projekt> run` — bei Dateiänderung neu starten
|
||||
|
||||
## Testen
|
||||
- `dotnet test <projekt> -c Release --no-build` — Tests ohne Neubau
|
||||
- `dotnet test --filter "FullyQualifiedName~<name>"` — nur passende Tests
|
||||
- `dotnet test --filter "FullyQualifiedName!~<name>"` — Tests ausschließen
|
||||
- `dotnet test --logger "console;verbosity=detailed"` — Details pro Test
|
||||
- `dotnet test --blame-hang-timeout 60s` — hängende Tests aufspüren
|
||||
|
||||
## Pakete
|
||||
- `dotnet add <projekt> package <name>` — Paket hinzufügen
|
||||
- `dotnet add <projekt> package <name> --version 1.2.3` — feste Version
|
||||
- `dotnet remove <projekt> package <name>` — Paket entfernen
|
||||
- `dotnet list <projekt> package --outdated` — veraltete Pakete
|
||||
- `dotnet nuget locals all --clear` — NuGet-Caches leeren
|
||||
|
||||
## EF Core Migrationen
|
||||
- `dotnet ef migrations add <name> -p <daten-projekt>` — Migration anlegen
|
||||
- `dotnet ef migrations list -p <daten-projekt>` — Migrationen anzeigen
|
||||
- `dotnet ef migrations remove -p <daten-projekt>` — letzte Migration zurücknehmen
|
||||
- `dotnet ef database update -p <daten-projekt>` — Schema anwenden
|
||||
|
||||
## Veröffentlichen
|
||||
- `dotnet publish <projekt> -c Release -r win-x64 --self-contained` — eigenständiges Build
|
||||
- `dotnet publish <projekt> -c Release -p:PublishSingleFile=true` — eine Exe
|
||||
|
||||
## Diagnose
|
||||
- `dotnet --info` — SDKs, Runtimes, RID
|
||||
- `dotnet --list-sdks` — installierte SDKs
|
||||
- `dotnet format <projekt>` — Formatierung anwenden
|
||||
- `dotnet build -p:TreatWarningsAsErrors=true` — Warnungen als Fehler
|
||||
@@ -0,0 +1,80 @@
|
||||
# Git
|
||||
|
||||
## Start
|
||||
- `git clone <url>` — Repository klonen
|
||||
- `git init` — neues Repository anlegen
|
||||
- `git remote add origin <url>` — Remote verbinden
|
||||
|
||||
## Stand ansehen
|
||||
- `git status -sb` — Kurzstatus mit Branch-Zeile
|
||||
- `git diff` — nicht gestagete Änderungen
|
||||
- `git diff --staged` — gestagete Änderungen
|
||||
- `git diff main...HEAD` — alles, was dieser Branch gegenüber main bringt
|
||||
- `git diff --stat` — nur Datei- und Zeilenzähler
|
||||
- `git log --oneline --graph --decorate -20` — kompakter Verlauf
|
||||
- `git log -p -- <pfad>` — Verlauf einer Datei mit Diffs
|
||||
- `git show <commit>` — ein Commit im Detail
|
||||
|
||||
## Branch
|
||||
- `git switch <branch>` — Branch wechseln
|
||||
- `git switch -c <name>` — Branch anlegen und wechseln
|
||||
- `git switch -` — zurück zum vorherigen Branch
|
||||
- `git branch -vv` — Branches mit Upstream und letztem Commit
|
||||
- `git branch -d <name>` — gemergten Branch löschen (`-D` erzwingt)
|
||||
|
||||
## Committen
|
||||
- `git add <pfad>` — Änderungen stagen
|
||||
- `git add -p` — Änderungen hunk-weise stagen
|
||||
- `git commit -m "<text>"` — gestagete Änderungen committen
|
||||
- `git commit -- <pfad>` — nur diese Pfade committen
|
||||
- `git commit --amend --no-edit` — letzten Commit um die Staging-Area erweitern
|
||||
- `git commit --fixup <commit>` — Fixup für späteres Autosquash
|
||||
|
||||
## Remote
|
||||
- `git fetch --all --prune` — alles holen, gelöschte Remote-Branches aufräumen
|
||||
- `git pull --rebase` — holen und eigene Commits obendrauf setzen
|
||||
- `git push -u origin <name>` — pushen und Upstream setzen
|
||||
- `git push --force-with-lease` — sicheres Force-Push, nie plain `--force`
|
||||
|
||||
## Rebase und Merge
|
||||
- `git rebase main` — Branch auf aktuellen main setzen
|
||||
- `git rebase -i --autosquash main` — interaktiv aufräumen
|
||||
- `git rebase --continue` — nach gelöstem Konflikt weiter
|
||||
- `git rebase --abort` — Rebase abbrechen, Ausgangszustand zurück
|
||||
- `git merge --no-ff <branch>` — Merge-Commit erzwingen
|
||||
- `git merge --abort` — laufenden Merge abbrechen
|
||||
- `git cherry-pick <commit>` — einzelnen Commit übernehmen
|
||||
|
||||
## Konflikte
|
||||
- `git diff --name-only --diff-filter=U` — konfliktbehaftete Dateien
|
||||
- `git checkout --ours <pfad>` — eigene Seite übernehmen
|
||||
- `git checkout --theirs <pfad>` — fremde Seite übernehmen
|
||||
- `git mergetool` — konfiguriertes Merge-Tool starten
|
||||
|
||||
## Rückgängig
|
||||
- `git restore <pfad>` — Datei auf HEAD zurücksetzen, Änderungen weg
|
||||
- `git restore --staged <pfad>` — unstagen, Änderungen behalten
|
||||
- `git reset --soft HEAD~1` — letzten Commit auflösen, Änderungen gestaged behalten
|
||||
- `git reset --hard <commit>` — alles verwerfen, nicht rückholbar
|
||||
- `git revert <commit>` — Commit durch Gegen-Commit aufheben
|
||||
- `git reflog` — Referenzverlauf, um verlorene Commits wiederzufinden
|
||||
|
||||
## Stash
|
||||
- `git stash push -m "<text>"` — Änderungen wegpacken
|
||||
- `git stash push -u` — inklusive unversionierter Dateien
|
||||
- `git stash list` — Stashes anzeigen
|
||||
- `git stash pop` — letzten Stash zurückholen und entfernen
|
||||
- `git stash apply <stash>` — anwenden, aber behalten
|
||||
|
||||
## Worktrees
|
||||
- `git worktree list` — alle Worktrees
|
||||
- `git worktree add <pfad> <branch>` — Worktree für bestehenden Branch
|
||||
- `git worktree add -b <name> <pfad>` — Worktree mit neuem Branch
|
||||
- `git worktree remove <pfad>` — Worktree entfernen
|
||||
- `git worktree prune` — verwaiste Einträge aufräumen
|
||||
|
||||
## Suchen
|
||||
- `git grep -n "<text>"` — im Arbeitsbaum suchen
|
||||
- `git log -S"<text>"` — Commits, die den Text einfügen oder entfernen
|
||||
- `git blame -L 40,60 <pfad>` — Zeilenbereich zuordnen
|
||||
- `git bisect start` — binäre Suche nach dem Fehler-Commit
|
||||
@@ -0,0 +1,52 @@
|
||||
# PowerShell
|
||||
|
||||
## Navigieren und Dateien
|
||||
- `Get-ChildItem` — Verzeichnis auflisten (`ls`, `-Force` zeigt versteckte)
|
||||
- `Set-Location <pfad>` — Verzeichnis wechseln (`cd`)
|
||||
- `New-Item -ItemType Directory <pfad>` — Ordner anlegen (`mkdir`)
|
||||
- `Copy-Item <quelle> <ziel> -Recurse` — kopieren
|
||||
- `Move-Item <quelle> <ziel>` — verschieben oder umbenennen
|
||||
- `Remove-Item <pfad> -Recurse -Force` — löschen, endgültig
|
||||
- `Test-Path <pfad>` — existiert die Datei oder der Ordner?
|
||||
|
||||
## Ansehen und Suchen
|
||||
- `Get-Content <datei> -Tail 50` — letzte Zeilen (`-Wait` folgt wie tail -f)
|
||||
- `Select-String "<text>" <dateien> -List` — in Dateien suchen (grep)
|
||||
- `Get-ChildItem -Recurse -Filter *.log` — Dateien rekursiv finden
|
||||
- `<befehl> | Select-Object -First 10` — Ausgabe begrenzen (head)
|
||||
- `<befehl> | Where-Object Name -like "*test*"` — Ausgabe filtern
|
||||
- `<befehl> | Measure-Object` — zählen (wc)
|
||||
- `<befehl> | Out-GridView` — Ausgabe in sortierbarem Fenster
|
||||
|
||||
## Prozesse und Dienste
|
||||
- `Get-Process | Sort-Object CPU -Descending | Select-Object -First 10` — Top-Prozesse
|
||||
- `Stop-Process -Name <name>` — Prozess beenden (`-Id <pid>` per PID)
|
||||
- `Get-Service <name>` — Dienststatus
|
||||
- `Restart-Service <name>` — Dienst neu starten (Admin nötig)
|
||||
|
||||
## Netzwerk
|
||||
- `Test-NetConnection <host> -Port 443` — Erreichbarkeit und Port testen
|
||||
- `Get-NetTCPConnection -LocalPort <port>` — wer belegt den Port (OwningProcess = PID)
|
||||
- `Invoke-RestMethod <url>` — HTTP-Aufruf, JSON kommt als Objekt zurück
|
||||
- `Resolve-DnsName <host>` — DNS-Auflösung prüfen
|
||||
|
||||
## Umgebung
|
||||
- `$env:PATH -split ";"` — PATH lesbar ausgeben
|
||||
- `$env:NAME = "wert"` — Variable für diese Session setzen
|
||||
- `[Environment]::SetEnvironmentVariable("NAME", "wert", "User")` — dauerhaft setzen
|
||||
- `Get-Command <name>` — wo liegt ein Befehl (which)
|
||||
- `Get-History` — bisherige Befehle dieser Session
|
||||
|
||||
## Windows-Spezifisches
|
||||
- `explorer .` — aktuellen Ordner im Explorer öffnen
|
||||
- `Start-Process <datei>` — mit Standardprogramm öffnen
|
||||
- `Start-Process pwsh -Verb RunAs` — Terminal als Administrator
|
||||
- `Set-ExecutionPolicy -Scope CurrentUser RemoteSigned` — lokale Skripte erlauben
|
||||
- `winget search <name>` — Software im Paketmanager suchen
|
||||
- `winget install <id>` — installieren
|
||||
- `winget upgrade --all` — alles aktualisieren
|
||||
|
||||
## Hilfe
|
||||
- `Get-Help <befehl> -Examples` — Beispiele zu einem Cmdlet
|
||||
- `Get-Member` — Eigenschaften eines Pipeline-Objekts anzeigen
|
||||
- `Get-Alias <kurzform>` — welches Cmdlet steckt hinter einem Alias
|
||||
Reference in New Issue
Block a user