about_PSReadLine

Description courte

PSReadLine fournit une expérience d’édition de ligne de commande améliorée dans la console PowerShell.

Description longue

PSReadLine 2,0 fournit une expérience d’édition de ligne de commande puissante pour la console PowerShell. Il offre :

  • Coloration de la syntaxe de la ligne de commande
  • Indication visuelle des erreurs de syntaxe
  • Une meilleure expérience multi-ligne (modification et historique)
  • Combinaisons de touches personnalisables
  • Modes cmd et Emacs
  • Nombreuses options de configuration
  • Saisie semi-automatique du style bash (facultatif en mode cmd, par défaut en mode emacs)
  • Emacs-Yank/Kill-Ring
  • Déplacement et suppression du « mot » basé sur un jeton PowerShell

PSReadLine nécessite PowerShell 3,0 ou une version plus récente. PSReadLine fonctionne avec l’hôte de console, Visual Studio Code et le Terminal de fenêtre par défaut. Il ne fonctionne pas dans PowerShell ISE.

PSReadLine 2.1.0 est fourni avec PowerShell 7,2 et est pris en charge dans toutes les versions prises en charge de PowerShell. Vous pouvez l’installer à partir du PowerShell Gallery. Pour installer PSReadLine 2.1.0 dans une version prise en charge de PowerShell, exécutez la commande suivante.

Install-Module -Name PSReadLine -RequiredVersion 2.1.0

Notes

à compter de powershell 7,0, powershell ignore le chargement automatique de PSReadLine sur Windows si un programme de lecture d’écran est détecté. Actuellement, PSReadLine ne fonctionne pas correctement avec les lecteurs d’écran. le rendu et la mise en forme par défaut de PowerShell 7,0 sur Windows fonctionnent correctement. Vous pouvez charger le module manuellement, si nécessaire.

Les fonctions suivantes sont disponibles dans la classe Microsoft. PowerShell. PSConsoleReadLine.

Fonctions d’édition de base

Abandon

Annuler l’action en cours, par exemple : recherche de l’historique incrémentiel.

  • Emacs- <Ctrl+g>

AcceptAndGetNext

Tentative d’exécution de l’entrée en cours. Si elle peut être exécutée (par exemple, AcceptLine), rappelez l’élément suivant de l’historique la prochaine fois que ReadLine est appelé.

  • Emacs- <Ctrl+o>

AcceptLine

Tentative d’exécution de l’entrée en cours. Si l’entrée actuelle est incomplète (par exemple, il manque une parenthèse fermante, un crochet ou un guillemet), l’invite de continuation est affichée sur la ligne suivante et PSReadLine attend que les clés modifient l’entrée actuelle.

  • Cmd <Enter>
  • Emacs- <Enter>
  • Mode d’insertion VI : <Enter>

AddLine

L’invite de continuation est affichée sur la ligne suivante et PSReadLine attend que les clés modifient l’entrée actuelle. Cela est utile pour entrer une entrée multiligne sous la forme d’une commande unique, même lorsqu’une seule ligne est complète en entrée.

  • Cmd <Shift+Enter>
  • Emacs- <Shift+Enter>
  • Mode d’insertion VI : <Shift+Enter>
  • Mode de commande VI : <Shift+Enter>

BackwardDeleteChar

Supprimez le caractère avant le curseur.

  • Cmd : <Backspace> , <Ctrl+h>
  • Emacs : <Backspace> , <Ctrl+Backspace> , <Ctrl+h>
  • Mode d’insertion VI : <Backspace>
  • Mode de commande VI : <X> , <d,h>

BackwardDeleteLine

Comme BackwardKillLine-supprime le texte du point jusqu’au début de la ligne, mais ne place pas le texte supprimé dans l’anneau d’arrêt.

  • Cmd <Ctrl+Home>
  • Mode d’insertion VI : <Ctrl+u> , <Ctrl+Home>
  • Mode de commande VI : <Ctrl+u> , <Ctrl+Home> , <d,0>

BackwardDeleteWord

Supprime le mot précédent.

  • Mode de commande VI : <Ctrl+w> , <d,b>

BackwardKillLine

Effacez l’entrée à partir du début de l’entrée jusqu’au curseur. Le texte effacé est placé dans le Kill-Ring.

  • Emacs- <Ctrl+u> , <Ctrl+x,Backspace>

BackwardKillWord

Efface l’entrée du début du mot actuel jusqu’au curseur. Si le curseur se trouve entre des mots, l’entrée est effacée du début du mot précédent au curseur. Le texte effacé est placé dans le Kill-Ring.

  • Cmd : <Ctrl+Backspace> , <Ctrl+w>
  • Emacs- <Alt+Backspace> , <Escape,Backspace>
  • Mode d’insertion VI : <Ctrl+Backspace>
  • Mode de commande VI : <Ctrl+Backspace>

CancelLine

Annule l’entrée actuelle, en laissant l’entrée à l’écran, mais retourne à l’hôte afin que l’invite soit de nouveau évaluée.

  • Mode d’insertion VI : <Ctrl+c>
  • Mode de commande VI : <Ctrl+c>

Copier

Copier la région sélectionnée dans le presse-papiers du système. Si aucune région n’est sélectionnée, copiez la ligne entière.

  • Cmd <Ctrl+C>

CopyOrCancelLine

Si le texte est sélectionné, copiez-le dans le presse-papiers, sinon, annulez la ligne.

  • Cmd <Ctrl+c>
  • Emacs- <Ctrl+c>

Couper

Supprimer la zone sélectionnée en plaçant le texte supprimé dans le presse-papiers du système.

  • Cmd <Ctrl+x>

