Powershell 相当于 Ctrl+R?

Powershell 相当于 Ctrl+R?

在 bash 中,我可以执行Ctrl+R并开始输入命令以让其搜索我的历史记录。

我如何在 powershell 中做到这一点?

有没有办法将键绑定到类似的东西?

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

但是我需要重新读取每个输入或删除的字符的字符串才能输出匹配的命令,就像Ctrl+R一样。

这可能吗?

答案1

您可以通过采用读取行模块。

参见Hey, Scripting Guy! 博客上的文章关于这个 bash 启发的 PowerShell readline 实现。

特别是,使用Ctrl+ Alt+( Shift)+? 来显示所有键绑定。

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

简而言之:要么手动安装此模块,要么升级到 Windows PowerShell v5。

答案2

输入您的搜索词,然后按 F8,这将搜索您的命令历史记录。

这里有一个非常有用的 PowerShell 快捷方式列表这里

答案3

我不知道这是什么时候添加的,但在我的非定制、更新的 Windows 10 上,它是内置的。按 ctrl+r 进行反向历史记录搜索,效果很好。

在此处输入图片描述

答案4

您还可以通过在所查找命令的部分搜索文本前面放置一个 # 字符来启动您的命令,然后按下点击(如果需要可多次)来搜索会话历史记录。

相关内容