如何更改PowerShell 7.3.0上建议完成键?

12

最近我将PowerShell更新到7.3.0版本,当键入命令时会显示建议。但是,按Tab键时不会自动完成建议。如何将 Tab 键设置为自动完成键呢?

1个回答

17

经过一些研究,我发现:

  • 默认的自动完成键是 RightArrow 键。
  • 你可以逐字接受建议。
  • 你可以通过按下 F2 来在 InlineViewListView 之间切换建议视图类型。

来源:在 PSReadLine 中使用预测器

以下是如何更改键绑定的方法:

Tab 键设置为自动完成(AcceptSuggestion)的键绑定。

Set-PSReadLineKeyHandler -Chord "Tab" -Function AcceptSuggestion

RightArrow键设置为接受建议中下一个单词(ForwardWord)的按键绑定

Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord

注意:

每次打开新会话时,您需要运行这些命令。为了避免这种情况,请将它们添加到profile.ps1文件中。更多关于配置文件的信息

  • 如果只想更改当前用户的设置,

    打开 PowerShell 窗口并运行以下命令:

    notepad $profile.CurrentUserAllHosts
    

或者

  • 要为所有用户更改这些设置,

    请以管理员身份打开 PowerShell 窗口并运行以下命令:

    Notepad $profile.AllUsersAllHosts
    
如果文件不存在,则创建新文件。
添加这些行并保存。
Set-PSReadLineKeyHandler -Chord "Tab" -Function AcceptSuggestion
Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord

我的F2没有效果,如何修复?我没有看到F2绑定。 - Konstantin Glukhov

@KonstantinGlukhov 你修好了吗?我在Jetbrains Rider的终端上运行了命令Get-PSReadLineOption | Select-Object -Property PredictionSource,但按F2无反应。然而,命令行告诉我: ```警告:由于控制台的当前窗口大小太小,预测“ListView”已被临时禁用。要使用“ListView”,请确保“WindowWidth”不小于“54”,“WindowHeight”不小于“15”。 PredictionSource

HistoryAndPlugin``` 调整终端高度后,它就可以工作了。
- Seiko Santana
是的,我搞定了。只需要RFM一下。我的问题是我在使用Vi模式,而所有的帮助页面默认都是关于emacs的。要让它在Vi模式下工作,你需要使用以下命令:“Set-PSReadLineKeyHandler F2 -Function SwitchPredictionView”。 - Konstantin Glukhov
想要告诉读者的是,微软PowerToys有一个键盘管理器,可以重新绑定按键。在Visual Studio(其中右箭头也可以进行智能感知自动完成)和Powershell 7中使用时,我将CapsLock映射到右箭头,使生活更加轻松。额外的好处是永远不用担心大写锁定键被按下。 - mlibby
就我所知,我在第一条命令中遇到了一个错误:“Set-PSReadLineKeyHandler: 无法验证参数'Function'。参数“AcceptSuggestion”不属于集合中的一部分[...]”,其中“[...]”是由“ValidateSet属性”指定的操作列表。 - undefined
就这个问题而言,第一个命令出现错误:"Set-PSReadLineKeyHandler: 无法验证参数 'Function' 上的参数。参数 "AcceptSuggestion" 不属于集合中[...]所指定的动作列表,其由 ValidateSet 属性指定。" - bhalperin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接