DeleteChar

Supprimez le caractère sous le curseur.

  • Cmd <Delete>
  • Emacs- <Delete>
  • Mode d’insertion VI : <Delete>
  • Mode de commande VI : <Delete> , <x> , <d,l> , <d,Spacebar>

DeleteCharOrExit

Supprimez le caractère sous le curseur, ou si la ligne est vide, quittez le processus.

  • Emacs- <Ctrl+d>

DeleteEndOfBuffer

Supprime à la fin de la mémoire tampon multiligne.

  • Mode de commande VI : <d,G>

DeleteEndOfWord

Supprimer à la fin du mot.

  • Mode de commande VI : <d,e>

DeleteLine

Supprime la ligne logique actuelle d’une mémoire tampon multiligne, ce qui permet d’annuler.

  • Mode de commande VI : <d,d> , <d,_>

DeletePreviousLines

Supprime les lignes logiques requises précédentes et la ligne logique actuelle dans une mémoire tampon multiligne.

  • Mode de commande VI : <d,k>

DeleteRelativeLines

Supprime du début de la mémoire tampon jusqu’à la ligne logique actuelle dans une mémoire tampon multiligne.

Comme la plupart des commandes VI, la <d,g,g> commande peut être précédée d’un argument numérique qui spécifie un numéro de ligne absolu, qui, avec le numéro de ligne en cours, compose une plage de lignes à supprimer. S’il n’est pas spécifié, l’argument numérique a la valeur par défaut 1, qui fait référence à la première ligne logique dans une mémoire tampon multiligne.

Le nombre réel de lignes à supprimer de la ligne multiligne est calculé comme étant la différence entre le numéro de ligne logique actuel et l’argument numérique spécifié, qui peut donc être négatif. Par conséquent, la partie relative du nom de la méthode.

  • Mode de commande VI : <d,g,g>

DeleteNextLines

Supprime la ligne logique actuelle et les lignes logiques suivantes demandées dans une mémoire tampon multiligne.

  • Mode de commande VI : <d,j>

DeleteLineToFirstChar

Supprime le texte du curseur jusqu’au premier caractère non vide de la ligne.

  • Mode de commande VI : <d,^>

DeleteToEnd

Supprimer à la fin de la ligne.

  • Mode de commande VI : <D> , <d,$>

DeleteWord

Supprimer le mot suivant.

  • Mode de commande VI : <d,w>

ForwardDeleteLine

Comme ForwardKillLine-supprime le texte du point jusqu’à la fin de la ligne, mais ne place pas le texte supprimé dans l’anneau Kill.

  • Cmd <Ctrl+End>
  • Mode d’insertion VI : <Ctrl+End>
  • Mode de commande VI : <Ctrl+End>

InsertLineAbove

Une nouvelle ligne vide est créée au-dessus de la ligne active, quel que soit l’endroit où se trouve le curseur sur la ligne active. Le curseur se déplace au début de la nouvelle ligne.

  • Cmd <Ctrl+Enter>

InsertLineBelow

Une nouvelle ligne vide est créée sous la ligne active, quel que soit l’endroit où se trouve le curseur sur la ligne active. Le curseur se déplace au début de la nouvelle ligne.

  • Cmd <Shift+Ctrl+Enter>

InvertCase

Inverser la casse du caractère actuel et passer au suivant.

  • Mode de commande VI : <~>

KillLine

Effacez l’entrée du curseur jusqu’à la fin de l’entrée. Le texte effacé est placé dans le Kill-Ring.

  • Emacs- <Ctrl+k>

KillRegion

Supprimer le texte situé entre le curseur et la marque.

  • La fonction est indépendante.

KillWord

Efface l’entrée du curseur jusqu’à la fin du mot actuel. Si le curseur se trouve entre des mots, l’entrée est effacée du curseur jusqu’à la fin du mot suivant. Le texte effacé est placé dans le Kill-Ring.

  • Cmd : <Alt+d> , <Ctrl+Delete>
  • Emacs- <Alt+d> , <Escape,d>
  • Mode d’insertion VI : <Ctrl+Delete>
  • Mode de commande VI : <Ctrl+Delete>

Coller

Collez le texte à partir du presse-papiers du système.

  • Cmd : <Ctrl+v> , <Shift+Insert>
  • Mode d’insertion VI : <Ctrl+v>
  • Mode de commande VI : <Ctrl+v>

Important

Lors de l’utilisation de la fonction Paste , le contenu entier de la mémoire tampon du presse-papiers est collé dans la mémoire tampon d’entrée de PSReadLine. La mémoire tampon d’entrée est ensuite transmise à l’analyseur PowerShell. L’entrée collée à l’aide de la méthode de collage avec le bouton droit de la console de l’application de console est copiée dans la mémoire tampon d’entrée un caractère à la fois. La mémoire tampon d’entrée est transmise à l’analyseur lorsqu’un caractère de saut de ligne est copié. Par conséquent, l’entrée est analysée une ligne à la fois. La différence entre les méthodes de collage entraîne un comportement d’exécution différent.

PasteAfter

Collez le presse-papiers après le curseur, en déplaçant le curseur à la fin du texte collé.

  • Mode de commande VI : <p>

PasteBefore

Collez le presse-papiers avant le curseur, en déplaçant le curseur à la fin du texte collé.

  • Mode de commande VI : <P>

PrependAndAccept

Faites précéder un' # 'et acceptez la ligne.

  • Mode de commande VI : <#>

Rétablir

Annule une annulation.

  • Cmd <Ctrl+y>
  • Mode d’insertion VI : <Ctrl+y>
  • Mode de commande VI : <Ctrl+y>

