Použití prediktorů v PSReadLine
PSReadLine 2.1.0 zavedl funkci Prediktivní IntelliSense . Prediktivní IntelliSense poskytuje návrhy pro úplné příkazy založené na položkách z historie psReadLine . PSReadLine 2.2.2 rozšiřuje možnosti prediktivní technologie IntelliSense přidáním podpory modulů plug-in, které používají pokročilou logiku k poskytování návrhů pro úplné příkazy. Nejnovější verze PSReadLine 2.2.6 umožňuje ve výchozím nastavení předpovědi.
Použití prediktivní technologie IntelliSense
Pokud je povolená prediktivní technologie IntelliSense, návrh predikce se zobrazí jako barevný text za kurzorem uživatele. Návrhy prediktivní technologie IntelliSense pomáhají novým a zkušeným uživatelům PowerShellu zjišťovat, upravovat a spouštět úplné příkazy na základě odpovídajících předpovědí. Návrhy můžou pocházet z historie uživatele a dalších modulů plug-in specifických pro doménu.
Předchozí obrázky zobrazují výchozí nastavení InlineView
návrhu. Stisknutím klávesy RightArrow přijmete vložený návrh. Po přijetí návrhu můžete příkazový řádek upravit před stisknutím klávesy Enter a příkaz spustit.
PSReadLine také nabízí ListView
prezentaci návrhů.
Když jste v zobrazení seznamu, můžete pomocí kláves se šipkami procházet dostupné návrhy. Zobrazení seznamu také zobrazuje zdroj předpovědi.
Výchozí hodnota InlineView
PSReadLine je . Můžete přepínat mezi InlineView
klávesou F2 a ListView
stisknutím klávesy F2 . Ke změně zobrazení můžete použít také parametr Set-PSReadLineOption
PredictionViewStyle.
Správa prediktivní technologie IntelliSense
Pokud chcete používat prediktivní IntelliSense, musíte mít nainstalovanou novější verzi PSReadLine . Nejlepších výsledků dosáhnete instalací nejnovější verze modulu.
Instalace PSReadLine pomocí modulu PowerShellGet:
Install-Module -Name PSReadLine
Nebo nainstalujte pomocí nového modulu PowerShellGet v3 :
Install-PSResource -Name PSReadLine
PsReadLine je možné nainstalovat ve Windows PowerShellu 5.1 nebo v PowerShellu 7 nebo novějším. Pokud chcete použít moduly plug-in prediktoru, musíte být spuštěné v PowerShellu 7.2 nebo novějším. Windows PowerShell 5.1 může používat prediktor založený na historii.
V PSReadLine 2.2.6 je prediktivní intelliSense ve výchozím nastavení povolená v závislosti na následujících podmínkách:
- Pokud je virtuální terminál (VT) podporovaný a psReadLine spuštěný v PowerShellu 7.2 nebo novějším, je PredictionSource nastavený na
HistoryAndPlugin
- Pokud je virtuální počítač podporovaný a psReadLine spuštěný v PowerShellu starším než 7.2, je PredictionSource nastavený na
History
- Pokud virtuální počítač nepodporuje, nastaví se PredictionSource na
None
hodnotu .
Aktuální nastavení zobrazíte pomocí následujícího příkazu:
Get-PSReadLineOption | Select-Object -Property PredictionSource
Zdroj predikcí můžete změnit pomocí rutiny Set-PSReadLineOption
s parametrem PredictionSource . PredictionSource lze nastavit na:
None
History
Plugin
HistoryAndPlugin
Poznámka:
Predikce založené na historii pocházejí z historie, kterou udržuje PSReadLine. Tato historie je komplexnější než historie založená na relacích, kterou můžete použít Get-History
. Další informace najdete v části Historie příkazů about_PSReadLine.
Nastavení barvy předpovědi
Ve výchozím nastavení se předpovědi zobrazují ve světle šedém textu na stejném řádku, na který uživatel píše. Aby bylo možné podporovat potřeby přístupnosti, můžete přizpůsobit barvu předpovědi. Barvy se definují pomocí řídicích sekvencí ANSI. Můžete použít $PSStyle
k vytváření řídicích sekvencí ANSI.
Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
Nebo si můžete vytvořit vlastní. Výchozí světle šedá barva textu předpovědi se dá obnovit pomocí následující řídicí sekvence ANSI.
Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }
Další informace o nastavení barvy předpovědi a dalších nastavení PSReadLine naleznete v tématu Set-PSReadLineOption.
Změna klávesových vazeb
PSReadLine obsahuje funkce pro navigaci a přijímání předpovědí. Příklad:
AcceptSuggestion
- Přijměte aktuální vložený návrh.AcceptNextSuggestionWord
- Přijměte další slovo vloženého návrhu.AcceptSuggestion
is built withinForwardChar
, which is bound to RightArrow by defaultAcceptNextSuggestionWord
je sestaven v rámci funkceForwardWord
, která může být vázána na Ctrl+f
Rutinu Set-PSReadLineKeyHandler
můžete použít ke změně klíčových vazeb.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
Při použití této vazby přijme stisknutím klávesy Ctrl+f další slovo vloženého návrhu, když je kurzor na konci aktuálního řádku pro úpravy. Můžete svázat další klíče s AcceptSuggestion
podobnými funkcemi a AcceptNextSuggestionWord
pro podobné funkce. Můžete například chtít, aby Funkce RightArrow přijímala další slovo vloženého návrhu místo celého řádku návrhu.
Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord
Použití jiných modulů plug-in prediktoru
Modul Az.Tools.Predictor byl prvním modulem plug-in prediktivní technologie IntelliSense. Používá machine Učení k predikci toho, jaký příkaz Azure PowerShellu chcete spustit, a parametrů, které chcete použít. Další informace a pokyny k instalaci naleznete v tématu Oznámení obecné dostupnosti Az.Tools.Predictor.
Modul CompletionPredictor přidává prostředí IntelliSense pro cokoli, co je možné v PowerShellu dokončit pomocí tabulátoru. Při nastavení InlineView
PSReadLine získáte normální prostředí pro dokončování tabulátoru. Když přejdete na ListView
, získáte prostředí IntelliSense. Modul CompletionPredictor můžete nainstalovat z Galerie prostředí PowerShell.
Jak už jsme si poznamenali, ListView
ukazuje zdroj předpovědi. Pokud máte nainstalovaných více modulů plug-in, predikce jsou seskupené podle zdroje s historií uvedenou jako první následovanou jednotlivými moduly plug-in v pořadí, v jakém byly načteny.
Vytvoření vlastního prediktoru modulu
Pomocí jazyka C# můžete napsat vlastní prediktor a vytvořit zkompilovaný modul PowerShellu. Modul musí implementovat rozhraní System.Management.Automation.Subsystem.Prediction.ICommandPredictor . Toto rozhraní deklaruje metody použité k dotazování na výsledky předpovědi a poskytnutí zpětné vazby.
Další informace najdete v tématu Vytvoření prediktoru příkazového řádku.