PowerShell 中的 Ctrl+R 历史搜索(PSReadLine)

PSReadLine 可以复刻 bash 的 Ctrl+R,其 HistorySearch 函数还能边输入边过滤历史——但大多数人从未启用。

Windows命令行PowerShell效率低风险
用 Set-PSReadLineKeyHandler 把 ReverseSearchHistory 绑定到 Ctrl+r、HistorySearchBackward 绑定到上箭头,并写入 $PROFILE 持久化。

01命令

命令
$ Set-PSReadLineKeyHandler -Key Ctrl+r -Function ReverseSearchHistory ; Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward

02作用说明

PSReadLine 会保存无上限的持久化历史文件,但最好用的功能都需要手动绑定按键。ReverseSearchHistory 提供增量式 Ctrl+R 匹配;把上箭头绑定到 HistorySearchBackward 更好用:先输入前缀如 docker,再按上箭头就只会在以它开头的命令间循环。把这些绑定写入 $PROFILE 即可在每个会话自动生效。

03风险

风险低风险
使用条件PSReadLine module (bundled with Windows PowerShell 5.1+); add the commands to $PROFILE to persist

04撤销

撤销
$ Remove-PSReadLineKeyHandler -Key Ctrl+r ; Remove-PSReadLineKeyHandler -Key UpArrow

05来源

  • about_PSReadLine
    Microsoft Learn · vendor-doc · 2026-09-17
    依据: Documents PSReadLine key handlers including ReverseSearchHistory, HistorySearchBackward and how custom bindings persist via $PROFILE.

最后验证: 2026-09-17 · 分类: 开发者

06相关方案