Partager via


Utilisation de la complétion via la touche Tab dans le shell

PowerShell fournit des complétions sur les entrées pour fournir des indicateurs, activer la découverte et accélérer la saisir des entrées. Les noms de commande, les noms de paramètre, les valeurs d’argument et les chemins de fichier peuvent tous être complétés en appuyant sur la touche Tab.

La touche Tab est la combinaison de touches par défaut sur Windows. PSReadLine fournit également une fonction MenuComplete qui est liée à Ctrl+Barre d’espace. La fonction MenuComplete affiche une liste de complétions correspondantes sous la ligne de commande.

Ces combinaisons de touches peuvent être changées en utilisant des cmdlets PSReadLine ou l’application qui héberge PowerShell. Les combinaisons de touches peuvent être différents sur les plateformes non-Windows. Pour plus d’informations, consultez about_PSReadLine_Functions.

Fonctionnalités de complétion via la touche Tab intégrées

PowerShell a activé la complétion via la touche Tab pour de nombreux aspects de l’expérience de la ligne de commande.

Complétion de nom de fichier

Pour renseigner automatiquement un nom de fichier ou un chemin d’accès à partir des choix disponibles, tapez une partie du nom, puis appuyez sur la touche Tab. PowerShell développe automatiquement le nom sur la base de la première correspondance qu’il trouve. Le fait de réappuyer sur la touche Tab boucle à travers tous les choix disponibles avec chaque appui sur la touche.

Complétion du nom des commandes et des paramètres

Le développement par tabulation des noms d’applet de commande est légèrement différent. Pour développer par tabulation un nom d’applet de commande, tapez la première partie entière du nom (verbe) et le trait d’union qui suit. Vous pouvez entrer davantage de caractères du nom pour une correspondance partielle. Par exemple, si vous tapez get-co, puis que vous appuyez sur la touche Tab, PowerShell développe automatiquement le nom de la cmdlet Get-Command (notez qu’il modifie également la casse des lettres pour leur attribuer leur format standard). Si vous appuyez de nouveau sur la touche Tab, PowerShell remplace ce nom par le seul autre nom d’applet de commande correspondant, Get-Content. La complétion via la touche Tab fonctionne également pour résoudre les alias et les exécutables natifs de PowerShell.

Le graphique suivant montre des exemples de complétion via la touche Tab et le menu.

Exemples de complétion via la touche Tab et le menu

Autres améliorations de la complétion via la touche Tab

Chaque nouvelle version de PowerShell inclut des améliorations de la complétion via la touche Tab, qui corrigent des bogues et améliorent la facilité d’utilisation.

PowerShell 7.0

  • La complétion via la touche Tab résout les attributions de variables qui sont des énumérations ou sont contraintes au niveau du type
  • La complétion via la touche Tab développe les cmdlets et les fonctions abrégées. Par exemple, i-psdf<tab> retourne Import-PowerShellDataFile.

PowerShell 7.2

  • Correction de la complétion via la touche Tab pour les rubriques about* non localisées
  • Correction de la projection traitée en tant que paramètre positionnel dans les complétions
  • Ajout de complétions pour les mots clés d’aide basés sur les commentaires
  • Ajout de la complétion pour les instructions #requires
  • Ajout de la complétion via la touche Tab pour le paramètre View des cmdlets Format-*
  • Ajouter la prise en charge des compléteurs d’arguments basés sur les classes

PowerShell 7.3

  • Correction de la complétion via la touche Tab dans le bloc de script spécifié pour ValidateScriptAttribute.
  • Ajout de la complétion via la touche Tab pour les étiquettes de boucle après breaket continue
  • Amélioration de la complétion des tables de hachage dans plusieurs scénarios
    • Projection de paramètres
    • Paramètre Arguments pourInvoke-CimMethod
    • Paramètre FilterHashtable pour Get-WinEvent
    • Paramètre Property pour les cmdlets CIM
    • Suppression des doublons dans les scénarios de saisie semi-automatique des membres
  • Prise en charge des barres obliques dans la complétion des partages réseau (chemin UNC)
  • Amélioration de la complétion automatique des membres
  • Priorisation des complétions de ValidateSet sur les énumérations pour les paramètres
  • Ajout de la prise en charge de l’inférence de type pour les méthodes génériques avec des paramètres de type
  • Amélioration l’inférence de type et des complétions
    • Permet d’afficher les méthodes dans les résultats de complétion pour ForEach-Object -MemberName
    • Non-complétion sur les expressions qui retournent void, comme ([void](""))
    • Permet aux constructeurs de classe non par défaut de s’afficher lorsque la complétion de classe est basée sur l’AST

Autres façons d’améliorer la complétion via la touche Tab des paramètres de commande

Le développement par tabulation intégré est contrôlé par la fonction interne TabExpansion ou TabExpansion2. Il est possible de créer des fonctions ou des modules qui remplacent le comportement par défaut de ces fonctions. Vous trouverez des exemples dans PowerShell Gallery en recherchant le mot clé TabExpansion.

Utilisation des attributs ValidateSet des ArgumentCompletions attributs avec des paramètres

L’attribut ArgumentCompletions vous permet d’ajouter des valeurs de complétion via la touche Tab à un paramètre spécifique. L’attribut ArgumentCompletions est similaire à ValidateSet. Les deux attributs prennent une liste de valeurs à présenter quand l’utilisateur appuie sur Tab après le nom du paramètre. Cependant, contrairement à ValidateSet, les valeurs ne sont pas vérifiées.

Pour plus d'informations, consultez les pages suivantes :

Utilisation de l’attribut ArgumentCompleter ou de Register-ArgumentCompleter avec des paramètres

Un compléteur d’arguments est un bloc de script ou une fonction qui fournit une complétion via la touche Tab dynamique pour les valeurs des paramètres.

L’attribut ArgumentCompleter vous permet d’inscrire une fonction qui fournit des valeurs de complétion via la touche Tab pour le paramètre. La fonction du compléteur d’arguments doit être disponible pour la fonction contenant le paramètre avec l’attribut ArgumentCompleter. Généralement, la fonction est définie dans le même script ou le même module.

Pour plus d’informations, consultez ArgumentCompleter.

La cmdlet Register-ArgumentCompleter inscrit un bloc de script en tant que fonction de compléteur d’arguments au moment de l’exécution pour les commandes que vous spécifiez. Ceci vous permet de définir des compléteurs d’arguments en dehors du script ou du module, ou pour des commandes natives. Pour plus d’informations, consultez Register-ArgumentCompleter.

IntelliSense prédictif 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. 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, consultez Utilisation de prédicteurs.