当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PSReadLine 中使用预测器

作者:精品下载站 日期:2024-12-14 03:04:51 浏览:12 分类:玩电脑

在 PSReadLine 中使用预测器


PSReadLine 2.1.0 引入了预测 IntelliSense 功能。预测性 IntelliSense 根据您的 PSReadLine 历史记录中的项目提供完整命令的建议。 PSReadLine 2.2.2 通过添加对使用高级逻辑为完整命令提供建议的插件模块的支持,扩展了 Predictive IntelliSense 的功能。最新版本 PSReadLine 2.2.6 默认启用预测。

使用预测 IntelliSense

启用预测 IntelliSense 后,预测建议将显示为跟随用户光标的彩色文本。 Predictive IntelliSense 的建议可帮助 PowerShell 新用户和有经验的用户根据匹配的预测发现、编辑和执行完整命令。建议可以来自用户的历史记录和其他特定于域的插件。

[玩转系统] 在 PSReadLine 中使用预测器

前面的图像显示了建议的默认 InlineView。按右箭头键接受内联建议。接受建议后,您可以在按 Enter 运行命令之前编辑命令行。

PSReadLine 还提供建议的 ListView 演示。

[玩转系统] 在 PSReadLine 中使用预测器

在列表视图中,您可以使用箭头键滚动浏览可用的建议。列表视图还显示预测的来源。

PSReadLine 默认为 InlineView。您可以通过按 F2 键在 InlineViewListView 之间切换。您还可以使用 Set-PSReadLineOptionPredictionViewStyle 参数来更改视图。

管理预测 IntelliSense

要使用 Predictive IntelliSense,您必须安装更新版本的 PSReadLine。为了获得最佳效果,请安装最新版本的模块。

要使用 PowerShellGet 安装 PSReadLine

Install-Module -Name PSReadLine

或者使用新的 PowerShellGet v3 模块进行安装:

Install-PSResource -Name PSReadLine

PSReadLine 可以安装在 Windows PowerShell 5.1 或 PowerShell 7 或更高版本中。要使用预测器插件,您必须在 PowerShell 7.2 或更高版本中运行。 Windows PowerShell 5.1 可以使用基于历史记录的预测器。

PSReadLine 2.2.6 中,根据以下条件默认启用 Predictive IntelliSense:

  • 如果支持虚拟终端 (VT) 并且 PSReadLine 在 PowerShell 7.2 或更高版本中运行,则 PredictionSource 设置为 HistoryAndPlugin
  • 如果支持 VT 并且 PSReadLine 在低于 7.2 的 PowerShell 中运行,则 PredictionSource 设置为 History
  • 如果不支持 VT,PredictionSource 将设置为 None

使用以下命令查看当前设置:

Get-PSReadLineOption | Select-Object -Property PredictionSource

您可以使用带有 PredictionSource 参数的 Set-PSReadLineOption cmdlet 更改预测源。 PredictionSource 可以设置为:

    None
    History
    Plugin
    HistoryAndPlugin

    笔记

    基于历史的预测来自于PSReadLine维护的历史。该历史记录比您可以使用 Get-History 查看的基于会话的历史记录更全面。有关详细信息,请参阅 about_PSReadLine 的命令历史记录部分。

    设置预测颜色

    默认情况下,预测以浅灰色文本显示在用户键入的同一行上。为了支持辅助功能需求,您可以自定义预测颜色。颜色是使用 ANSI 转义序列定义的。您可以使用 $PSStyle 来组成 ANSI 转义序列。

    Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
    

    或者您也可以创建自己的。可以使用以下 ANSI 转义序列恢复默认的浅灰色预测文本颜色。

    Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }
    

    有关设置预测颜色和其他 PSReadLine 设置的详细信息,请参阅 Set-PSReadLineOption。

    更改键绑定

    PSReadLine 包含导航和接受预测的函数。例如:

    • AcceptSuggestion - 接受当前的内联建议
    • AcceptNextSuggestionWord - 接受内联建议的下一个单词
    • AcceptSuggestion 内置于 ForwardChar 中,默认绑定到 RightArrow
    • AcceptNextSuggestionWord 内置于函数 ForwardWord 中,可以绑定到 Ctrl+f

    您可以使用 Set-PSReadLineKeyHandler cmdlet 更改键绑定。

    Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
    

    通过此绑定,当光标位于当前编辑行的末尾时,按 Ctrl+f 接受内联建议的下一个单词。您可以将其他键绑定到 AcceptSuggestionAcceptNextSuggestionWord 以获得类似的功能。例如,您可能想让 RightArrow 接受内联建议的下一个单词,而不是整个建议行。

    Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord
    

    使用其他预测器插件

    Az.Tools.Predictor 模块是 Predictive IntelliSense 的第一个插件。它使用机器学习来预测要运行的 Azure PowerShell 命令以及要使用的参数。有关详细信息和安装说明,请参阅宣布 Az.Tools.Predictor 全面上市。

    CompletionPredictor 模块为可在 PowerShell 中按 Tab 键完成的任何内容添加 IntelliSense 体验。将 PSReadLine 设置为 InlineView 后,您将获得正常的 Tab 补全体验。当您切换到 ListView 时,您将获得 IntelliSense 体验。您可以从 PowerShell 库安装 CompletionPredictor 模块。

    [玩转系统] 在 PSReadLine 中使用预测器

    如前所述,ListView 向您显示预测的来源。如果您安装了多个插件,则预测将按源分组,首先列出历史记录,然后按加载顺序列出每个插件。

    创建您自己的预测器模块

    您可以使用 C# 编写自己的预测器来创建已编译的 PowerShell 模块。该模块必须实现System.Management.Automation.Subsystem.Prediction.ICommandPredictor接口。该接口声明了用于查询预测结果并提供反馈的方法。

    有关更多信息,请参阅如何创建命令行预测器。

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