RepeatLastCommand

Répète la dernière modification de texte.

  • Mode de commande VI : <.>

RevertLine

Rétablit toutes les entrées de l’entrée actuelle.

  • Cmd <Escape>
  • Emacs- <Alt+r> , <Escape,r>

ShellBackwardKillWord

Efface l’entrée du début du mot actuel jusqu’au curseur. Si le curseur se trouve entre des mots, l’entrée est effacée du début du mot précédent au curseur. Le texte effacé est placé dans le Kill-Ring.

La fonction est indépendante.

ShellKillWord

Efface l’entrée du curseur jusqu’à la fin du mot actuel. Si le curseur se trouve entre des mots, l’entrée est effacée du curseur jusqu’à la fin du mot suivant. Le texte effacé est placé dans le Kill-Ring.

La fonction est indépendante.

SwapCharacters

Permuter le caractère actuel et celui qui le précèdent.

  • Emacs- <Ctrl+t>
  • Mode d’insertion VI : <Ctrl+t>
  • Mode de commande VI : <Ctrl+t>

Annuler

Annuler une modification précédente.

  • Cmd <Ctrl+z>
  • Emacs- <Ctrl+_> , <Ctrl+x,Ctrl+u>
  • Mode d’insertion VI : <Ctrl+z>
  • Mode de commande VI : <Ctrl+z> , <u>

UndoAll

Annule toutes les modifications précédentes pour la ligne.

  • Mode de commande VI : <U>

UnixWordRubout

Efface l’entrée du début du mot actuel jusqu’au curseur. Si le curseur se trouve entre des mots, l’entrée est effacée du début du mot précédent au curseur. Le texte effacé est placé dans le Kill-Ring.

  • Emacs- <Ctrl+w>

ValidateAndAcceptLine

Tentative d’exécution de l’entrée en cours. Si l’entrée actuelle est incomplète (par exemple, il manque une parenthèse fermante, un crochet ou un guillemet), l’invite de continuation est affichée sur la ligne suivante et PSReadLine attend que les clés modifient l’entrée actuelle.

  • Emacs- <Ctrl+m>

ViAcceptLine

Acceptez la ligne et passez en mode insertion.

  • Mode de commande VI : <Enter>

ViAcceptLineOrExit

Comme DeleteCharOrExit en mode emacs, mais accepte la ligne au lieu de supprimer un caractère.

  • Mode d’insertion VI : <Ctrl+d>
  • Mode de commande VI : <Ctrl+d>

ViAppendLine

Une nouvelle ligne est insérée au-dessous de la ligne active.

  • Mode de commande VI : <o>

ViBackwardDeleteGlob

Supprime le mot précédent, en utilisant uniquement l’espace blanc comme délimiteur de mot.

  • Mode de commande VI : <d,B>

ViBackwardGlob

Déplace le curseur au début du mot précédent, en utilisant uniquement l’espace blanc comme délimiteur.

  • Mode de commande VI : <B>

ViDeleteBrace

Recherchez l’accolade correspondante, la parenthèse ou le crochet, et supprimez tout le contenu dans, y compris l’accolade.

  • Mode de commande VI : <d,%>

ViDeleteEndOfGlob

Supprimer à la fin du mot.

  • Mode de commande VI : <d,E>

ViDeleteGlob

Supprime la glob suivante (mot délimité par des espaces blancs).

  • Mode de commande VI : <d,W>

ViDeleteToBeforeChar

Supprime jusqu’au caractère donné.

  • Mode de commande VI : <d,t>

ViDeleteToBeforeCharBackward

Supprime jusqu’au caractère donné.

  • Mode de commande VI : <d,T>

ViDeleteToChar

Supprime jusqu’au caractère donné.

  • Mode de commande VI : <d,f>

ViDeleteToCharBackward

Supprime vers l’arrière jusqu’au caractère donné.

  • Mode de commande VI : <d,F>

ViInsertAtBegining

Basculez en mode insertion et positionnez le curseur au début de la ligne.

  • Mode de commande VI : <I>

ViInsertAtEnd

Basculez en mode insertion et positionnez le curseur à la fin de la ligne.

  • Mode de commande VI : <A>

ViInsertLine

Une nouvelle ligne est insérée au-dessus de la ligne active.

  • Mode de commande VI : <O>

ViInsertWithAppend

Ajouter à partir de la position de la ligne active.

  • Mode de commande VI : <a>

ViInsertWithDelete

Supprimez le caractère actuel et basculez en mode insertion.

  • Mode de commande VI : <s>

ViJoinLines

Joint la ligne active et la ligne suivante.

  • Mode de commande VI : <J>

ViReplaceLine

Effacez l’intégralité de la ligne de commande.

  • Mode de commande VI : <S> , <c,c>

ViReplaceToBeforeChar

Remplace jusqu’au caractère donné.

  • Mode de commande VI : <c,t>

ViReplaceToBeforeCharBackward

Remplace jusqu’au caractère donné.

  • Mode de commande VI : <c,T>

ViReplaceToChar

Supprime jusqu’au caractère donné.

  • Mode de commande VI : <c,f>

ViReplaceToCharBackward

Remplace jusqu’au caractère donné.

  • Mode de commande VI : <c,F>

ViYankBeginningOfLine

Yank entre le début de la mémoire tampon et le curseur.

  • Mode de commande VI : <y,0>

ViYankEndOfGlob

Yank du curseur jusqu’à la fin du ou des mots.

  • Mode de commande VI : <y,E>

ViYankEndOfWord

