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.