Partager via


Set-PSReadLineOption

Personnalise le comportement de la modification de ligne de commande dans PSReadLine.

Syntax

Set-PSReadLineOption
   [-EditMode <EditMode>]
   [-ContinuationPrompt <String>]
   [-HistoryNoDuplicates]
   [-AddToHistoryHandler <System.Func[System.String,System.Object]>]
   [-CommandValidationHandler <System.Action[System.Management.Automation.Language.CommandAst]>]
   [-HistorySearchCursorMovesToEnd]
   [-MaximumHistoryCount <Int32>]
   [-MaximumKillRingCount <Int32>]
   [-ShowToolTips]
   [-ExtraPromptLineCount <Int32>]
   [-DingTone <Int32>]
   [-DingDuration <Int32>]
   [-BellStyle <BellStyle>]
   [-CompletionQueryItems <Int32>]
   [-WordDelimiters <String>]
   [-HistorySearchCaseSensitive]
   [-HistorySaveStyle <HistorySaveStyle>]
   [-HistorySavePath <String>]
   [-AnsiEscapeTimeout <Int32>]
   [-PromptText <String[]>]
   [-ViModeIndicator <ViModeStyle>]
   [-ViModeChangeHandler <ScriptBlock>]
   [-Colors <Hashtable>]
   [-PredictionSource <PredictionSource>]
   [<CommonParameters>]

Description

L’applet Set-PSReadLineOption de commande personnalise le comportement du module PSReadLine lorsque vous modifiez la ligne de commande. Pour afficher les paramètres PSReadLine , utilisez Get-PSReadLineOption.

Exemples

Exemple 1 : Définir les couleurs de premier plan et d’arrière-plan

Cet exemple montre comment définir PSReadLine pour qu’il affiche le jeton Comment avec du texte de premier plan vert sur un arrière-plan gris. Dans la séquence d’échappement utilisée dans l’exemple, 32 représente la couleur de premier plan et 47 représente la couleur d’arrière-plan.

Set-PSReadLineOption -Colors @{ "Comment"="`e[32;47m" }

Vous pouvez choisir de définir uniquement une couleur de texte de premier plan. Par exemple, une couleur de texte vert clair au premier plan pour le jeton Commentaire : "Comment"="`e[92m".

Exemple 2 : Définir le style de cloche

Dans cet exemple, PSReadLine répond aux erreurs ou aux conditions qui nécessitent l’attention de l’utilisateur. Le BellStyle est configuré pour émettre un bip audible à 1221 Hz pendant 60 ms.

Set-PSReadLineOption -BellStyle Audible -DingTone 1221 -DingDuration 60

Notes

Cette fonctionnalité peut ne pas fonctionner dans tous les hôtes sur les plateformes.

Exemple 3 : Définir plusieurs options

Set-PSReadLineOption peut définir plusieurs options avec une table de hachage.

$PSReadLineOptions = @{
    EditMode = "Emacs"
    HistoryNoDuplicates = $true
    HistorySearchCursorMovesToEnd = $true
    Colors = @{
        "Command" = "#8181f7"
    }
}
Set-PSReadLineOption @PSReadLineOptions

La $PSReadLineOptions table de hachage définit les clés et les valeurs. Set-PSReadLineOption utilise les clés et les valeurs avec @PSReadLineOptions pour mettre à jour les options PSReadLine .

Vous pouvez afficher les clés et les valeurs entrant le nom de la table de hachage sur $PSReadLineOptions la ligne de commande PowerShell.

Exemple 4 : Définir plusieurs options de couleur

Cet exemple montre comment définir plusieurs valeurs de couleur dans une seule commande.

Set-PSReadLineOption -Colors @{
  Command            = 'Magenta'
  Number             = 'DarkGray'
  Member             = 'DarkGray'
  Operator           = 'DarkGray'
  Type               = 'DarkGray'
  Variable           = 'DarkGreen'
  Parameter          = 'DarkGreen'
  ContinuationPrompt = 'DarkGray'
  Default            = 'DarkGray'
}

Exemple 5 : Définir des valeurs de couleur pour plusieurs types

Cet exemple montre trois méthodes différentes pour définir la couleur des jetons affichés dans PSReadLine.

Set-PSReadLineOption -Colors @{
 # Use a ConsoleColor enum
 "Error" = [ConsoleColor]::DarkRed

 # 24 bit color escape sequence
 "String" = "$([char]0x1b)[38;5;100m"

 # RGB value
 "Command" = "#8181f7"
}

Exemple 6 : Utiliser ViModeChangeHandler pour afficher les modifications du mode Vi

Cet exemple émet une échappement VT de modification du curseur en réponse à un changement de mode Vi .