Yank du curseur jusqu’à la fin du ou des mots.

  • Mode de commande VI : <y,e>

ViYankLeft

Yank caractère (s) à gauche du curseur.

  • Mode de commande VI : <y,h>

ViYankLine

Yank la mémoire tampon entière.

  • Mode de commande VI : <y,y>

ViYankNextGlob

Yank à partir d’un curseur jusqu’au début du ou des mots suivants.

  • Mode de commande VI : <y,W>

ViYankNextWord

Yank le ou les mots après le curseur.

  • Mode de commande VI : <y,w>

ViYankPercent

Yank à/à partir de l’accolade correspondante.

  • Mode de commande VI : <y,%>

ViYankPreviousGlob

Yank entre le début du ou des mots et le curseur.

  • Mode de commande VI : <y,B>

ViYankPreviousWord

Yank le ou les mots avant le curseur.

  • Mode de commande VI : <y,b>

ViYankRight

Yank caractère (s) situé sous et à droite du curseur.

  • Mode de commande VI : <y,l> , <y,Spacebar>

ViYankToEndOfLine

Yank du curseur jusqu’à la fin de la mémoire tampon.

  • Mode de commande VI : <y,$>

ViYankToFirstChar

Yank du premier caractère autre qu’un espace blanc au curseur.

  • Mode de commande VI : <y,^>

Yank

Ajoutez le texte le plus récemment supprimé à l’entrée.

  • Emacs- <Ctrl+y>

YankLastArg

Yank le dernier argument de la ligne d’historique précédente. Avec un argument, la première fois qu’il est appelé, se comporte comme YankNthArg. Si elle est appelée plusieurs fois, elle itère au sein de l’historique et ARG définit la direction (négatif inverse la direction).

  • Cmd <Alt+.>
  • Emacs : <Alt+.> , <Alt+_> , <Escape,.> , <Escape,_>

YankNthArg

Yank le premier argument (après la commande) à partir de la ligne précédente de l’historique. Avec un argument, Yank le nième argument (à partir de 0), si l’argument est négatif, commencez par le dernier argument.

  • Emacs- <Ctrl+Alt+y> , <Escape,Ctrl+y>

YankPop

Si l’opération précédente était Yank ou YankPop, remplacez le texte précédemment extrait par le texte supprimé suivant de l’instruction KILL-Ring.

  • Emacs- <Alt+y> , <Escape,y>

Fonctions de déplacement de curseur

BackwardChar

Déplacer le curseur d’un caractère vers la gauche. Cela peut déplacer le curseur vers la ligne précédente de l’entrée multiligne.

  • Cmd <LeftArrow>
  • Emacs- <LeftArrow> , <Ctrl+b>
  • Mode d’insertion VI : <LeftArrow>
  • Mode de commande VI : <LeftArrow> , <Backspace> , <h>

BackwardWord

Ramener le curseur au début du mot actuel, ou si entre les mots, le début du mot précédent. Les limites de mots sont définies par un jeu de caractères configurable.

  • Cmd <Ctrl+LeftArrow>
  • Emacs- <Alt+b> , <Escape,b>
  • Mode d’insertion VI : <Ctrl+LeftArrow>
  • Mode de commande VI : <Ctrl+LeftArrow>

BeginningOfLine

Si l’entrée comporte plusieurs lignes, se déplacer au début de la ligne active ou, le cas échéant, au début de la ligne, se déplacer au début de l’entrée. Si l’entrée comporte une seule ligne, accédez au début de l’entrée.

  • Cmd <Home>
  • Emacs- <Home> , <Ctrl+a>
  • Mode d’insertion VI : <Home>
  • Mode de commande VI : <Home>

EndOfLine

Si l’entrée comporte plusieurs lignes, passez à la fin de la ligne active ou, si elle se trouve déjà à la fin de la ligne, à la fin de l’entrée. Si l’entrée comporte une seule ligne, passez à la fin de l’entrée.

  • Cmd <End>
  • Emacs- <End> , <Ctrl+e>
  • Mode d’insertion VI : <End>

ForwardChar

Déplacer le curseur d’un caractère vers la droite. Cela peut déplacer le curseur à la ligne suivante de l’entrée multiligne.

  • Cmd <RightArrow>
  • Emacs- <RightArrow> , <Ctrl+f>
  • Mode d’insertion VI : <RightArrow>
  • Mode de commande VI : <RightArrow> , <Space> , <l>

ForwardWord

Déplacer le curseur vers l’avant jusqu’à la fin du mot actuel, ou si entre les mots, à la fin du mot suivant. Les limites de mots sont définies par un jeu de caractères configurable.

  • Emacs- <Alt+f> , <Escape,f>

GotoBrace

Atteindre l’accolade correspondante, les parenthèses ou les crochets.

  • Cmd <Ctrl+]>
  • Mode d’insertion VI : <Ctrl+]>
  • Mode de commande VI : <Ctrl+]>

GotoColumn

Accédez à la colonne indiquée par arg.

  • Mode de commande VI : <|>

GotoFirstNonBlankOfLine

Placez le curseur sur le premier caractère non vide de la ligne.

  • Mode de commande VI : <^> , <_>

MoveToEndOfLine

Placez le curseur à la fin de l’entrée.

  • Mode de commande VI : <End> , <$>

NextLine

Déplacer le curseur sur la ligne suivante.

  • La fonction est indépendante.

NextWord

Déplacer le curseur vers l’avant jusqu’au début du mot suivant. Les limites de mots sont définies par un jeu de caractères configurable.

  • Cmd <Ctrl+RightArrow>
  • Mode d’insertion VI : <Ctrl+RightArrow>
  • Mode de commande VI : <Ctrl+RightArrow>

