PowerShell 7 + oh-my-posh + Module — eine Stunde pro Woche in Windows Terminal sparen
PowerShell 7-Alltagsumgebung in Windows Terminal — pwsh-Installation, Profil, oh-my-posh-Theme, sechs essenzielle Module.
Windows' eingebaute PowerShell 5.1 ist nicht plattformübergreifend und leidet unter Modulkompatibilitätsproblemen. PowerShell 7 (pwsh) ist der Standard. Kombiniert mit oh-my-posh und sechs Modulen wird macOS's zsh + starship erreicht oder übertroffen.
Dieser Leitfaden ist ein 30-minütiges PowerShell-Setup, nachdem die Windows-Ersteinrichtung winget installiert hat.
TL;DR
- pwsh 7 installieren —
winget install Microsoft.PowerShell - pwsh als Standard Windows Terminal-Shell setzen
- Profil aktivieren —
$PROFILEbearbeiten - oh-my-posh — Prompt (Git-Status / Ausführungszeit / Exit-Code)
- Sechs Module — Terminal-Icons / posh-git / PSReadLine / z / PSFzf / CompletionPredictor
Voraussetzungen
- Windows 10/11 mit winget (Windows-Ersteinrichtung)
- Windows Terminal installiert (winget oder MS Store)
- Ein Nerd Font (für oh-my-posh-Glyphen)
1. PowerShell 7 installieren
winget install --id Microsoft.PowerShell -eEinen neuen Tab öffnen und pwsh ausführen. Bestätigen:
$PSVersionTable.PSVersion
# Major: 7, Minor: 4+2. pwsh als Standard-Shell setzen
Windows Terminal → Einstellungen (Strg+,) → Start:
- Standardprofil: PowerShell (7) — das dunkelblau-Symbol (nicht 5.1)
3. Profil einrichten
# Profildateipfad
$PROFILE
# C:\Users\me\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
# Erstellen, falls fehlend
if (-not (Test-Path $PROFILE)) { New-Item -Type File -Path $PROFILE -Force }
# Bearbeiten
notepad $PROFILE
# oder
code $PROFILE4. oh-my-posh installieren
winget install JanDeDobbeleer.OhMyPosh -s wingetNeues Terminal → Themes vorschauen:
Get-PoshThemesFalls Pfeile/∋/Ausführungszeit als Kästchen erscheinen, fehlt ein Nerd Font:
- JetBrainsMono Nerd Font oder
oh-my-posh font install JetBrainsMono - Windows Terminal → Einstellungen → Profil → Darstellung → Schriftfamilie:
JetBrainsMono Nerd Font
4.1 Zum Profil hinzufügen
An $PROFILE anhängen:
# oh-my-posh aktivieren
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-ExpressionThemes sind Geschmackssache (jandedobbeleer, paradox, negligible, craver usw.). Alle Themes befinden sich in $env:POSH_THEMES_PATH.
5. Sechs Module
# Alle auf einmal
Install-Module -Name Terminal-Icons, posh-git, PSReadLine, z, PSFzf -Scope CurrentUser -Force
Install-Module -Name CompletionPredictor -AllowPrerelease -Scope CurrentUser -Force5.1 Im Profil registrieren
In $PROFILE:
# 5.1 Icons (Dateityp-Icons in ls-Ausgabe)
Import-Module Terminal-Icons
# 5.2 posh-git (Git-Status im Prompt)
Import-Module posh-git
# Wenn das oh-my-posh-Theme bereits Git-Status hat, kann das doppelt sein. Eines wählen.
# 5.3 PSReadLine (Bash-Tasten, Verlauf, Vervollständigungsfarbe)
Import-Module PSReadLine
Set-PSReadLineOption -PredictionSource HistoryAndPlugin
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineKeyHandler -Chord Tab -Function Complete # Bash-Stil
# 5.4 z (zu häufigen Verzeichnissen springen — 'z proj')
Import-Module z
# 5.5 PSFzf (Strg+R Verlauf, Strg+T Dateisuche)
Import-Module PSFzf
Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+t' -PSReadlineChordReverseHistory 'Ctrl+r'
# fzf selbst: winget install junegunn.fzf
# 5.6 CompletionPredictor (befehlsbasierte Tab-Vorhersagen)
Import-Module CompletionPredictor6. Aliasse / Funktionen
Eigene zu $PROFILE hinzufügen:
# ls-Alternativen (UNIX-freundlich)
Set-Alias ll Get-ChildItem
function la { Get-ChildItem -Force @args }
# Schnelles Neuladen
function reload-profile { . $PROFILE }
# Sofortige Admin-Shell
function admin { Start-Process pwsh -Verb RunAs }
# Git-Shortcuts
function gs { git status -sb }
function gd { git diff $args }
function gpl { git pull --rebase --autostash }
# Schnelles WSL
function w { wsl @args }7. Überprüfung
# Profil neu laden
. $PROFILE
# 1. oh-my-posh-Prompt — in ein Git-Repo wechseln, um den Branch zu sehen
cd C:\Users\me\Documents\my-repo
# 2. PSReadLine — Pfeiltaste nach oben für Verlauf, tippen und grauen Vorschlag sehen → → drücken zum Akzeptieren
git st<→-Taste> # wird 'status' vorhergesagt?
# 3. z — zu einem zuvor besuchten Ordner springen
z my-repo
# 4. Strg+R — interaktive Verlaufssuche (fzf)
# 5. ll — farbenfrohes ls mit Terminal-IconsFehlerbehebung
oh-my-posh zeigt Kästchen statt Icons
Nerd Font nicht angewendet. Windows Terminal → Einstellungen → Profil → Darstellung → Nerd Font setzen.
Install-Module-Berechtigungsfehler
- Beim ersten Mal:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned - Ohne
-Scope CurrentUserwird manchmal Admin erfragt
Profil wird nicht geladen
pwshvs. Windows Terminal, das PowerShell 5.1 (powershell.exe) startet, haben unterschiedliche Profilpfade- 5.1:
~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1 - 7:
~/Documents/PowerShell/Microsoft.PowerShell_profile.ps1 - Mit
$PSVersionTable.PSVersionbestätigen
posh-git ist langsam (großes Repo)
git status bei jedem Prompt ist in großen Monorepos langsam. Wenn das oh-my-posh-Theme bereits ein Git-Segment hat, posh-git deaktivieren oder $GitPromptSettings.EnableFileStatus = $false setzen.
Strg+R funktioniert nicht
fzfnicht installiert —winget install junegunn.fzf- PSFzf installiert, aber
fzf.exenicht im PATH
Nur Graustufen-Farben
Windows Terminal-Farbschema falsch gesetzt. Einstellungen → Schema auf Campbell oder One Half Dark wechseln.
Referenzen
- Windows-Ersteinrichtung — winget Vorsetup
- WSL2-Tuning — Linux-Shell (zsh)
- oh-my-posh (offiziell)
- PowerShell Gallery — Modulentdeckung
Changelog
- 2026-05-12: Erster Entwurf. pwsh 7 + oh-my-posh + sechs Module + Aliasse/Funktionen + fünf Fehlerbehebungsfälle.