Powershell 自动完成设置。

Jam*_*mes 3 powershell

我想知道是否有办法改变当前 powershell 自动完成的工作方式。我一直在使用 bash 并对其进行了更改,以提供一些我希望在我的 powershell 体验中使用的功能。

目前powershell,因为我正在编写一个带有文件夹的命令,它将选项卡自动完成并循环浏览我的文件夹。这是我喜欢的方式,但我想念的一个功能是使用命令的部分匹配并按下向上键,它会找到与我所做的其余部分匹配的命令。

所以我写'回声测试'然后我写其他命令并尝试'ec'并点击并且'回声测试'将完成而不是我输入的最后一个命令

只是想知道是否有办法让这个回来?

Dav*_*ill 5

我想念的一个功能是使用命令的部分匹配并点击 up

您可以PSReadLine为此使用(PowerShell 的受 bash 启发的 readline 实现):

PS读取行

此模块替换了 PowerShell.exe 中版本 3 及更高版本的命令行编辑体验。它提供:

  • 语法着色
  • 简单的语法错误通知
  • 良好的多行体验(编辑和历史)
  • 可定制的键绑定
  • Cmd 和 emacs 模式(都还没有完全实现,但都可用)
  • 许多配置选项
  • Bash 样式补全(Cmd 模式下可选,Emacs 模式下默认)
  • Bash/zsh 风格的交互式历史搜索 (CTRL-R)
  • Emacs 猛拉/杀死环
  • 基于 PowerShell 令牌的“单词”移动和杀死
  • 撤销重做
  • 自动保存历史记录,包括跨实时会话共享历史记录“菜单”完成(有点像 Intellisense,通过 Ctrl+Space 选择完成)

...

要设置您自己的自定义键绑定,请使用 cmdlet Set-PSReadlineKeyHandler。例如,为了获得更好的历史体验,请尝试:

Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
Run Code Online (Sandbox Code Playgroud)

使用这些绑定,如果当前命令行为空白,向上箭头/向下箭头将像 PowerShell/cmd 一样工作。但是,如果您输入了一些文本,它将在历史记录中搜索以当前输入的文本开头的命令。

PSReadLine