NextWordEnd

Déplacer le curseur vers l’avant jusqu’à la fin du mot actuel, ou si entre les mots, à la fin du mot suivant. Les limites de mots sont définies par un jeu de caractères configurable.

  • Mode de commande VI : <e>

PreviousLine

Placez le curseur sur la ligne précédente.

  • La fonction est indépendante.

ShellBackwardWord

Ramener le curseur au début du mot actuel, ou si entre les mots, le début du mot précédent. Les limites de mots sont définies par les jetons PowerShell.

  • La fonction est indépendante.

ShellForwardWord

Déplacer le curseur vers l’avant jusqu’au début du mot suivant. Les limites de mots sont définies par les jetons PowerShell.

  • La fonction est indépendante.

ShellNextWord

Déplacer le curseur vers l’avant jusqu’à la fin du mot actuel, ou si entre les mots, à la fin du mot suivant. Les limites de mots sont définies par les jetons PowerShell.

  • La fonction est indépendante.

ViBackwardChar

Déplacer le curseur d’un caractère vers la gauche en mode d’édition VI. Cela peut déplacer le curseur vers la ligne précédente de l’entrée multiligne.

  • Mode d’insertion VI : <LeftArrow>
  • Mode de commande VI : <LeftArrow> , <Backspace> , <h>

ViBackwardWord

Ramener le curseur au début du mot actuel, ou si entre les mots, le début du mot précédent. Les limites de mots sont définies par un jeu de caractères configurable.

  • Mode de commande VI : <b>

ViForwardChar

Déplacer le curseur d’un caractère vers la droite en mode d’édition VI. Cela peut déplacer le curseur à la ligne suivante de l’entrée multiligne.

  • Mode d’insertion VI : <RightArrow>
  • Mode de commande VI : <RightArrow> , <Spacebar> , <l>

ViEndOfGlob

Déplace le curseur à la fin du mot, en utilisant uniquement l’espace blanc comme délimiteurs.

  • Mode de commande VI : <E>

ViEndOfPreviousGlob

Passe à la fin du mot précédent, en utilisant uniquement l’espace blanc comme délimiteur de mot.

  • La fonction est indépendante.

ViGotoBrace

Semblable à GotoBrace, mais est basé sur un caractère et non sur un jeton.

  • Mode de commande VI : <%>

ViNextGlob

Passe au mot suivant, en utilisant uniquement l’espace blanc comme délimiteur de mot.

  • Mode de commande VI : <W>

ViNextWord

Déplacer le curseur vers l’avant jusqu’au début du mot suivant. Les limites de mots sont définies par un jeu de caractères configurable.

  • Mode de commande VI : <w>

Fonctions d’historique

BeginningOfHistory

Accéder au premier élément de l’historique.

  • Emacs- <Alt+<>

ClearHistory

Efface l’historique dans PSReadLine. Cela n’affecte pas l’historique PowerShell.

  • Cmd <Alt+F7>

EndOfHistory

Accéder au dernier élément (l’entrée en cours) dans l’historique.

  • Emacs- <Alt+>>

ForwardSearchHistory

Effectuer une recherche incrémentielle par progression dans l’historique.

  • Cmd <Ctrl+s>
  • Emacs- <Ctrl+s>

HistorySearchBackward

Remplacez l’entrée actuelle par l’élément « Previous » de l’historique PSReadLine qui correspond aux caractères entre le début et l’entrée et le curseur.

  • Cmd <F8>

HistorySearchForward

Remplacez l’entrée actuelle par l’élément « Next » de l’historique PSReadLine qui correspond aux caractères entre le début et l’entrée et le curseur.

  • Cmd <Shift+F8>

NextHistory

Remplacez l’entrée actuelle par l’élément « Next » de l’historique PSReadLine.

  • Cmd <DownArrow>
  • Emacs- <DownArrow> , <Ctrl+n>
  • Mode d’insertion VI : <DownArrow>
  • Mode de commande VI : <DownArrow> , <j> , <+>

PreviousHistory

Remplacez l’entrée actuelle par l’élément « Previous » de l’historique PSReadLine.

  • Cmd <UpArrow>
  • Emacs- <UpArrow> , <Ctrl+p>
  • Mode d’insertion VI : <UpArrow>
  • Mode de commande VI : <UpArrow> , <k> , <->

ReverseSearchHistory

Effectuer une recherche incrémentielle incrémentielle dans l’historique.

  • Cmd <Ctrl+r>
  • Emacs- <Ctrl+r>

ViSearchHistoryBackward

Demande une chaîne de recherche et lance la recherche sur AcceptLine.

  • Mode d’insertion VI : <Ctrl+r>
  • Mode de commande VI : </> , <Ctrl+r>

Fonctions d’achèvement

Terminé

Tentative d’exécution de l’opération sur le texte entourant le curseur. S’il existe plusieurs saisies semi-automatiques possibles, le plus long préfixe non ambigu est utilisé pour la finalisation. Si vous essayez de terminer la saisie semi-automatique la plus longue, une liste des saisies semi-automatiques possibles s’affiche.

  • Emacs- <Tab>

Tentative d’exécution de l’opération sur le texte entourant le curseur. S’il existe plusieurs saisies semi-automatiques possibles, le plus long préfixe non ambigu est utilisé pour la finalisation. Si vous essayez de terminer la saisie semi-automatique la plus longue, une liste des saisies semi-automatiques possibles s’affiche.

  • Cmd : <Ctrl+@> , <Ctrl+Spacebar>
  • Emacs- <Ctrl+Spacebar>

