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 がインストールされている必要があります。 最良の結果を得るには、最新バージョンのモジュールをインストールします。
Microsoft.PowerShell.PSResourceGet モジュールを使用して PSReadLine をインストールします。
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 が実行されている場合、PredictionSource は
HistoryAndPluginに設定されます。 - VT がサポートされ、7.2 より前の PowerShell で PSReadLine が実行されている場合、PredictionSource は
Historyに設定されます。 - VT がサポートされていない場合、 PredictionSource は
Noneに設定されます。
現在の設定を確認するには、次のコマンドを使用します。
Get-PSReadLineOption | Select-Object -Property PredictionSource
予測ソースは、Set-PSReadLineOption パラメーターを指定して コマンドレットを使用して変更できます。
PredictionSource は次のように設定できます。
NoneHistoryPluginHistoryAndPlugin
注
履歴ベースの予測は、 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 エクスペリエンスを追加します。
PSReadLine を InlineView に設定すると、通常のタブ補完エクスペリエンスが得られます。
ListViewに切り替えると、IntelliSense エクスペリエンスが得られます。
CompletionPredictor モジュールは、PowerShell ギャラリーからインストールできます。
前述のように、 ListView では予測のソースが表示されます。 複数のプラグインがインストールされている場合、予測はソースごとにグループ化され、 最初に履歴 が表示され、その後に各プラグインが読み込まれた順序で表示されます。
独自の予測モジュールの作成
C# を使用して独自の予測器を作成し、コンパイル済みの PowerShell モジュールを作成できます。 モジュールは 、System.Management.Automation.Subsystem.Prediction.ICommandPredictor インターフェイスを 実装する必要があります。 このインターフェイスは、予測結果のクエリとフィードバックの提供に使用されるメソッドを宣言します。
詳細については、「 コマンドライン予測器を作成する方法」を参照してください。
PowerShell