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.

Előrejelzés beágyazott nézete

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.

Előrejelzések listanézete

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 InlineViewListView. 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-Historylá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ása
  • AcceptNextSuggestionWord - Fogadja el a beágyazott javaslat következő szavát
  • AcceptSuggestionbeépítettForwardChar, amely alapértelmezés szerint a RightArrow-hozvan kötve
  • AcceptNextSuggestionWorda függvényen ForwardWordbelü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 InlineViewa szokásos lapkiegészítési felület jelenik meg. Amikor átvált, ListViewmegkapja az IntelliSense felületet. A CompletionPredictor modult a PowerShell-galéria telepítheti.

PowerShell IntelliSense a CompletionPredictor használatával

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.