PossibleCompletions

Affiche la liste des saisies semi-automatiques possibles.

  • Emacs- <Alt+=>
  • Mode d’insertion VI : <Ctrl+Spacebar>
  • Mode de commande VI : <Ctrl+Spacebar>

TabCompleteNext

Tente de terminer le texte entourant le curseur avec la prochaine saisie semi-automatique disponible.

  • Cmd <Tab>
  • Mode de commande VI : <Tab>

TabCompletePrevious

Tente de terminer le texte entourant le curseur avec l’achèvement disponible précédent.

  • Cmd <Shift+Tab>
  • Mode de commande VI : <Shift+Tab>

ViTabCompleteNext

Met fin au groupe d’édition actuel, si nécessaire, et appelle TabCompleteNext.

  • Mode d’insertion VI : <Tab>

ViTabCompletePrevious

Met fin au groupe d’édition actuel, si nécessaire, et appelle TabCompletePrevious.

  • Mode d’insertion VI : <Shift+Tab>

Fonctions diverses

AcceptNextSuggestionWord

Accepter le mot suivant de la suggestion inline ou sélectionnée.

  • La fonction est indépendante.

AcceptSuggestion

Acceptez la suggestion en ligne ou la suggestion sélectionnée.

  • La fonction est indépendante.

CaptureScreen

Démarrer la capture d’écran interactive-flèches haut et bas sélectionnez lignes, entrez copie le texte sélectionné dans le presse-papiers en tant que texte et HTML.

  • La fonction est indépendante.

ClearScreen

Effacez l’écran et dessinez la ligne active en haut de l’écran.

  • Cmd <Ctrl+l>
  • Emacs- <Ctrl+l>
  • Mode d’insertion VI : <Ctrl+l>
  • Mode de commande VI : <Ctrl+l>

DigitArgument

Démarrez un nouvel argument digit à passer à d’autres fonctions.

  • Cmd : <Alt+0> ,,,,, <Alt+1> <Alt+2> <Alt+3> <Alt+4> <Alt+5> , <Alt+6> , <Alt+7> , <Alt+8> , <Alt+9> , <Alt+->
  • Emacs-,,,,,,,,, <Alt+0> <Alt+1> <Alt+2> <Alt+3> <Alt+4> <Alt+5> <Alt+6> <Alt+7> <Alt+8> , <Alt+9> , <Alt+->
  • Mode de commande VI : <0> , <1> ,, <2> <3> , <4> , <5> , <6> , <7> , <8> , <9>

InvokePrompt

Efface l’invite en cours et appelle la fonction prompt pour réafficher l’invite. Utile pour les gestionnaires de clés personnalisés qui modifient l’État. Par exemple, modifiez le répertoire actif.

  • La fonction est indépendante.

ScrollDisplayDown

Faites défiler l’écran vers le volet d’affichage.

  • Cmd <PageDown>
  • Emacs- <PageDown>

ScrollDisplayDownLine

Faites défiler l’affichage d’une ligne vers le dessous.

  • Cmd <Ctrl+PageDown>
  • Emacs- <Ctrl+PageDown>

ScrollDisplayToCursor

Faites défiler l’affichage jusqu’au curseur.

  • Emacs- <Ctrl+End>

ScrollDisplayTop

Faites défiler l’affichage vers le haut.

  • Emacs- <Ctrl+Home>

ScrollDisplayUp

Faites défiler l’écran afficher vers le haut.

  • Cmd <PageUp>
  • Emacs- <PageUp>

ScrollDisplayUpLine

Faites défiler l’affichage d’une ligne vers le haut.

  • Cmd <Ctrl+PageUp>
  • Emacs- <Ctrl+PageUp>

SelfInsert

Insérez la clé.

  • La fonction est indépendante.

ShowKeyBindings

Affiche toutes les clés liées.

  • Cmd <Ctrl+Alt+?>
  • Emacs- <Ctrl+Alt+?>
  • Mode d’insertion VI : <Ctrl+Alt+?>

ViCommandMode

Basculez le mode d’opération actuel de Vi-Insert à VI-Command.

  • Mode d’insertion VI : <Escape>

ViDigitArgumentInChord

Démarrez un nouvel argument digit à passer à d’autres fonctions dans l’un des cordes de VI.

  • La fonction est indépendante.

ViEditVisually

Modifiez la ligne de commande dans un éditeur de texte spécifié par $env : EDITOR ou $env : VISUAL.

  • Emacs- <Ctrl+x,Ctrl+e>
  • Mode de commande VI : <v>

ViExit

Quitte l’interpréteur de commandes.

  • La fonction est indépendante.

ViInsertMode

Basculez en mode insertion.

  • Mode de commande VI : <i>

WhatIsKey

Lisez une clé et dites-moi à quoi la clé est liée.

  • Cmd <Alt+?>
  • Emacs- <Alt+?>

Fonctions de sélection

ExchangePointAndMark

Le curseur est placé à l’emplacement de la marque et la marque est déplacée vers l’emplacement du curseur.

  • Emacs- <Ctrl+x,Ctrl+x>

SelectAll

Sélectionnez la ligne entière.

  • Cmd <Ctrl+a>

SelectBackwardChar

Ajustez la sélection actuelle pour inclure le caractère précédent.

  • Cmd <Shift+LeftArrow>
  • Emacs- <Shift+LeftArrow>

SelectBackwardsLine

Ajustez la sélection actuelle à inclure à partir du curseur jusqu’au début de la ligne.

  • Cmd <Shift+Home>
  • Emacs- <Shift+Home>

SelectBackwardWord