function OnViModeChange {
    if ($args[0] -eq 'Command') {
        # Set the cursor to a blinking block.
        Write-Host -NoNewLine "`e[1 q"
    } else {
        # Set the cursor to a blinking line.
        Write-Host -NoNewLine "`e[5 q"
    }
}
Set-PSReadLineOption -ViModeIndicator Script -ViModeChangeHandler $Function:OnViModeChange

La fonction OnViModeChange définit les options de curseur pour les modes Vi : insertion et commande. ViModeChangeHandler utilise le Function: fournisseur pour référencer OnViModeChange en tant qu’objet de bloc de script.

Pour plus d'informations, consultez about_Providers.

Paramètres

-AddToHistoryHandler

Spécifie un ScriptBlock qui contrôle les commandes ajoutées à l’historique PSReadLine .

ScriptBlock reçoit la ligne de commande en tant qu’entrée. Si le ScriptBlock retourne $True, la ligne de commande est ajoutée à l’historique.

Type:Func<T,TResult>[System.String,System.Object]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AnsiEscapeTimeout

Cette option est spécifique à Windows lorsque l’entrée est redirigée, par exemple, lors de l’exécution sous tmux ou screen.

Avec une entrée redirigée sur Windows, de nombreuses clés sont envoyées sous la forme d’une séquence de caractères commençant par le caractère d’échappement. Il est impossible de faire la distinction entre un caractère d’échappement unique suivi d’autres caractères et une séquence d’échappement valide.

L’hypothèse est que le terminal peut envoyer les caractères plus rapidement qu’un type d’utilisateur. PSReadLine attend ce délai d’expiration avant de conclure qu’elle a reçu une séquence d’échappement complète.

Si vous voyez des caractères aléatoires ou inattendus lorsque vous tapez, vous pouvez ajuster ce délai d’expiration.

Type:Int32
Position:Named
Default value:100
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BellStyle

Spécifie la façon dont PSReadLine répond à diverses erreurs et conditions ambiguës.

Les valeurs valides sont les suivantes :

  • Audible : un bip court.
  • Visuel : le texte clignote brièvement.
  • Aucun : aucun commentaire.
Type:BellStyle
Position:Named
Default value:Audible
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Colors

Le paramètre Colors spécifie différentes couleurs utilisées par PSReadLine.

L’argument est une table de hachage où les clés spécifient quel élément et les valeurs spécifient la couleur. Pour plus d’informations, consultez about_Hash_Tables.

