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.
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>
retourneImport-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
break
etcontinue
- Amélioration de la complétion des tables de hachage dans plusieurs scénarios
- Projection de paramètres
- Paramètre Arguments pour
Invoke-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
- Permet d’afficher les méthodes dans les résultats de complétion pour
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.