Prediktorok használata a PSReadLine-ban
A PSReadLine 2.1.0 bevezette a Prediktív IntelliSense funkciót. A prediktív IntelliSense a PSReadLine előzményei alapján nyújt javaslatokat a teljes parancsokhoz. A PSReadLine 2.2.2 kibővíti a Prediktív IntelliSense teljesítményét azáltal, hogy támogatja a speciális logikát használó beépülő modulokat, hogy javaslatokat nyújtsanak a teljes parancsokhoz. A PSReadLine 2.2.6 legújabb verziója alapértelmezés szerint engedélyezi az előrejelzéseket.
Prediktív IntelliSense használata
Ha a prediktív IntelliSense engedélyezve van, az előrejelzési javaslat színes szövegként jelenik meg a felhasználó kurzorát követve. A Prediktív IntelliSense javaslatai segítenek a PowerShell új és tapasztalt felhasználóinak a teljes parancsok felderítésében, szerkesztésében és végrehajtásában az egyező előrejelzések alapján. A javaslatok a felhasználó előzményeiből és további tartományspecifikus beépülő modulokból származhatnak.
Az előző képeken a javaslat alapértelmezett értéke InlineView
látható. A RightArrow billentyű lenyomásával beágyazott javaslatot fogad el. A javaslat elfogadása után szerkesztheti a parancssort, mielőtt az Enter billentyűt lenyomná a parancs futtatásához.
A PSReadLine a javaslatok bemutatóját ListView
is tartalmazza.
A listanézetben a nyílbillentyűkkel görgetheti végig az elérhető javaslatokat. A listanézet az előrejelzés forrását is megjeleníti.
A PSReadLine alapértelmezés szerint a .InlineView
Az F2 billentyűvel válthat a kettő között InlineView
ListView
. A nézet módosításához használhatja a PredictionViewStyle paramétert Set-PSReadLineOption
is.
Prediktív IntelliSense kezelése
A Prediktív IntelliSense használatához telepítve kell lennie a PSReadLine újabb verziójának. A legjobb eredmény érdekében telepítse a modul legújabb verzióját.
A PSReadLine telepítése a PowerShellGet használatával:
Install-Module -Name PSReadLine
Vagy telepítse az új PowerShellGet v3 modullal:
Install-PSResource -Name PSReadLine
A PSReadLine telepíthető a Windows PowerShell 5.1-ben vagy a PowerShell 7-ben vagy újabb verzióiban. A prediktor beépülő modulok használatához a PowerShell 7.2-ben vagy újabb verziójában kell futnia. A Windows PowerShell 5.1 használhatja az előzményalapú prediktort.
A PSReadLine 2.2.6-ban a prediktív IntelliSense alapértelmezés szerint engedélyezve van a következő feltételektől függően:
- Ha a Virtuális terminál (VT) támogatott, és a PSReadLine a PowerShell 7.2-es vagy újabb verziójában fut, a PredictionSource értéke
HistoryAndPlugin
- Ha a VT támogatott, és a PSReadLine 7.2-nél régebbi PowerShellben fut, a PredictionSource értéke
History
- Ha a VT nem támogatott, a PredictionSource értéke
None
.
Az aktuális beállítás megtekintéséhez használja a következő parancsot:
Get-PSReadLineOption | Select-Object -Property PredictionSource
Az előrejelzési forrást a Set-PSReadLineOption
PredictionSource paraméterrel rendelkező parancsmaggal módosíthatja. A PredictionSource a következőre állítható be:
None
History
Plugin
HistoryAndPlugin
Feljegyzés
Az előzményalapú előrejelzések a PSReadLine által fenntartott előzményekből származnak. Ez az előzmények átfogóbbak, mint a munkamenet-alapú előzmények, amelyeket a használatával Get-History
láthat. További információt a about_PSReadLine Parancselőzmények szakaszában talál.
Az előrejelzés színének beállítása
Alapértelmezés szerint az előrejelzések világosszürke szövegben jelennek meg ugyanazon a sorban, amelyet a felhasználó begépel. Az akadálymentességi igények támogatásához testre szabhatja az előrejelzés színét. A színek ANSI-feloldósorozatokkal vannak definiálva. ANSI-feloldósorozatok írására is használható $PSStyle
.
Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
Vagy létrehozhatja a sajátját. Az alapértelmezett világosszürke előrejelzési szövegszín az alábbi ANSI-feloldási sorozattal állítható vissza.
Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }
Az előrejelzési szín beállításával és a PSReadLine egyéb beállításaival kapcsolatos további információkért lásd: Set-PSReadLineOption.
Kulcskötések módosítása
A PSReadLine függvényeket tartalmaz az előrejelzések navigálásához és elfogadásához. Példa:
AcceptSuggestion
– Az aktuális beágyazott javaslat elfogadásaAcceptNextSuggestionWord
- Fogadja el a beágyazott javaslat következő szavátAcceptSuggestion
beépítettForwardChar
, amely alapértelmezés szerint a RightArrow-hoz van kötveAcceptNextSuggestionWord
a függvényenForwardWord
belül épül fel, amely a Ctrl f billentyűkombinációhoz+ kötött
A parancsmaggal módosíthatja a Set-PSReadLineKeyHandler
kulcskötéseket.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
Ezzel a kötéssel a Ctrl f billentyűkombináció+lenyomásával elfogadja egy beágyazott javaslat következő szavát, amikor a kurzor az aktuális szerkesztővonal végén van. Más kulcsokat is köthet hasonló funkciókhozAcceptSuggestion
.AcceptNextSuggestionWord
Előfordulhat például, hogy a RightArrow-nak el kell fogadnia a beágyazott javaslat következő szavát a teljes javaslatsor helyett.
Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord
Egyéb prediktor beépülő modulok használata
Az Az.Tools.Predictor modul volt az első beépülő modul a Prediktív IntelliSense-hez. Gépi Tanulás használatával jelzi előre, hogy milyen Azure PowerShell-parancsot szeretne futtatni, és milyen paramétereket szeretne használni. További információkért és telepítési utasításokért lásd : Az.Tools.Predictor általános elérhetőségének bejelentése.
A CompletionPredictor modul intelliSense felületet ad hozzá mindenhez, amely a PowerShellben tabulátorral kiegészíthető. A PSReadLine beállításakor InlineView
a szokásos lapkiegészítési felület jelenik meg. Amikor átvált, ListView
megkapja az IntelliSense felületet. A CompletionPredictor modult a PowerShell-galéria telepítheti.
Ahogy korábban már említettük, ListView
az előrejelzés forrását mutatja. Ha több beépülő modul is telepítve van, az előrejelzések forrás szerint vannak csoportosítva, és az előzménylista az első helyen szerepel, majd minden beépülő modul a betöltés sorrendjében.
Saját prediktormodul létrehozása
A C# használatával saját prediktort írhat lefordított PowerShell-modul létrehozásához. A modulnak implementálnia kell a System.Management.Automation.Subsystem.Prediction.ICommandPredictor felületet. Ez az interfész deklarálja az előrejelzési eredmények lekérdezéséhez és visszajelzéshez használt módszereket.
További információ: Parancssori előrejelző létrehozása.