Ajustez la sélection actuelle pour inclure le mot précédent.

  • Cmd <Shift+Ctrl+LeftArrow>
  • Emacs- <Alt+B>

SelectForwardChar

Ajustez la sélection actuelle pour inclure le caractère suivant.

  • Cmd <Shift+RightArrow>
  • Emacs- <Shift+RightArrow>

SelectForwardWord

Ajustez la sélection actuelle pour inclure le mot suivant à l’aide de ForwardWord.

  • Emacs- <Alt+F>

SelectLine

Ajustez la sélection actuelle à inclure à partir du curseur jusqu’à la fin de la ligne.

  • Cmd <Shift+End>
  • Emacs- <Shift+End>

SelectNextWord

Ajustez la sélection actuelle pour inclure le mot suivant.

  • Cmd <Shift+Ctrl+RightArrow>

SelectShellBackwardWord

Ajustez la sélection actuelle pour inclure le mot précédent à l’aide de ShellBackwardWord.

  • La fonction est indépendante.

SelectShellForwardWord

Ajustez la sélection actuelle pour inclure le mot suivant à l’aide de ShellForwardWord.

  • La fonction est indépendante.

SelectShellNextWord

Ajustez la sélection actuelle pour inclure le mot suivant à l’aide de ShellNextWord.

  • La fonction est indépendante.

SetMark

Marquez l’emplacement actuel du curseur pour une utilisation dans une commande d’édition suivante.

  • Emacs- <Ctrl+@>

Fonctions IntelliSense prédictives

Notes

La fonctionnalité IntelliSense prédictive doit être activée pour utiliser ces fonctions.

AcceptNextWordSuggestion

Accepte le mot suivant de la suggestion en ligne de la fonctionnalité IntelliSense prédictive. Cette fonction peut être liée à l’aide de CTRL + F en exécutant la commande suivante.

Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord

AcceptSuggestion

Accepte la suggestion en ligne actuelle de la fonctionnalité IntelliSense prédictive en appuyant sur flèche droite lorsque le curseur se trouve à la fin de la ligne active.

Fonctions de recherche

CharacterSearch

Lisez un caractère et recherchez l’occurrence suivante de ce caractère. Si un argument est spécifié, effectuez une recherche vers l’avant (ou vers l’arrière si négatif) pour la nième occurrence.

  • Cmd <F3>
  • Emacs- <Ctrl+]>
  • Mode d’insertion VI : <F3>
  • Mode de commande VI : <F3>

CharacterSearchBackward

Lisez un caractère et recherchez l’occurrence suivante de ce caractère. Si un argument est spécifié, effectuez une recherche vers l’arrière (ou vers l’avant si négatif) pour la nième occurrence.

  • Cmd <Shift+F3>
  • Emacs- <Ctrl+Alt+]>
  • Mode d’insertion VI : <Shift+F3>
  • Mode de commande VI : <Shift+F3>

RepeatLastCharSearch

Répète la dernière recherche de caractères enregistrée.

  • Mode de commande VI : <;>

RepeatLastCharSearchBackwards

Répète la dernière recherche de caractères enregistrée, mais dans la direction opposée.

  • Mode de commande VI : <,>

RepeatSearch

Répétez la dernière recherche dans la même direction que précédemment.

  • Mode de commande VI : <n>

RepeatSearchBackward

Répétez la dernière recherche dans la même direction que précédemment.

  • Mode de commande VI : <N>

SearchChar

Lisez le caractère suivant, puis recherchez-le, à l’avenir, puis annulez un caractère. Il s’agit de la fonctionnalité’t'.

  • Mode de commande VI : <f>

SearchCharBackward

Lisez le caractère suivant, puis recherchez-le, en accédant à l’arrière, puis en annulant un caractère. Il s’agit de la fonctionnalité’t'.

  • Mode de commande VI : <F>

SearchCharBackwardWithBackoff

Lisez le caractère suivant, puis recherchez-le, en accédant à l’arrière, puis en annulant un caractère. Il s’agit de la fonctionnalité’t'.

  • Mode de commande VI : <T>

SearchCharWithBackoff

Lisez le caractère suivant, puis recherchez-le, à l’avenir, puis annulez un caractère. Il s’agit de la fonctionnalité’t'.

  • Mode de commande VI : <t>

SearchForward

Demande une chaîne de recherche et lance la recherche sur AcceptLine.

  • Mode d’insertion VI : <Ctrl+s>
  • Mode de commande VI : <?> , <Ctrl+s>

Combinaisons de touches personnalisées

PSReadLine prend en charge les combinaisons de touches personnalisées à l’aide de l’applet de commande Set-PSReadLineKeyHandler . La plupart des combinaisons de touches personnalisées appellent l’une des fonctions ci-dessus, par exemple

Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward

Vous pouvez lier un ScriptBlock à une clé. Le ScriptBlock peut faire à peu près tout ce que vous voulez. Voici quelques exemples utiles :

  • modifier la ligne de commande
  • ouverture d’une nouvelle fenêtre (par exemple, aide)
  • modifier les répertoires sans modifier la ligne de commande

Le ScriptBlock reçoit deux arguments :

  • $key -Objet [ConsoleKeyInfo] qui est la clé qui a déclenché la liaison personnalisée. Si vous liez le même ScriptBlock à plusieurs clés et que vous devez effectuer des actions différentes en fonction de la clé, vous pouvez vérifier $key. De nombreuses liaisons personnalisées ignorent cet argument.

  • $arg : Argument arbitraire. Le plus souvent, il s’agit d’un argument entier que l’utilisateur passe à partir des combinaisons de touches DigitArgument. Si votre liaison n’accepte pas d’arguments, il est raisonnable d’ignorer cet argument.

