Utilisation de prédicteurs dans PSReadLine
PSReadLine 2.1.0 a introduit la fonctionnalité IntelliSense prédictif. IntelliSense prédictif fournit des suggestions pour des commandes complètes en fonction des éléments de votre historique PSReadLine. PSReadLine 2.2.2 étend la puissance d’IntelliSense prédictif en ajoutant la prise en charge de modules de plug-in qui utilisent une logique avancée pour fournir des suggestions pour des commandes complètes. La dernière version, PSReadLine 2.2.6, active les prédictions par défaut.
Utilisation d’IntelliSense prédictif
Quand IntelliSense prédictif est activé, la suggestion de prédiction apparaît sous forme de texte en couleur à la suite du curseur de l’utilisateur. Les suggestions d’IntelliSense prédictif aident les utilisateurs nouveaux et expérimentés de PowerShell à découvrir, modifier et exécuter des commandes complètes en fonction des prédictions correspondantes. Les suggestions peuvent provenir de l’historique de l’utilisateur et d’autres plug-ins spécifiques à un domaine.
Les images précédentes montrent la InlineView
par défaut de la suggestion. La touche Flèche droite accepte une suggestion inline. Après avoir accepté la suggestion, vous pouvez modifier la ligne de commande avant d’appuyer sur Entrée pour exécuter la commande.
PSReadLine offre aussi une présentation ListView
des suggestions.
Quand vous accédez à la vue liste, vous pouvez utiliser les touches de direction pour faire défiler les suggestions disponibles. La vue liste montre aussi la source de la prédiction.
PSReadLine affiche par défaut la InlineView
. Vous pouvez basculer entre InlineView
et ListView
en appuyant sur la touche F2. Vous pouvez aussi utiliser le paramètre PredictionViewStyle de Set-PSReadLineOption
pour changer la vue.
Gestion d’IntelliSense prédictif
Pour utiliser IntelliSense prédictif, une version plus récente de PSReadLine doit être installée. Pour obtenir les meilleurs résultats, installez la dernière version du module.
Pour installer PSReadLine en utilisant PowerShellGet :
Install-Module -Name PSReadLine
Vous pouvez aussi l’installer en utilisant le nouveau module PowerShellGet v3 :
Install-PSResource -Name PSReadLine
Vous pouvez installer PSReadLine dans Windows PowerShell 5.1 ou dans PowerShell 7 ou version ultérieure. Pour utiliser des plug-ins de prédicteur, vous devez utiliser PowerShell 7.2 ou ultérieur. Windows PowerShell 5.1 peut utiliser le prédicteur basé sur l’historique.
Dans PSReadLine 2.2.6, IntelliSense prédictif est activé par défaut en fonction des conditions suivantes :
- Si Virtual Terminal (VT) est pris en charge et que PSReadLine s’exécute dans PowerShell 7.2 ou ultérieur, PredictionSource est défini sur
HistoryAndPlugin
- Si Virtual Terminal est pris en charge et que PSReadLine s’exécute dans une version de PowerShell antérieure à 7.2, PredictionSource est défini sur
History
- Si Virtual Terminal n’est pas pris en charge, PredictionSource est défini sur
None
.
Utilisez la commande suivante pour voir le paramètre actuel :
Get-PSReadLineOption | Select-Object -Property PredictionSource
Vous pouvez changer la source de prédiction en utilisant la cmdlet Set-PSReadLineOption
avec le paramètre PredictionSource. PredictionSource peut être défini sur :
None
History
Plugin
HistoryAndPlugin
Notes
Les prédictions basées sur l’historique proviennent de l’historique géré par PSReadLine. Cet historique est plus complet que l’historique basé sur la session que vous pouvez afficher à l’aide de Get-History
. Pour plus d’informations, consultez la section Historique des commandes de about_PSReadLine.
Définition de la couleur des prédictions
Par défaut, les prédictions apparaissent en texte gris clair sur la même ligne que celle où utilisateur effectue sa saisie. Pour prendre en charge les besoins d’accessibilité, vous pouvez personnaliser la couleur des prédictions. Les couleurs sont définies en utilisant des séquences d’échappement ANSI. Vous pouvez utiliser $PSStyle
pour composer des séquences d’échappement ANSI.
Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
Vous pouvez aussi créer vos propres séquences. La couleur gris clair par défaut du texte des prédictions peut être restaurée en utilisant la séquence d’échappement ANSI suivante.
Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }
Pour plus d’informations sur la définition de la couleur des prédictions et d’autres paramètres de PSReadLine, consultez Set-PSReadLineOption.
Changer les combinaisons de touches
PSReadLine contient des fonctions permettant de naviguer dans les prédictions et de les accepter. Par exemple :
AcceptSuggestion
- Accepter la suggestion inline actuelleAcceptNextSuggestionWord
- Accepter le mot suivant dans la suggestion inlineAcceptSuggestion
est créé dansForwardChar
, qui est lié à RightArrow par défautAcceptNextSuggestionWord
est créé dans la fonctionForwardWord
, qui peut être liée à Ctrl+F
Vous pouvez utiliser la cmdlet Set-PSReadLineKeyHandler
pour changer les combinaison de touches.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
Avec cette combinaison, le fait d’appuyer sur Ctrl+F accepte le mot suivant d’une suggestion inline quand le curseur se trouve à la fin de la ligne d’édition actuelle. Vous pouvez lier d’autres touches à AcceptSuggestion
et AcceptNextSuggestionWord
pour des fonctionnalités similaires. Par exemple, vous souhaitez peut-être que RightArrow accepte le mot suivant de la suggestion inline, au lieu de la totalité de la ligne de suggestion.
Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord
Utilisation d’autres plug-ins de prédicteur
Le module Az.Tools.Predictor était le premier plug-in pour IntelliSense prédictif. Il utilise Machine Learning pour prédire quelle commande Azure PowerShell et les paramètres vous voulez exécuter. Pour plus d’informations et des instructions d’installation, consultez Annonce de la disponibilité générale d’Az.Tools.Predictor.
Le module CompletionPredictor ajoute une expérience IntelliSense pour tout ce qui peut être complété par complétion via la touche Tab dans PowerShell. Avec PSReadLine défini sur InlineView
, vous bénéficiez l’expérience normale de complétion via la touche Tab. Quand vous basculez sur ListView
, vous bénéficiez de l’expérience IntelliSense. Vous pouvez installer le module CompletionPredictor à partir de PowerShell Gallery.
Comme indiqué précédemment, ListView
vous montre la source de la prédiction. Si vous avez installé plusieurs plug-ins, les prédictions sont regroupées par source avec Historique listé en premier, suivi de chaque plug-in dans l’ordre où ils ont été chargés.
Création de votre propre module prédicteur
Vous pouvez écrire votre propre prédicteur en utilisant C# pour créer un module PowerShell compilé. Le module doit implémenter l’interface System.Management.Automation.Subsystem.Prediction.ICommandPredictor. Cette interface déclare les méthodes utilisées pour interroger les résultats de prédiction et formuler des commentaires.
Pour plus d’informations, consultez Comment créer un prédicteur de ligne de commande.