是否可以像在 bash 中一样在 Powershell 中进行自动完成?

Pet*_*erg 21 script powershell autocomplete

我喜欢 Powershell,但是来自 Linux 背景,有一些事情真的让我烦恼。例如默认自动完成的工作原理。

例如:Get-PS 扩展为“Get-PSBreakpoint”,这是第一个匹配的命令。在 bash 中,如果只有一个命令匹配,bash 将扩展为匹配的命令。如果有多个点击 tab 一次什么都不做,双击 tab 将显示匹配命令列表但不展开。有没有办法让 Powershell 表现得像这样?

另一件事,如果我写了一行,并将标记移回较早的命令(标记是 ^ 所在的位置):

“Get-PSS^ | Remove-PSSession”自动完成为“Get-PSSession^”,删除所有尾随命令。在 bash 中,尾随命令仍然不受影响。有没有办法让 Powershell 在自动完成时不删除尾随命令?

一个奖励是让 CTRL+L 清除屏幕。CTRL+A 转到行首,CTRL+E 转到行尾。

Dav*_*dro 15

查看PSReadline

从文章:

此模块取代了 PowerShell.exe 中的命令行编辑体验。它提供:

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

我每天都在用!

  • 安装 PSReadLine 后,您必须通过将其添加到您的配置文件来启用 bash 样式的选项卡完成:`Set-PSReadlineKeyHandler -Key Tab -Function Complete` (6认同)
  • PSReadLine 现在默认安装在 Windows 10 上。只需将 @brianpeiris 提到的配置行放入您的配置文件中,您就可以开始使用了。 (4认同)

har*_*ymc 3

也许您应该看看Powertab,一个可自定义的 PowerShell 选项卡扩展。

  • 谢谢! Powertab 确实使选项卡扩展方式变得更好。尽管如此,在命令结束时完成某些内容的问题仍然存在。 (2认同)