是否有人知道如何在 Windows Powershell 中使用非常有用的bash [Ctrl-r]
(和)的向后命令搜索功能?[Ctrl-o]
C-r
是一种更强大的arrow up
历史记录操作,它类似于 emacs,C-r
它会在您之前输入的命令中向后搜索。然后C-o
执行该命令并立即在该行上放置下一个命令。这样您就可以有效地重复传递的一系列命令。它还会查找已保存的历史记录,而不是会话历史记录。(~/.bash_history
文件)。这非常有用。
谢谢。
附言:作为奖励,不通过循环工作的制表符完成也将会很棒。
答案1
答案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 }