Jetons un coup d’œil à un exemple qui ajoute une ligne de commande à l’historique sans l’exécuter. Cela est utile lorsque vous vous rendez compte que vous avez oublié d’effectuer une opération, mais que vous ne voulez pas entrer à nouveau la ligne de commande que vous avez déjà entrée.

$parameters = @{
    Key = 'Alt+w'
    BriefDescription = 'SaveInHistory'
    LongDescription = 'Save current line in history but do not execute'
    ScriptBlock = {
      param($key, $arg)   # The arguments are ignored in this example

      # GetBufferState gives us the command line (with the cursor position)
      $line = $null
      $cursor = $null
      [Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line,
        [ref]$cursor)

      # AddToHistory saves the line in history, but does not execute it.
      [Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory($line)

      # RevertLine is like pressing Escape.
      [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
  }
}
Set-PSReadLineKeyHandler @parameters

Vous pouvez voir beaucoup plus d’exemples dans le fichier SamplePSReadLineProfile.ps1 qui est installé dans le dossier du module PSReadLine.

La plupart des combinaisons de touches utilisent des fonctions d’assistance pour la modification de la ligne de commande. Ces API sont documentées dans la section suivante.

API de prise en charge de la liaison de clé personnalisée

Les fonctions suivantes sont publiques dans Microsoft. PowerShell. PSConsoleReadLine, mais ne peuvent pas être directement liées à une clé. La plupart sont utiles dans les combinaisons de touches personnalisées.

void AddToHistory(string command)

Ajoutez une ligne de commande à l’historique sans l’exécuter.

void ClearKillRing()

Effacez le point d’arrêt. Cela est principalement utilisé pour les tests.

void Delete(int start, int length)

Supprimer les caractères de longueur du début. Cette opération prend en charge les opérations d’annulation et de rétablissement.

void Ding()

Effectuez l’action Ding en fonction des préférences de l’utilisateur.

void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
  [ref] ParseError[] parseErrors, [ref] int cursor)

Ces deux fonctions récupèrent des informations utiles sur l’état actuel de la mémoire tampon d’entrée. La première est plus couramment utilisée dans les cas simples. Le second est utilisé si votre liaison fait une opération plus avancée avec l’AST.

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(bool includeBound, bool includeUnbound)

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(string[] Chord)

Ces deux fonctions sont utilisées par Get-PSReadLineKeyHandler . La première est utilisée pour récupérer toutes les combinaisons de touches. Le second est utilisé pour recevoir des combinaisons de touches spécifiques.

Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()

Cette fonction est utilisée par Get-PSReadLineOption et n’est probablement pas trop utile dans une liaison de clé personnalisée.

void GetSelectionState([ref] int start, [ref] int length)

Si aucune sélection n’est effectuée sur la ligne de commande, la fonction retourne-1 à la fois dans Start et length. Si une sélection est effectuée sur la ligne de commande, le début et la longueur de la sélection sont retournés.

void Insert(char c)
void Insert(string s)

Insérez un caractère ou une chaîne au niveau du curseur. Cette opération prend en charge les opérations d’annulation et de rétablissement.

string ReadLine(runspace remoteRunspace,
  System.Management.Automation.EngineIntrinsics engineIntrinsics)

Il s’agit du point d’entrée principal de PSReadLine. Comme il ne prend pas en charge la récursivité, il n’est pas utile dans une liaison de clé personnalisée.

void RemoveKeyHandler(string[] key)

Cette fonction est utilisée par Remove-PSReadLineKeyHandler et n’est probablement pas trop utile dans une liaison de clé personnalisée.

void Replace(int start, int length, string replacement)

Remplacez une partie de l’entrée. Cette opération prend en charge les opérations d’annulation et de rétablissement. C’est préférable à Delete, suivi de Insert, car il est traité comme une action unique pour Undo.

void SetCursorPosition(int cursor)

Déplacer le curseur vers l’offset donné. Le déplacement du curseur n’est pas suivi pour l’annulation.

void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)

Cette fonction est une méthode d’assistance utilisée par l’applet de commande Set-PSReadLineOption, mais peut être utile pour une combinaison de touches personnalisée qui souhaite modifier temporairement un paramètre.

bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
  int defaultNumericArg)

Cette méthode d’assistance est utilisée pour les liaisons personnalisées qui respectent DigitArgument. Un appel classique ressemble à ce qui suit.

[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
  [ref]$numericArg, 1)

Notes

Historique des commandes

PSReadLine gère un fichier d’historique contenant toutes les commandes et données que vous avez entrées à partir de la ligne de commande. Les fichiers d’historique sont un fichier nommé $($host.Name)_history.txt . sur Windows systèmes, le fichier d’historique est stocké dans $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine . sur les systèmes non-Windows, les fichiers d’historique sont stockés dans $env:XDG_DATA_HOME/powershell/PSReadLine ou $env:HOME/.local/share/powershell/PSReadLine .

L’historique peut contenir des données sensibles, y compris des mots de passe. PSReadLine tente de filtrer les informations sensibles. Les lignes de commande contenant les chaînes suivantes ne sont pas écrites dans le fichier d’historique.

  • mot de passe
  • AsPlainText
  • token
  • apikey
  • secret

Commentaires & contribution à PSReadLine

PSReadLine sur GitHub

n’hésitez pas à envoyer une demande de tirage ou à envoyer des commentaires sur la page de GitHub.

Voir aussi

PSReadLine est fortement influencé par la bibliothèque GNU ReadLine .