Complete PowerShell keyboard shortcuts reference — 64 shortcuts across 12 categories. Quick reference cheat sheet for Windows.
Line Editing (3)
Shortcut
Action
What it does
Ctrl + Left
Word Left
Move the cursor one word to the left.
Ctrl + Right
Word Right
Move the cursor one word to the right.
Insert
Overstrike Mode
Toggle between insert and overwrite mode.
Completion (1)
Shortcut
Action
What it does
Ctrl + Space
Menu Complete
Show a menu of possible completions and pick with the arrow keys.
History (2)
Shortcut
Action
What it does
Up
Previous Command
Recall the previous command from history.
Down
Next Command
Recall the next command from history.
Editing & Clipboard (1)
Shortcut
Action
What it does
Esc
Revert Line
Clear the current input.
PSReadLine: Basic editing (18)
Shortcut
Action
What it does
Enter
AcceptLine
Attempt to execute the current input. If the current input is incomplete (for example there's a missing closing parenthesis, bracket, or quote) then the continuation prompt is displayed on the next line and PSReadLine waits for keys to edit the current input.
Shift + Enter
AddLine
The continuation prompt is displayed on the next line and PSReadLine waits for keys to edit the current input. This is useful to enter multi-line input as a single command even when a single line is complete input by itself.
Backspace or Ctrl + H
BackwardDeleteChar
Delete the character before the cursor.
Ctrl + Home
BackwardDeleteInput
Like BackwardKillInput - deletes text from the point to the start of the input, but doesn't put the deleted text in the kill-ring.
Ctrl + Backspace or Ctrl + W
BackwardKillWord
Clear the input from the start of the current word to the cursor. If the cursor is between words, the input is cleared from the start of the previous word to the cursor. The cleared text is placed in the kill-ring.
Ctrl + C
Copy
Copy selected region to the system clipboard. If no region is selected, copy the whole line.
Ctrl + C
CopyOrCancelLine
If text is selected, copy to the clipboard, otherwise cancel the line.
Ctrl + X
Cut
Delete selected region placing deleted text in the system clipboard.
Delete
DeleteChar
Delete the character under the cursor.
Ctrl + End
ForwardDeleteInput
Like KillLine - deletes text from the point to the end of the input, but doesn't put the deleted text in the kill-ring.
Ctrl + Enter
InsertLineAbove
A new empty line is created above the current line regardless of where the cursor is on the current line. The cursor moves to the beginning of the new line.
Shift + Ctrl + Enter
InsertLineBelow
A new empty line is created below the current line regardless of where the cursor is on the current line. The cursor moves to the beginning of the new line.
Alt + D or Ctrl + Delete
KillWord
Clear the input from the cursor to the end of the current word. If the cursor is between words, the input is cleared from the cursor to the end of the next word. The cleared text is placed in the kill-ring.
Ctrl + V or Shift + Insert
Paste
Paste text from the system clipboard.
Ctrl + Y
Redo
Undo an undo.
Escape
RevertLine
Reverts all input to the current input.
Ctrl + Z
Undo
Undo a previous edit.
Alt + .
YankLastArg
Yank the last argument from the previous history line. With an argument, the first time it's invoked, behaves just like YankNthArg. If invoked multiple times, instead it iterates through history and arg sets the direction (negative reverses the direction.)
PSReadLine: Completion (3)
Shortcut
Action
What it does
Ctrl + @ or Ctrl + Spacebar
MenuComplete
Attempt to perform completion on the text surrounding the cursor. If there are multiple possible completions, the longest unambiguous prefix is used for completion. If trying to complete the longest unambiguous completion, a list of possible completions is displayed.
Tab
TabCompleteNext
Attempt to complete the text surrounding the cursor with the next available completion.
Shift + Tab
TabCompletePrevious
Attempt to complete the text surrounding the cursor with the previous available completion.
PSReadLine: Cursor movement (7)
Shortcut
Action
What it does
LeftArrow
BackwardChar
Move the cursor one character to the left. This may move the cursor to the previous line of multi-line input.
Ctrl + LeftArrow
BackwardWord
Move the cursor back to the start of the current word, or if between words, the start of the previous word. Word boundaries are defined by a configurable set of characters.
Home
BeginningOfLine
If the input has multiple lines, move to the start of the current line, or if already at the start of the line, move to the start of the input. If the input has a single line, move to the start of the input.
End
EndOfLine
If the input has multiple lines, move to the end of the current line, or if already at the end of the line, move to the end of the input. If the input has a single line, move to the end of the input.
RightArrow
ForwardChar
Move the cursor one character to the right. This may move the cursor to the next line of multi-line input.
Ctrl + ]
GotoBrace
Go to the matching brace, parenthesis, or square bracket.
Ctrl + RightArrow
NextWord
Move the cursor forward to the start of the next word. Word boundaries are defined by a configurable set of characters.
PSReadLine: History (7)
Shortcut
Action
What it does
Alt + F7
ClearHistory
Clears history in PSReadLine. This doesn't affect PowerShell history.
Ctrl + S
ForwardSearchHistory
Perform an incremental forward search through history.
F8
HistorySearchBackward
Replace the current input with the 'previous' item from PSReadLine history that matches the characters between the start and the input and the cursor.
Shift + F8
HistorySearchForward
Replace the current input with the 'next' item from PSReadLine history that matches the characters between the start and the input and the cursor.
DownArrow
NextHistory
Replace the current input with the 'next' item from PSReadLine history.
UpArrow
PreviousHistory
Replace the current input with the 'previous' item from PSReadLine history.
Ctrl + R
ReverseSearchHistory
Perform an incremental backward search through history.
PSReadLine: Miscellaneous (10)
Shortcut
Action
What it does
Ctrl + L
ClearScreen
Clear the screen and draw the current line at the top of the screen.
Alt + 0 or Alt + 1
DigitArgument
Start a new digit argument to pass to other functions. You can use this as a multiplier for the next function that's invoked by a keypress. For example, pressing <Alt+1> <Alt+0> sets the digit-argument value to 10. Then, pressing the # key sends 10 # characters ( ########## ) to the input line. Similarly, you can use this with other operations, like <Delete> or Left-Arrow .
PageDown
ScrollDisplayDown
Scroll the display down one screen.
Ctrl + PageDown
ScrollDisplayDownLine
Scroll the display down one line.
PageUp
ScrollDisplayUp
Scroll the display up one screen.
Ctrl + PageUp
ScrollDisplayUpLine
Scroll the display up one line.
F1
ShowCommandHelp
Provides a view of full cmdlet help. When the cursor is at the end of a fully expanded parameter, hitting the <F1> key positions the display of help at the location of that parameter.
Ctrl + Alt + ?
ShowKeyBindings
Show all bound keys.
Alt + H
ShowParameterHelp
Provides dynamic help for parameters by showing it below the current command line like MenuComplete . The cursor must be at the end of the fully expanded parameter name when you press the <Alt+h> key.
Alt + ?
WhatIsKey
Read a key and tell me what the key is bound to.
PSReadLine: Prediction (2)
Shortcut
Action
What it does
F4
ShowFullPredictionTooltip
Show the tooltip of the currently selected list item in the full view.
F2
SwitchPredictionView
Switch the view style for prediction between InlineView and ListView .
PSReadLine: Search (2)
Shortcut
Action
What it does
F3
CharacterSearch
Read a character and search forward for the next occurrence of that character. If an argument is specified, search forward (or backward if negative) for the nth occurrence.
Shift + F3
CharacterSearchBackward
Read a character and search backward for the next occurrence of that character. If an argument is specified, search backward (or forward if negative) for the nth occurrence.
PSReadLine: Selection (8)
Shortcut
Action
What it does
Ctrl + A
SelectAll
Select the entire line.
Shift + LeftArrow
SelectBackwardChar
Adjust the current selection to include the previous character.
Shift + Home
SelectBackwardsLine
Adjust the current selection to include from the cursor to the start of the line.
Shift + Ctrl + LeftArrow
SelectBackwardWord
Adjust the current selection to include the previous word.
Alt + A
SelectCommandArgument
Make visual selection of the command arguments. Selection of arguments is scoped within a scriptblock. Based on the cursor position, it searches from the innermost scriptblock to the outmost scriptblock, and stops when it finds any arguments in a scriptblock scope.
Shift + RightArrow
SelectForwardChar
Adjust the current selection to include the next character.
Shift + End
SelectLine
Adjust the current selection to include from the cursor to the end of the line.
Shift + Ctrl + RightArrow
SelectNextWord
Adjust the current selection to include the next word.
🔧 Spotted an error or a missing shortcut? Suggest an edit on GitHub — every accepted fix goes live on this page, the API and the CLI.
PSReadLine is doing the work
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.
Making it yours
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.
Frequently asked questions
Why do some of these shortcuts not work in my terminal?
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.
What is the difference between Ctrl + R and F8?
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.
How do I see every key binding at once?
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.
Can I make PowerShell behave like Bash?
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.
What does the >> prompt mean after Shift + Enter?
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.
🤖 Ask AI about PowerShell shortcuts
Open your assistant with this page preloaded as the source — great for follow-up questions like "which of these work in other apps?"