在 PowerShell 中相当于 bash 的 Ctrl-r

在 PowerShell 中相当于 bash 的 Ctrl-r

是否有人知道如何在 Windows Powershell 中使用非常有用的bash [Ctrl-r](和)的向后命令搜索功能?[Ctrl-o]

C-r是一种更强大的arrow up历史记录操作,它类似于 emacs,C-r它会在您之前输入的命令中向后搜索。然后C-o执行该命令并立即在该行上放置下一个命令。这样您就可以有效地重复传递的一系列命令。它还会查找已保存的历史记录,而不是会话历史记录。(~/.bash_history文件)。这非常有用。

谢谢。

附言:作为奖励,不通过循环工作的制表符完成也将会很棒。

答案1

键入命令的首字母并按F8

或者,您可以按下F7并输入首字母。

更多细节:http://technet.microsoft.com/en-us/magazine/ff678293.aspx

答案2

WMF 5.0 RTM, 包括Windows PowerShell 5,现在支持与 bash 相同的反向命令搜索功能CTRL+R。我一直在 Windows 10 周年纪念版中使用这个功能,我的打击肌肉记忆很开心。

该支持实际上来自 PowerShell 模块读取行我看到这个问题的一些评论中提到了这一点。好消息是,PSReadLine 现在似乎是包含在基础 WMF 5.0 安装中,至少在 Windows 10 上是这样的。

如果你运行的是 PowerShell 3 或更高版本,你也可以安装 PSReadLine并获得历史搜索功能。

笔记:我还没有找到如何在 ISE 中让它工作,因为CTRL+R它映射到其他东西(显示/隐藏脚本窗格)。

答案3

要操作历史记录,您可以使用历史记录 cmdlet,通过以下命令列出它们:

Get-Command *-history

搜索历史记录的方式如下,请随意创建一个函数来缩短它:

Get-history | Select-String "command"

function f ($Name) { Get-history | Select-String $name }

相关内容