Les couleurs peuvent être une valeur de ConsoleColor, par exemple [ConsoleColor]::Red, ou une séquence d’échappement ANSI valide. Les séquences d’échappement valides dépendent de votre terminal. Dans PowerShell 5.0, un exemple de séquence d’échappement pour le texte rouge est $([char]0x1b)[91m. Dans PowerShell 6 et versions ultérieures, la même séquence d’échappement est `e[91m. Vous pouvez spécifier d’autres séquences d’échappement, notamment les types suivants :

  • 256 couleurs
  • Couleur 24 bits
  • Premier plan, arrière-plan ou les deux
  • Inverse, gras

Pour plus d’informations sur les codes de couleur ANSI, consultez Code d’échappement ANSI dans Wikipédia.

Les clés valides sont les suivantes :

  • ContinuationPrompt : couleur de l’invite de continuation.
  • Accentuation : couleur d’accentuation. Par exemple, le texte correspondant lors de la recherche dans l’historique.
  • Erreur : couleur d’erreur. Par exemple, dans l’invite.
  • Sélection : couleur permettant de mettre en surbrillance la sélection de menu ou le texte sélectionné.
  • Par défaut : couleur de jeton par défaut.
  • Commentaire : couleur du jeton de commentaire.
  • Mot clé : couleur du jeton mot clé.
  • String : couleur du jeton de chaîne.
  • Opérateur : couleur du jeton d’opérateur.
  • Variable : couleur du jeton variable.
  • Commande : couleur du jeton de commande.
  • Paramètre : couleur du jeton de paramètre.
  • Type : couleur du jeton de type.
  • Nombre : couleur du jeton de numéro.
  • Membre : couleur du jeton de nom de membre.
  • InlinePrediction : couleur de la vue inline de la suggestion prédictive.
Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandValidationHandler

Spécifie un ScriptBlock appelé à partir de ValidateAndAcceptLine. Si une exception est levée, la validation échoue et l’erreur est signalée.

Avant de lever une exception, le gestionnaire de validation peut placer le curseur au point de l’erreur pour faciliter la correction. Un gestionnaire de validation peut également modifier la ligne de commande, par exemple pour corriger les erreurs typographiques courantes.

ValidateAndAcceptLine est utilisé pour éviter d’encombrer votre historique avec des commandes qui ne peuvent pas fonctionner.

Type:Action<T>[CommandAst]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CompletionQueryItems

Spécifie le nombre maximal d’éléments d’achèvement affichés sans invite.

Si le nombre d’éléments à afficher est supérieur à cette valeur, PSReadLine invite oui/non avant d’afficher les éléments d’achèvement.

Type:Int32
Position:Named
Default value:100
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContinuationPrompt

Spécifie la chaîne affichée au début des lignes suivantes lorsque l’entrée multiligne est entrée. La valeur par défaut est double supérieur à des signes (>>). Une chaîne vide est valide.

Type:String
Position:Named
Default value:>>
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DingDuration

Spécifie la durée du bip lorsque BellStyle est défini sur Audible.

Type:Int32
Position:Named
Default value:50ms
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DingTone

Spécifie la tonalité en Hertz (Hz) du bip lorsque BellStyle est défini sur Audible.

Type:Int32
Position:Named
Default value:1221
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EditMode

Spécifie le mode d’édition de ligne de commande. L’utilisation de ce paramètre réinitialise toutes les liaisons de clé définies par Set-PSReadLineKeyHandler.

Les valeurs valides sont les suivantes :

  • Windows : les liaisons de clés émulent PowerShell, cmd et Visual Studio.
  • Emacs : les liaisons de clés émulent Bash ou Emacs.
  • Vi : les liaisons de clés émulent Vi.

Utilisez Get-PSReadLineKeyHandler pour voir les liaisons de clés pour l’EditMode actuellement configuré.

Type:EditMode
Position:Named
Default value:Windows
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ExtraPromptLineCount

Spécifie le nombre de lignes supplémentaires.

Si votre invite s’étend sur plusieurs lignes, spécifiez une valeur pour ce paramètre. Utilisez cette option lorsque vous souhaitez que des lignes supplémentaires soient disponibles lorsque PSReadLine affiche l’invite après avoir affiché une sortie. Par exemple, PSReadLine retourne une liste d’achèvements.

Cette option est moins nécessaire que dans les versions précédentes de PSReadLine, mais elle est utile lorsque la InvokePrompt fonction est utilisée.

Type:Int32
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HistoryNoDuplicates

Cette option contrôle le comportement de rappel. Les commandes en double sont toujours ajoutées au fichier d’historique. Lorsque cette option est définie, seul l’appel le plus récent s’affiche lors du rappel des commandes. Des commandes répétées sont ajoutées à l’historique pour préserver l’ordre pendant le rappel. Toutefois, vous ne souhaitez généralement pas voir la commande plusieurs fois lors du rappel ou de la recherche dans l’historique.

Par défaut, la propriété HistoryNoDuplicates de l’objet PSConsoleReadLineOptions global est définie sur True. L’utilisation de ce CommutateurParameter définit la valeur de la propriété sur True. Pour modifier la valeur de la propriété, vous devez spécifier la valeur du SwitchParameter comme suit : -HistoryNoDuplicates:$False.

À l’aide de la commande suivante, vous pouvez définir la valeur de la propriété directement :

(Get-PSReadLineOption).HistoryNoDuplicates = $False

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HistorySavePath

Spécifie le chemin d’accès au fichier dans lequel l’historique est enregistré. Les ordinateurs exécutant des plateformes Windows ou non Windows stockent le fichier à différents emplacements. Le nom de fichier est stocké dans une variable $($host.Name)_history.txt, par exemple ConsoleHost_history.txt.

Si vous n’utilisez pas ce paramètre, le chemin par défaut est le suivant :

Windows

  • $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\$($host.Name)_history.txt

non-Windows

  • $env:XDG_DATA_HOME/powershell/PSReadLine/$($host.Name)_history.txt
  • $env:HOME/.local/share/powershell/PSReadLine/$($host.Name)_history.txt
Type:String
Position:Named
Default value:A file named $($host.Name)_history.txt in $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine on Windows and $env:XDG_DATA_HOME/powershell/PSReadLine or $env:HOME/.local/share/powershell/PSReadLine on non-Windows platforms
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HistorySaveStyle

Spécifie la façon dont PSReadLine enregistre l’historique.

Les valeurs valides sont les suivantes :

  • SaveIncrementally : enregistrez l’historique après l’exécution de chaque commande et partagez-le entre plusieurs instances de PowerShell.
  • SaveAtExit : ajouter un fichier d’historique lorsque PowerShell se ferme.
  • SaveNothing : n’utilisez pas de fichier d’historique.
Type:HistorySaveStyle
Position:Named
Default value:SaveIncrementally
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HistorySearchCaseSensitive

Spécifie que la recherche d’historique respecte la casse dans des fonctions telles que ReverseSearchHistory ou HistorySearchBackward.

Par défaut, la propriété HistorySearchCaseSensitive de l’objet PSConsoleReadLineOptions global est définie sur False. L’utilisation de ce CommutateurParameter définit la valeur de la propriété sur True. Pour rétablir la valeur de la propriété, vous devez spécifier la valeur du SwitchParameter comme suit : -HistorySearchCaseSensitive:$False.

À l’aide de la commande suivante, vous pouvez définir la valeur de la propriété directement :

(Get-PSReadLineOption).HistorySearchCaseSensitive = $False

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HistorySearchCursorMovesToEnd

Indique que le curseur se déplace à la fin des commandes que vous chargez à partir de l’historique à l’aide d’une recherche. Lorsque ce paramètre est défini sur $False, le curseur reste à la position qu’il était lorsque vous avez appuyé sur les flèches haut ou bas.

Par défaut, la propriété HistorySearchCursorMovesToEnd de l’objet PSConsoleReadLineOptions global est définie sur False. À l’aide de ce CommutateurParameter , définissez la valeur de la propriété sur True. Pour rétablir la valeur de la propriété, vous devez spécifier la valeur du SwitchParameter comme suit : -HistorySearchCursorMovesToEnd:$False.

À l’aide de la commande suivante, vous pouvez définir la valeur de la propriété directement :

(Get-PSReadLineOption).HistorySearchCursorMovesToEnd = $False

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumHistoryCount

Spécifie le nombre maximal de commandes à enregistrer dans l’historique PSReadLine .

L’historique PSReadLine est distinct de l’historique PowerShell.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumKillRingCount

Spécifie le nombre maximal d’éléments stockés dans l’anneau de destruction.

Type:Int32
Position:Named
Default value:10
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PredictionSource

Spécifie la source pour PSReadLine afin d’obtenir des suggestions prédictives.

Les valeurs autorisées sont :

  • Aucun : désactiver la fonctionnalité de suggestion prédictive
  • Historique : obtenir des suggestions prédictives à partir de l’historique uniquement
Type:PredictionSource
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PromptText

En cas d’erreur d’analyse, PSReadLine modifie une partie de l’invite rouge. PSReadLine analyse votre fonction d’invite pour déterminer comment modifier uniquement la couleur d’une partie de votre invite. Cette analyse n’est pas fiable à 100 %.

Utilisez cette option si PSReadLine modifie votre invite de manière inattendue. Incluez tous les espaces blancs de fin.

Par exemple, si votre fonction d’invite ressemblait à l’exemple suivant :

function prompt { Write-Host -NoNewLine -ForegroundColor Yellow "$pwd"; return "# " }

Ensuite, définissez :

Set-PSReadLineOption -PromptText "# "

Type:String[]
Position:Named
Default value:>
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ShowToolTips

Lors de l’affichage des achèvements possibles, les info-bulles sont affichées dans la liste des achèvements.

Cette option est activée par défaut. Cette option n’était pas activée par défaut dans les versions antérieures de PSReadLine. Pour désactiver, définissez cette option sur $False.

Par défaut, la propriété ShowToolTips de l’objet PSConsoleReadLineOptions global est définie sur True. L’utilisation de ce CommutateurParameter définit la valeur de la propriété sur True. Pour modifier la valeur de la propriété, vous devez spécifier la valeur du SwitchParameter comme suit : -ShowToolTips:$False.

À l’aide de la commande suivante, vous pouvez définir la valeur de la propriété directement :

(Get-PSReadLineOption).ShowToolTips = $False

Type:SwitchParameter
Position:Named
Default value:True
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ViModeChangeHandler

Lorsque ViModeIndicator est défini sur Script, le bloc de script fourni est appelé chaque fois que le mode change. Le bloc de script est fourni avec un argument de type ViMode.

Ce paramètre a été introduit dans PowerShell 7.

Type:ScriptBlock
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ViModeIndicator

Cette option définit l’indication visuelle pour le mode Vi actuel. Mode d’insertion ou mode commande.

Les valeurs valides sont les suivantes :

  • Aucun : il n’y a aucune indication.
  • Invite : l’invite change de couleur.
  • Curseur : le curseur change de taille.
  • Script : le texte spécifié par l’utilisateur est imprimé.
Type:ViModeStyle
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WordDelimiters

Spécifie les caractères qui délimitent les mots pour des fonctions telles que ForwardWord ou KillWord.

Type:String
Position:Named
Default value:;:,.[]{}()/\|^&*-=+'"-—―
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

None

Vous ne pouvez pas diriger des objets vers Set-PSReadLineOption.

Sorties

None

Cette applet de commande ne génère aucune sortie.