Utilisation des gestionnaires de clés PSReadLine
Le module PSReadLine fournit des gestionnaires de touches qui mappent les fonctions PSReadLine aux touches du clavier. Les combinaisons clavier correspondent à une séquence d’une ou de plusieurs touches sur lesquels l’utilisateur appuie simultanément.
Par exemple, la combinaison Ctrl+Espace consiste à appuyer simultanément sur les touches Ctrl et Espace. Une fonction PSReadLine est une action prédéfinie qui peut être effectuée sur une ligne de commande. La fonction MenuComplete
permet par exemple de choisir l’une des options dans une liste d’un menu pour effectuer l’entrée sur la ligne de commande.
PSReadLine comprend plusieurs gestionnaires de touches prédéfinis qui sont liés par défaut. Vous pouvez également définir vos propres gestionnaires de touches. Exécutez la commande suivante pour répertorier les gestionnaires de touches définis actuellement.
Get-PSReadLineKeyHandler
Vous pouvez également obtenir la liste de l’ensemble des fonctions PSReadLine indépendantes qui sont disponibles et peuvent être liées à une combinaison de touches.
Get-PSReadLineKeyHandler -Unbound
Vous pouvez utiliser la cmdlet Set-PSReadLineKeyHandler
pour lier une fonction à un gestionnaire de touches. La commande suivante lie la fonction MenuComplete
à la combinaison Ctrl+Espace.
Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete
Recherche des noms et des combinaisons de touches
Les noms des touches de la combinaison sont définis par l’énumération [System.ConsoleKey]
. Pour plus d’informations, consultez la documentation System.ConsoleKey. Par exemple, le nom de la touche 2 dans [System.ConsoleKey]
est D2
, tandis que le nom de la touche 2 sur le pavé numérique est NumPad2
. Vous pouvez utiliser la méthode [System.Console]::ReadKey()
pour rechercher le nom de la touche sur laquelle vous avez appuyé.
[System.Console]::ReadKey()
La sortie suivante montre les informations retournées par la méthode ReadKey()
pour la combinaison de touches Ctrl+2.
KeyChar Key Modifiers
------- --- ---------
D2 Control
Pour les cmdlets de gestionnaire de touches PSReadLine, cette combinaison est représentée par Ctrl+D2
. L’exemple suivant lie cette combinaison à une fonction.
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
Vous pouvez lier plusieurs combinaisons à une fonction unique. Par défaut, la fonction BackwardDeleteChar
est liée à deux combinaisons.
Get-PSReadLineKeyHandler -Chord Backspace, Ctrl+h
Key Function Description
--- -------- -----------
Backspace BackwardDeleteChar Delete the character before the cursor
Ctrl+h BackwardDeleteChar Delete the character before the cursor
Notes
Le paramètre Combinaisonrespecte la casse. Cela signifie que vous pouvez créer différentes liaisons pour Ctrl+X et Ctrl+x.
Sur Windows, vous pouvez également utiliser la combinaison de touches Alt+? pour afficher la fonction liée à la combinaison de touches suivante que vous entrez. Quand vous tapez Alt+?, l’invite suivante s’affiche :
what-is-key:
Quand vous appuyez sur la touche Retour arrière, vous obtenez la réponse suivante :
Backspace: BackwardDeleteChar - Delete the character before the cursor
Gestionnaires de touches sur des ordinateurs non Windows
Les codes de touche générés par votre clavier peuvent varier selon le système d’exploitation et l’application de terminal utilisés.
macOS
Le clavier Macintosh n’a pas de touche Alt comme les systèmes Windows et Linux. Il comporte la touche ⌥ Option à la place. macOS utilise cette touche différemment de la touche Alt sur d’autres systèmes. Toutefois, il est possible de configurer le terminal et les applications iTerm2 sur macOS afin de les traiter comme une touche Alt.
Configuration de l’application de terminal
Ouvrez la fenêtre Paramètres dans la barre de l’application dans Terminal.app. Sélectionnez Profils et choisissez le profil que vous souhaitez configurer. Sélectionnez l’onglet Clavier dans les options de configuration. Sous la liste des touches, sélectionnez le paramètre Utiliser l’option en tant que touche Méta. Ce paramètre permet d’utiliser la touche Option ⌥ en tant que touche Alt dans l’application de terminal.
Configuration de l’application iTerm2
Ouvrez la fenêtre Paramètres dans la barre de l’application dans iTerm.app. Sélectionnez Profils et choisissez le profil que vous souhaitez configurer. Sélectionnez l’onglet Touches dans les options de configuration. Sélectionnez l’option Échap+ pour les paramètres Touche Option gauche et Touche Option droite. Ce paramètre permet d’utiliser la touche Option ⌥ en tant que touche Alt dans l’application iTerm.
Notes
Les étapes exactes peuvent varier en fonction des versions de macOS et des applications de terminal. Ces exemples ont été capturés sur macOS Ventura 13.2.1 et iTerm2 v3.4.16.
Linux
Sur les plateformes Linux, le code de touche généré peut être différent des autres systèmes. Par exemple :
Ctrl+[ correspond à Échap
Ctrl+Espace génère les codes de touche pour Ctrl+D2. Si vous souhaitez mapper une fonction Ctrl+Espace, vous devez utiliser la combinaison
Ctrl+D2
.Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
Utilisez la méthode ReadKey()
pour vérifier les codes de touche générés par votre clavier.
Gestionnaires de touches courants
Voici quelques gestionnaires de touches couramment utilisés qui sont liés par défaut sur Windows. Notez que la combinaison de touches peut varier sur les plateformes non Windows.
MenuComplete
Terminez l’entrée en sélectionnant des valeurs de saisie possibles dans un menu.
Combinaison par défaut : Ctrl+Spacebar
L’exemple suivant montre le menu des saisies possibles pour les commandes commençant par select
.
PS C:\> select<Ctrl+Spacebar>
select Select-Object Select-PSFPropertyValue Select-Xml
Select-AzContext Select-PSFConfig Select-PSMDBuildProject
Select-AzSubscription Select-PSFObject Select-String
Select-Object
Utilisez les touches de direction pour sélectionner la saisie souhaitée. Appuyez sur la touche Entrée pour terminer l’entrée. Quand vous parcourez les sélections, l’aide s’affiche sous le menu pour la commande sélectionnée.
ClearScreen
Cette fonction efface l’écran de la même façon que les commandes cls
ou clear
.
Combinaison par défaut : Ctrl+l
SelectCommandArgument
Sélectionne l’argument suivant sur la ligne de commande.
Combinaison par défaut : Alt+a
Vous pouvez souhaiter réexécuter une commande de votre historique en utilisant des valeurs de paramètres différentes. Vous pouvez utiliser la combinaison pour parcourir chaque paramètre et modifier la valeur selon les besoins.
New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM
Appuyez sur Alt+a pour sélectionner l’argument de paramètre suivant à son tour : myRGName
, eastus
, myVM
.
GotoBrace
Déplace le curseur jusqu’à l’accolade correspondante.
Combinaison par défaut : Ctrl+]
Cette fonction déplace votre curseur jusqu’à l’accolade fermante qui correspond à l’accolade à la position actuelle du curseur sur la ligne de commande. La fonction fonctionne pour les crochets ([]
), les accolades ({}
) et les parenthèses (()
).
DigitArgument
Démarrer ou accumuler un argument numérique permet de répéter une touche un nombre de fois spécifié.
Combinaison par défaut : Alt+0
à Alt+9
Par exemple, si vous tapez Alt+4+#, l’entrée ####
est saisie dans la ligne de commande.