Partager via


Utilisation des gestionnaires de clés PSReadLine

Le module PSReadLine fournit des gestionnaires de clés qui mappent les fonctions PSReadLine aux accords clavier. Les accords clavier sont une séquence d’une ou plusieurs séquences de touches qui sont enfoncées en même temps. Par exemple, la combinaison des touches Ctrl+ et Espace est obtenue en les enfonçant en même temps. Une fonction PSReadLine est une action prédéfinie qui peut être effectuée sur une ligne de commande. Par exemple, la MenuComplete fonction vous permet de choisir parmi une liste d’options d’un menu qui termine l’entrée sur la ligne de commande.

PSReadLine a plusieurs gestionnaires de clés prédéfinis qui sont liés par défaut. Vous pouvez également définir vos propres gestionnaires de clés personnalisés. Exécutez la commande suivante pour répertorier les gestionnaires de clés actuellement définis.

Get-PSReadLineKeyHandler

Vous pouvez également obtenir une liste de toutes les fonctions PSReadLine non assignées qui sont disponibles pour être liées à une combinaison de touches.

Get-PSReadLineKeyHandler -Unbound

Vous pouvez utiliser l’applet Set-PSReadLineKeyHandler de commande pour lier une fonction à un gestionnaire de clés. La commande suivante lie la fonction MenuComplete à la combinaison de touches Ctrl et +.

Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete

Recherche de noms de touches et de liaisons d'accords

Les noms des clés dans l’accord 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 est [System.ConsoleKey]D2, tandis que le nom de la touche 2 sur le pavé numérique est NumPad2. Vous pouvez utiliser la [System.Console]::ReadKey() méthode pour rechercher le nom de la touche que vous avez enfoncée.

[System.Console]::ReadKey()

La sortie suivante montre les informations retournées par la ReadKey() méthode pour la combinaison de touches Ctrl+2.

KeyChar Key Modifiers
------- --- ---------
        D2   Control

Pour les applets de commande du gestionnaire de touches PSReadLine, cette séquence de touches est représentée en tant que Ctrl+D2. L’exemple suivant lie cet accord à une fonction.

Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete

Vous pouvez lier plusieurs cordons à une fonction unique. Par défaut, la BackwardDeleteChar fonction est liée à deux chords.

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

Remarque

Le paramètre Chord est sensible à la casse majuscule et minuscule. 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 prochaine combinaison de touches que vous entrez. Lorsque vous tapez Alt+? Vous voyez l’invite suivante :

what-is-key:

Lorsque vous appuyez sur la touche Retour arrière , vous obtenez la réponse suivante :

Backspace: BackwardDeleteChar - Delete the character before the cursor

Gestionnaires de clés sur des ordinateurs non-Windows

Les codes de touche générés par votre clavier peuvent être différents en fonction du système d’exploitation et de l’application terminale que vous utilisez.

macOS

Le clavier Macintosh n’a pas de touche Alt comme les systèmes Windows et Linux. Au lieu de cela, il a la touche d’option ⌥ . macOS utilise cette clé différemment de la touche Alt sur d’autres systèmes. Toutefois, vous pouvez configurer les applications terminal et iTerm2 sur macOS pour les traiter comme une touche Alt .

Configuration de l’application Terminal

Ouvrez la fenêtre Paramètres à partir de la barre d’application dans Terminal.app. Sélectionnez Profils et choisissez le profil que vous souhaitez configurer. Sélectionnez l’onglet Clavier des options de configuration. Sous la liste des clés, sélectionnez l’option Utiliser comme paramètre meta key . Ce paramètre permet à la touche d’option ⌥ d’agir comme Alt dans l’application terminale.

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

Configuration de l’application iTerm2

Ouvrez la fenêtre Paramètres à partir de la barre d’application dans iTerm.app. Sélectionnez Profils et choisissez le profil que vous souhaitez configurer. Sélectionnez l’onglet Clés des options de configuration. Sélectionnez l’option Échap+ pour les paramètres de Touche d’option gauche et Touche d’option droite. Ce paramètre permet à la touche Option ⌥ d’agir comme Alt dans l’application iTerm.

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

Remarque

Les étapes exactes peuvent varier en fonction des versions de macOS et des applications terminales. 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 clé généré peut être différent des autres systèmes. Par exemple:

  • Ctrl+[ est identique à Escape

  • Ctrl+La barre d’espace génère les codes de touche pour Ctrl+D2. Si vous souhaitez mapper une fonction Ctrl+Espace, vous devez utiliser l’accord Ctrl+D2.

    Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
    

Utilisez la ReadKey() méthode pour vérifier les codes de touche générés par votre clavier.

Gestionnaires de clés couramment utilisés

Voici quelques gestionnaires de clés couramment utilisés qui sont liés par défaut sur Windows. Notez que la liaison de clé peut être différente sur les plateformes non-Windows.

Terminez l’entrée en sélectionnant dans un menu des valeurs d’achèvement possibles.

Chord par défaut : Ctrl+Spacebar

L’exemple suivant montre le menu des complétions 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 semi-automatique souhaitée. Appuyez sur La touche Entrée pour terminer l’entrée. Lorsque vous parcourez les sélections, l’aide de la commande sélectionnée s’affiche sous le menu.

ClearScreen

Cette fonction efface l’écran, similaire aux commandes cls ou clear.

Chord par défaut : Ctrl+l

ArgumentDeCommandeDeSélection

Sélectionne l’argument suivant sur la ligne de commande.

Chord par défaut : Alt+a

Vous pouvez avoir une commande dans votre historique que vous souhaitez réexécuter avec différentes valeurs de paramètre. Vous pouvez utiliser l’accord pour parcourir chaque paramètre et modifier la valeur si nécessaire.

New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM

Appuyez sur Alt+pour sélectionner l’argument de paramètre suivant à son tour : myRGName, eastus, myVM.

GotoBrace

Déplace le curseur vers l’accolade correspondante.

Chord par défaut : Ctrl+]

Cette fonction déplace votre curseur vers 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 (()).

ArgumentNumérique

Initiez ou accumulez un argument numérique afin de répéter une frappe de touche le nombre de fois spécifié.

Chord par défaut : Alt+0 via Alt+9

Par exemple, la saisie de alt+4+# entre sur #### la ligne de commande.

Voir aussi