Complete PowerShell keyboard shortcuts reference — 33 shortcuts across 5 categories. Quick reference cheat sheet for Windows.
| Shortcut | Action |
|---|---|
| Shift + Enter | Add Line |
| Ctrl + Left | Word Left |
| Ctrl + Right | Word Right |
| Home | Line Start |
| End | Line End |
| Ctrl + Home | Delete to Start |
| Ctrl + End | Delete to End |
| Ctrl + Backspace | Delete Word Back |
| Ctrl + Delete | Delete Word Forward |
| Insert | Overstrike Mode |
| Shortcut | Action |
|---|---|
| Tab | Complete |
| Shift + Tab | Complete Backward |
| Ctrl + Space | Menu Complete |
| Shortcut | Action |
|---|---|
| Up | Previous Command |
| Down | Next Command |
| Ctrl + R | Reverse History Search |
| Ctrl + S | Forward History Search |
| F8 | History Search Backward |
| Shift + F8 | History Search Forward |
| Alt + . | Yank Last Argument |
| Shortcut | Action |
|---|---|
| Ctrl + C | Copy or Cancel |
| Ctrl + X | Cut |
| Ctrl + V | Paste |
| Ctrl + Z | Undo |
| Ctrl + Y | Redo |
| Ctrl + A | Select All |
| Esc | Revert Line |
| Ctrl + L | Clear Screen |
| Shortcut | Action |
|---|---|
| Alt + A | Select Command Argument |
| Ctrl + ] | Go to Brace |
| Alt + 0 | Digit Argument |
| F2 | Switch Prediction View |
| Alt + ? | What Is Key |
Almost everything on this page is provided by PSReadLine, the line-editing module that ships with Windows PowerShell 5.1 and PowerShell 7. Because the bindings live in the module rather than in the console window, they behave the same whether you run PowerShell in Windows Terminal, the legacy console host, or the VS Code integrated terminal.
The history keys are where PSReadLine earns its keep. Ctrl + R opens an interactive reverse search that narrows as you type — the same muscle memory as Bash. F8 is the quieter alternative: type the first few characters of a command, then press it repeatedly to walk back through every history entry with that prefix. And Alt + . pulls the last argument of the previous command into the current line, which turns two-step sequences like mkdir then cd into a single keystroke.
Completion has two gears. Tab cycles through candidates one at a time, while Ctrl + Space opens a menu you can steer with the arrow keys — far better when a cmdlet has thirty parameters. Once a long command is on the line, Alt + A jumps selection from argument to argument so you can swap values without arrowing through the whole string, and Alt + 0 through Alt + 9 repeat the next keystroke that many times.
Run Get-PSReadLineKeyHandler to list every active binding, or press Alt + ? followed by any chord to ask what that key does. If your muscle memory comes from Bash or Vim, Set-PSReadLineOption -EditMode Emacs (or Vi) swaps the whole keymap in one line — add it to your $PROFILE to make it permanent. The prediction view toggle on F2 requires PSReadLine 2.1 or newer; PowerShell 7 includes it, while stock Windows PowerShell 5.1 may need Install-Module PSReadLine to catch up.
Two usual causes. Stock Windows PowerShell 5.1 ships an older PSReadLine, so newer functions like the F2 prediction toggle are missing until you update the module. And host applications can intercept chords before PSReadLine sees them — the VS Code terminal, for example, claims several Ctrl combinations for its own keybindings unless you configure it to pass them through.
Ctrl + R is an interactive search: a prompt appears and the match updates as you type, searching anywhere in the command. F8 is prefix-based recall: it uses whatever is already on your line as the starting text and steps backward through matching history entries, with Shift + F8 stepping forward again.
Run Get-PSReadLineKeyHandler for the full table of bound and unbound functions. For a single key, press Alt + ? and then the chord you are curious about — PSReadLine reports which function it maps to without executing anything.
Yes — Set-PSReadLineOption -EditMode Emacs enables the readline-style keymap that Bash users expect, and -EditMode Vi does the same for modal editing. Put the line in your $PROFILE so every new session starts with it.
Shift + Enter starts a new line without running the command, and PowerShell shows >> as a continuation prompt for each additional line. While editing multi-line input, pressing Home or End twice jumps to the very first or very last line of the whole block.
Open your assistant with this page preloaded as the source — great for follow-up questions like "which of these work in other apps?"