Partager via


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.

Capture d’écran des paramètres Terminal.app.

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.

Capture d’écran des paramètres iTerm.app.

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.

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.

Voir aussi