Powershell equivalent of Ctrl+R?

9,301

Solution 1

You can fix this by adopting the PSReadLine module.

See an article on the Hey, Scripting Guy! blog regarding this bash inspired readline implementation for PowerShell.

In particular, the usage of Ctrl+Alt+(Shift)+? to show all keybindings.

PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.0.10240.16384
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   10.0.10240.16384
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3

Ctrl+R

PS C:\> Get-Module -ListAvailable
bck-i-search: mo_

Ctrl+Alt+(Shift)+S

Key                  Function                 Description
---                  --------                 -----------
Ctrl+r               ReverseSearchHistory     Search history backwards interactively
Ctrl+s               ForwardSearchHistory     Search history forward interactively

In short: either install this module by hand or upgrade to Windows PowerShell v5.

Solution 2

Type your search term and then press F8, this will search your command history.

There's a very useful list of PowerShell shortcuts here.

Solution 3

I don't know when this got added, but on my non-customized, updated, Windows 10, it's built in. Hit ctrl+r for reverse history search, it works great.

enter image description here

Share:
9,301

Related videos on Youtube

Geoffrey McCosker
Author by

Geoffrey McCosker

Updated on September 18, 2022

Comments

  • Geoffrey McCosker
    Geoffrey McCosker over 1 year

    In bash I can do Ctrl+R and start typing a command to have it search my history.

    How do I do that in powershell?

    Is there a way to bind a key to something like?

    function GH($str) {get-history | select-string $str}
    

    But I would need to re-read the string for each char input or removed to output matching commands like Ctrl+R does.

    Is this possible?

    • koppor
      koppor almost 4 years
      Related: For cmd.exe, there is the tool clink.
  • Geoffrey McCosker
    Geoffrey McCosker about 8 years
    Have you tried that yourself? It never really worked for me or only half the time. For example I type a bunch of get-<whatever> commands. Then type get-<F8> and it only cycles through one or two random commands from my history? I don't know what the hell its doing. For example I just typed get-childitem and ran it then immediately after type get-c<f8> and I get nothing. Maybe my session is messed up?
  • Sam Cogan
    Sam Cogan about 8 years
    Works 100% of the time for me, this is with WMF 5 installed
  • dudu
    dudu about 5 years
    I also work on win10. Ctrl+R works in powershell, but does not work in cmd window.
  • Raúl Salinas-Monteagudo
    Raúl Salinas-Monteagudo over 4 years
    Sure, but why would you need to use cmd.exe??