次の方法で共有


PSReadLine での予測変数の使用

PSReadLine 2.1.0 では 、予測 IntelliSense 機能が導入されました。 予測機能付きの IntelliSense は、PSReadLine 履歴の項目に基づいて、コマンド全体を提案します。 PSReadLine 2.2.2 は、高度なロジックを使用して完全なコマンドの提案を提供するプラグイン モジュールのサポートを追加することで、予測 IntelliSense の機能を拡張します。 最新バージョンの PSReadLine 2.2.6 では、既定で予測が有効になります。

IntelliSense の予測機能の使用

予測 IntelliSense が有効になっている場合、予測候補はユーザーのカーソルの後に色付きのテキストとして表示されます。 予測 IntelliSense からの提案は、PowerShell の新規および経験豊富なユーザーが、一致する予測に基づいて完全なコマンドを検出、編集、実行するのに役立ちます。 提案は、ユーザーの履歴と追加のドメイン固有のプラグインから取得できます。

予測のインライン ビュー

前の画像は、提案の既定の InlineView を示しています。 RightArrow キーを押すと、インライン検索候補が受け入れられます。 提案を受け入れた後、 Enter キーを押してコマンドを実行する前に、コマンド ラインを編集できます。

PSReadLine には、提案の ListView プレゼンテーションも用意されています。

予測のリスト ビュー

リスト ビューでは、方向キーを使用して、使用可能な候補をスクロールできます。 リスト ビューには、予測のソースも表示されます。

PSReadLine の既定値は InlineView です。 InlineView キーを押すと、ListViewを切り替えることができます。 Set-PSReadLineOption パラメーターを使用してビューを変更することもできます。

IntelliSense予測機能の管理

予測 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 では、次の条件に応じて予測 IntelliSense が既定で有効になります。

  • 仮想ターミナル (VT) がサポートされ、PowerShell 7.2 以降で PSReadLine が実行されている場合、PredictionSourceHistoryAndPlugin に設定されます。
  • VT がサポートされ、7.2 より前の PowerShell で PSReadLine が実行されている場合、PredictionSourceHistory に設定されます。
  • VT がサポートされていない場合、 PredictionSourceNone に設定されます。

現在の設定を確認するには、次のコマンドを使用します。

Get-PSReadLineOption | Select-Object -Property PredictionSource

予測ソースは、Set-PSReadLineOption パラメーターを指定して コマンドレットを使用して変更できます。 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 にバインドされている内に構築されます
  • AcceptNextSuggestionWordは関数ForwardWord内に構築され、Ctrl+f にバインドできます。

Set-PSReadLineKeyHandler コマンドレットを使用して、キー バインドを変更できます。

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

このバインドでは、カーソルが現在の編集行の末尾にある場合、Ctrl+キーを押すと、インライン検索候補の次の単語が受け入れられます。 同様の機能のために、他のキーを AcceptSuggestion および AcceptNextSuggestionWord にバインドできます。 たとえば、 RightArrow に、候補行全体ではなく、インライン提案の次の単語を受け入れるようにすることができます。

Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord

他の予測プラグインの使用

Az.Tools.Predictive モジュールは、予測 IntelliSense の最初のプラグインでした。 Machine Learning を使用して、実行する Azure PowerShell コマンドと使用するパラメーターを予測します。 詳細とインストール手順については、「 Az.Tools.Predictor の一般提供の発表」を参照してください。

CompletionPredictor モジュールは、PowerShell でタブ入力できるあらゆるものに対して IntelliSense エクスペリエンスを追加します。 PSReadLineInlineView に設定すると、通常のタブ補完エクスペリエンスが得られます。 ListViewに切り替えると、IntelliSense エクスペリエンスが得られます。 CompletionPredictor モジュールは、PowerShell ギャラリーからインストールできます。

PowerShell IntelliSense の CompletionPredictor 使用

前述のように、 ListView では予測のソースが表示されます。 複数のプラグインがインストールされている場合、予測はソースごとにグループ化され、 最初に履歴 が表示され、その後に各プラグインが読み込まれた順序で表示されます。

独自の予測モジュールの作成

C# を使用して独自の予測器を作成し、コンパイル済みの PowerShell モジュールを作成できます。 モジュールは 、System.Management.Automation.Subsystem.Prediction.ICommandPredictor インターフェイスを 実装する必要があります。 このインターフェイスは、予測結果のクエリとフィードバックの提供に使用されるメソッドを宣言します。

詳細については、「 コマンドライン予測器を作成する方法」を参照してください。