⌥+⌃AltPlusCtrl

PowerShell Keyboard Shortcuts

PowerShell's interactive shortcuts are largely inherited from its PSReadLine module, which governs command-line editing, history search, and tab completion behavior — this is distinct from any GUI application's shortcuts since everything here happens within a text-based command-line interface rather than a windowed app. Because PSReadLine is itself configurable and has shipped with different default key-handler sets (Windows-style vs Emacs-style) across versions, the bindings below reflect the default Windows-style handlers most users run, with a note on where the alternative differs. PowerShell's object pipeline, letting commands pass structured .NET objects rather than plain text between each other, is a scripting-language-level design decision rather than a keyboard shortcut, but it's worth understanding since it changes what tab completion and predictive suggestions can meaningfully offer compared to a plain-text shell like classic cmd.exe or bash — completions can be property- and method-aware rather than just filename-aware. Because PowerShell 7+ runs cross-platform on Windows, Mac, and Linux while Windows PowerShell 5.1 remains Windows-only and pre-installed, checking which specific version and PSReadLine release you're running matters more here than in most single-platform CLI tools when a documented shortcut doesn't behave as expected.

Command Line Editing

ActionWindowsMacDescription
Tab-complete command or pathTabCycles through possible completions for the partially typed command, cmdlet name, parameter, or file path, pressing Tab repeatedly to cycle through multiple matches in sequence.
Clear the screenCtrl+L (or the Clear-Host cmdlet)Clears all visible terminal output without affecting command history, equivalent to the classic 'cls' command but as a direct keystroke.
Clear current input lineCtrl+C (when not running a command) or EscapeClears whatever has been typed on the current command line without executing it — note that Ctrl+C's behavior depends on context: it cancels a running command if one is executing, or clears the unsubmitted input line if the prompt is idle.
Move cursor by wordCtrl+Left / Ctrl+RightJumps the cursor backward or forward by one word within the current command line, faster than holding an arrow key through a long command with many parameters.
Delete word before cursorCtrl+BackspaceRemoves the word immediately before the cursor, useful for quickly correcting a mistyped parameter or path segment without deleting character by character.
Open completion menu (list view)Ctrl+SpaceOpens a scrollable menu of possible completions rather than cycling through them one at a time with Tab, useful when there are many similarly-named matches and seeing them all at once is faster than tabbing through individually.
Delete from cursor to end of lineCtrl+K (Emacs-style handlers) or Shift+End then DeleteRemoves all text from the current cursor position to the end of the line, a classic Emacs-style editing shortcut available depending on which PSReadLine key-handler set is currently active.
Swap two characters at cursorCtrl+TSwaps the character immediately before the cursor with the one immediately after it, a quick fix for a common single-character typo pattern without needing to delete and retype both characters manually.
Cut current input line to clipboardCtrl+XRemoves the entire current input line and places it on the clipboard, letting you paste that partially typed command back later with Ctrl+V rather than losing it if you need to run something else first.

History Completion

ActionWindowsMacDescription
Search command history (reverse incremental)Ctrl+ROpens a reverse search through your command history, letting you type a partial command and find the most recent matching entry, similar to the same shortcut's behavior in bash.
Recall previous commandUp ArrowSteps backward through command history one entry at a time, the most basic and frequently used history navigation method.
Accept inline predictive suggestionRight Arrow (at end of line) or F2 for list viewAccepts the grayed-out inline command prediction PSReadLine shows based on your history, available in PowerShell 7.2+ with PredictionSource enabled — a feature that doesn't exist in older PowerShell versions or Windows PowerShell 5.1.
Open full history list viewF7Opens a selectable popup list of full command history (a feature inherited from the classic Console Host), letting you arrow through and select an entire past command rather than incrementally searching.
Search command history (forward incremental)Ctrl+S (varies by terminal)Searches forward through command history in the opposite direction from Ctrl+R's reverse search, useful once you've searched backward past the entry you actually wanted and need to step forward again.

Frequently Asked Questions

Why does Ctrl+C sometimes clear my line instead of canceling a command?

Ctrl+C's behavior in PowerShell depends entirely on whether a command is currently executing. If something is actively running, Ctrl+C sends an interrupt to stop it, matching standard terminal conventions. If the prompt is idle and you've simply typed something without pressing Enter yet, Ctrl+C instead clears that unsubmitted input line, since there's no running process to interrupt.

Why don't I see the inline predictive suggestions other PowerShell users mention?

Inline prediction is a PSReadLine feature introduced in PowerShell 7.2 and requires both a sufficiently recent PSReadLine module version and PredictionSource explicitly configured (commonly via Set-PSReadLineOption -PredictionSource History). It's not enabled by default in Windows PowerShell 5.1 (the version that ships built into Windows) and may need manual setup even in PowerShell 7.x depending on your profile configuration.

Are these shortcuts the same in the PowerShell ISE or VS Code's integrated terminal?

Mostly, since both ultimately rely on PSReadLine for command-line editing when running an interactive PowerShell session, but some shortcuts can be intercepted by the hosting application instead — for instance, VS Code's own keybindings might claim a combination before it reaches the PowerShell shell running inside its integrated terminal, depending on your VS Code keybinding configuration.

Why does tab completion sometimes suggest object properties instead of just files?

Because what's flowing through the pipeline is a real .NET object, not just text, PowerShell's tab completion can look at that object's actual properties and methods and suggest completions based on them — something a plain-text shell like bash or classic cmd.exe has no way to do since it only ever sees strings.

Does PowerShell work the same way on Mac and Linux as on Windows?

PowerShell 7 and later run cross-platform on Windows, Mac, and Linux with largely consistent behavior, while Windows PowerShell 5.1 (the version pre-installed on Windows) is Windows-only and slightly older, so it's worth confirming exactly which version is installed before assuming a documented shortcut simply isn't working.

Can I switch between the Windows-style and Emacs-style key handlers in PSReadLine?

Yes, PSReadLine supports switching its key-handler set via Set-PSReadLineOption -EditMode, letting users familiar with Emacs-style terminal editing conventions apply that same familiar binding scheme instead of the Windows-style defaults most users run out of the box.

Is there a quick way to fix a single transposed typo without retyping the whole word?

Yes — Ctrl+T swaps the character just before the cursor with the one just after it, a fast fix for the common typo pattern of two adjacent letters being entered in the wrong order, without needing to delete back through both characters and retype them correctly.