Partager via


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.

Vue inline d’une prédiction

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.

Vue des prédictions sous forme de liste

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 actuelle
  • AcceptNextSuggestionWord - Accepter le mot suivant dans la suggestion inline
  • AcceptSuggestion est créé dans ForwardChar, qui est lié à RightArrow par défaut
  • AcceptNextSuggestionWord est créé dans la fonction ForwardWord, 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.

IntelliSense PowerShell utilisant CompletionPredictor

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.