Set-PSReadLineOption
Personaliza el comportamiento de la edición de línea de comandos en PSReadLine.
Sintaxis
Set-PSReadLineOption
[-EditMode <EditMode>]
[-ContinuationPrompt <String>]
[-HistoryNoDuplicates]
[-AddToHistoryHandler <System.Func`2[System.String,System.Object]>]
[-CommandValidationHandler <System.Action`1[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>]
[-PredictionSource <PredictionSource>]
[-PredictionViewStyle <PredictionViewStyle>]
[-Colors <Hashtable>]
[<CommonParameters>]
Description
El cmdlet Set-PSReadLineOption
personaliza el comportamiento del módulo de PSReadLine al editar la línea de comandos. Para ver la configuración de de PSReadLine de
Las opciones establecidas por este comando solo se aplican a la sesión actual. Para conservar las opciones, agréguelas a un script de perfil. Para obtener más información, consulte about_Profiles y Personalización del entorno de shell.
Ejemplos
Ejemplo 1: Establecer colores de primer plano y de fondo
En este ejemplo se establece
Set-PSReadLineOption -Colors @{ "Comment"="`e[32;47m" }
Solo puede establecer un color de texto en primer plano. Por ejemplo, un color de texto de primer plano verde brillante para el token de Comentario: "Comment"="`e[92m"
.
Ejemplo 2: Establecer estilo de campana
En este ejemplo, PSReadLine responderá a errores o condiciones que requieren atención del usuario. El BellStyle se establece para emitir un pitido audible a 1221 Hz para 60 ms.
Set-PSReadLineOption -BellStyle Audible -DingTone 1221 -DingDuration 60
Nota
Es posible que esta característica no funcione en todos los hosts de las plataformas.
Ejemplo 3: Establecer varias opciones
Set-PSReadLineOption
puede establecer varias opciones con una tabla hash.
$PSReadLineOptions = @{
EditMode = "Emacs"
HistoryNoDuplicates = $true
HistorySearchCursorMovesToEnd = $true
Colors = @{
"Command" = "#8181f7"
}
}
Set-PSReadLineOption @PSReadLineOptions
La tabla hash $PSReadLineOptions
establece las claves y los valores.
Set-PSReadLineOption
usa las claves y los valores con @PSReadLineOptions
para actualizar las opciones de PSReadLine.
Puede ver las claves y los valores que escriben el nombre de la tabla hash, $PSReadLineOptions
en la línea de comandos de PowerShell.
Ejemplo 4: Establecer varias opciones de color
En este ejemplo se muestra cómo establecer más de un valor de color en un solo comando.
Set-PSReadLineOption -Colors @{
Command = 'Magenta'
Number = 'DarkGray'
Member = 'DarkGray'
Operator = 'DarkGray'
Type = 'DarkGray'
Variable = 'DarkGreen'
Parameter = 'DarkGreen'
ContinuationPrompt = 'DarkGray'
Default = 'DarkGray'
}
Ejemplo 5: Establecer valores de color para varios tipos
En este ejemplo se muestran tres métodos diferentes para establecer el color de los tokens mostrados en 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"
}
Ejemplo 6: Usar ViModeChangeHandler para mostrar los cambios en el modo Vi
En este ejemplo se emite un escape de VT de cambio de cursor en respuesta a un cambio de modo de 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 función OnViModeChange establece las opciones de cursor para los modos de Vi: insertar y comando.
viModeChangeHandler usa el proveedor de Function:
para hacer referencia a onViModeChange como un objeto de bloque de script.
Para obtener más información, vea about_Providers.
Ejemplo 7: Usar HistoryHandler para filtrar los comandos agregados al historial
En el ejemplo siguiente se muestra cómo usar el AddToHistoryHandler
para evitar guardar los comandos de Git en el historial.
$ScriptBlock = {
Param([string]$line)
if ($line -match "^git") {
return $false
} else {
return $true
}
}
Set-PSReadLineOption -AddToHistoryHandler $ScriptBlock
El scriptblock devuelve $false
si el comando comenzó con git
. Esto tiene el mismo efecto que devolver la enumeración git
, el controlador devuelve $true
y PSReadLine guarda el comando en el historial.
Ejemplo 8: Usar CommandValidationHandler para validar un comando antes de su ejecución
En este ejemplo se muestra cómo usar el parámetro CommandValidationHandler para ejecutar un comando de validación antes de ejecutarlo. En el ejemplo se comprueba específicamente el comando git
por el sub comando cmt
y se reemplaza por el nombre completo commit
. De este modo, puede crear alias abreviados para subcomandos.
# Load the namespace so you can use the [CommandAst] object type
using namespace System.Management.Automation.Language
Set-PSReadLineOption -CommandValidationHandler {
param([CommandAst]$CommandAst)
switch ($CommandAst.GetCommandName()) {
'git' {
$gitCmd = $CommandAst.CommandElements[1].Extent
switch ($gitCmd.Text) {
'cmt' {
[Microsoft.PowerShell.PSConsoleReadLine]::Replace(
$gitCmd.StartOffset, $gitCmd.EndOffset - $gitCmd.StartOffset, 'commit')
}
}
}
}
}
# This checks the validation script when you hit enter
Set-PSReadLineKeyHandler -Chord Enter -Function ValidateAndAcceptLine
Ejemplo 9: Uso del parámetro PromptText
Cuando se produce un error de análisis, PSReadLine cambia una parte del mensaje rojo. El parámetro PromptText indica PSReadLine la parte de la cadena del símbolo del sistema para que aparezca en rojo.
Por ejemplo, en el ejemplo siguiente se crea un símbolo del sistema que contiene la ruta de acceso actual seguida del carácter mayor que (>
) y un espacio.
function prompt { "PS $pwd> " }`
Set-PSReadLineOption -PromptText '> ' # change the '>' character red
Set-PSReadLineOption -PromptText '> ', 'X ' # replace the '>' character with a red 'X'
La primera cadena es la parte de la cadena del símbolo del sistema que desea convertir en rojo cuando se produce un error de análisis. La segunda cadena es una cadena alternativa que se usará para cuando se produce un error de análisis.
Parámetros
-AddToHistoryHandler
Especifica un scriptBlock de
El ScriptBlock recibe la línea de comandos como entrada.
El scripBlock de
-
MemoryAndFile
: agregue el comando al archivo de historial y a la sesión actual. -
MemoryOnly
: agregue el comando al historial solo para la sesión actual. -
SkipAdding
: no agregue el comando al archivo de historial de la sesión actual. -
$false
: igual que si el valor seSkipAdding
. -
$true
: igual que si el valor seMemoryAndFile
.
Tipo: | Func<T,TResult>[System.String,System.Object] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-AnsiEscapeTimeout
Esta opción es específica de Windows cuando se redirige la entrada, por ejemplo, cuando se ejecuta en tmux
o screen
.
Con la entrada redirigida en Windows, muchas claves se envían como una secuencia de caracteres a partir del carácter de escape. Es imposible distinguir entre un solo carácter de escape seguido de más caracteres y una secuencia de escape válida.
La suposición es que el terminal puede enviar los caracteres más rápido que los tipos de usuario. PSReadLine espera este tiempo de espera antes de concluir que ha recibido una secuencia de escape completa.
Si ve caracteres aleatorios o inesperados al escribir, puede ajustar este tiempo de espera.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 100 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-BellStyle
Especifica cómo PSReadLine responde a varias condiciones de error y ambiguas.
Los valores válidos son los siguientes:
- audible: un corto pitido.
- Visual: el texto parpadea brevemente.
- Ninguno: no hay comentarios.
Tipo: | BellStyle |
Posición: | Named |
Valor predeterminado: | Audible |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Colors
El parámetro Colors de
El argumento es una tabla hash donde las claves especifican los elementos y los valores especifican el color. Para obtener más información, vea about_Hash_Tables.
Los colores pueden ser un valor de ConsoleColor, por ejemplo, [ConsoleColor]::Red
o una secuencia de escape ANSI válida. Las secuencias de escape válidas dependen del terminal. En PowerShell 5.0, se $([char]0x1b)[91m
una secuencia de escape de ejemplo para texto rojo. En PowerShell 6 y versiones posteriores, la misma secuencia de escape es `e[91m
. Puede especificar otras secuencias de escape, incluidos los siguientes tipos:
Se agregaron dos valores de color para admitir la personalización del ListView
en PSReadLine 2.2.0:
ListPredictionColor: establezca el color para el carácter de
>
inicial y el nombre de origen final, como[History]
. De forma predeterminada, usaDarkYellow
como color de primer plano.ListPredictionSelectedColor: se selecciona el color establecido para indicar que se selecciona un elemento de lista. De forma predeterminada, usa
DarkBlack
como color de fondo.256 colores
Color de 24 bits
Primer plano, fondo o ambos
Inverso, negrita
Para obtener más información sobre los códigos de color ANSI, consulte el artículo de Wikipedia código de escape ANSI.
Las claves válidas incluyen:
- ContinuationPrompt: color del símbolo del sistema de continuación.
- énfasis: color de énfasis. Por ejemplo, el texto coincidente al buscar en el historial.
- Error: color del error. Por ejemplo, en el símbolo del sistema.
- Selección: color para resaltar la selección del menú o el texto seleccionado.
- predeterminado: color del token predeterminado.
- Comentario: color del token de comentario.
- Palabra clave: color del token de palabra clave.
- cadena: color del token de cadena.
- Operador: color del token del operador.
- Variable: color del token de variable.
- Comando: color del token de comando.
- Parámetro: color del token de parámetro.
- Tipo: color del token de tipo.
- Número: color del token de número.
- miembro: color del token de nombre de miembro.
- inlinePrediction: color de la vista insertada de la sugerencia predictiva.
-
ListPrediction: color del carácter de
>
inicial y el nombre del origen de predicción. - ListPredictionSelected: color de la predicción seleccionada en la vista de lista.
Tipo: | Hashtable |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-CommandValidationHandler
Especifica un scriptBlock de
Antes de iniciar una excepción, el controlador de validación puede colocar el cursor en el punto del error para facilitar la corrección. Un controlador de validación también puede cambiar la línea de comandos para corregir errores tipográficos comunes.
validateAndAcceptLine se usa para evitar desordenar el historial con comandos que no pueden funcionar.
Tipo: | Action<T>[CommandAst] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-CompletionQueryItems
Especifica el número máximo de elementos de finalización que se muestran sin preguntar.
Si el número de elementos que se van a mostrar es mayor que este valor, PSReadLine solicita sí/no antes de mostrar los elementos de finalización.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 100 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ContinuationPrompt
Especifica la cadena mostrada al principio de las líneas posteriores cuando se introduce la entrada de varias líneas. El valor predeterminado es double greater-than signs (>>
). Una cadena vacía es válida.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | >> |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-DingDuration
Especifica la duración del pitido cuando se establece BellStyle en audible.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 50ms |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-DingTone
Especifica el tono en Hertz (Hz) del pitido cuando BellStyle se establece en Audible.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 1221 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-EditMode
Especifica el modo de edición de la línea de comandos. El uso de este parámetro restablece los enlaces de clave establecidos por Set-PSReadLineKeyHandler
.
Los valores válidos son los siguientes:
- Windows: los enlaces de claves emulan PowerShell, cmd y Visual Studio.
- Emacs: los enlaces de claves emulan Bash o Emacs.
- Vi: los enlaces clave emulan Vi.
Use Get-PSReadLineKeyHandler
para ver los enlaces de clave de los EditMode configurados actualmente.
Tipo: | EditMode |
Posición: | Named |
Valor predeterminado: | Windows |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ExtraPromptLineCount
Especifica el número de líneas adicionales.
Si el mensaje abarca más de una línea, especifique un valor para este parámetro. Use esta opción cuando quiera que haya líneas adicionales disponibles cuando PSReadLine muestre el mensaje después de mostrar alguna salida. Por ejemplo, PSReadLine devuelve una lista de finalizaciones.
Esta opción es necesaria menos que en versiones anteriores de PSReadLine, pero resulta útil cuando se usa la función InvokePrompt
.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 0 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-HistoryNoDuplicates
Esta opción controla el comportamiento de recuperación. Los comandos duplicados se siguen agregando al archivo de historial. Cuando se establece esta opción, solo aparece la invocación más reciente al recuperar comandos. Los comandos repetidos se agregan al historial para conservar la ordenación durante la recuperación. Sin embargo, normalmente no desea ver el comando varias veces al recuperar o buscar en el historial.
De forma predeterminada, la propiedad HistoryNoDuplicates de la global PSConsoleReadLineOptions objeto se establece en True
. Para cambiar el valor de la propiedad, debe especificar el valor del SwitchParameter de la siguiente manera: -HistoryNoDuplicates:$False
. Puede volver a True
usando solo el SwitchParameter, -HistoryNoDuplicates
.
Con el comando siguiente, puede establecer el valor de propiedad directamente:
(Get-PSReadLineOption).HistoryNoDuplicates = $False
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-HistorySavePath
Especifica la ruta de acceso al archivo donde se guarda el historial. Los equipos que ejecutan plataformas Windows o que no son de Windows almacenan el archivo en diferentes ubicaciones. El nombre de archivo se almacena en una variable $($Host.Name)_history.txt
, por ejemplo, ConsoleHost_history.txt
.
Si no usa este parámetro, la ruta de acceso predeterminada es la siguiente:
Windows
$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\$($Host.Name)_history.txt
que no son de Windows
$env:XDG_DATA_HOME/powershell/PSReadLine/$($Host.Name)_history.txt
$HOME/.local/share/powershell/PSReadLine/$($Host.Name)_history.txt
Tipo: | String |
Posición: | Named |
Valor predeterminado: | A file named $($Host.Name)_history.txt in $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine on Windows and $env:XDG_DATA_HOME/powershell/PSReadLine or $HOME/.local/share/powershell/PSReadLine on non-Windows platforms |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-HistorySaveStyle
Especifica cómo PSReadLine guarda el historial.
Los valores válidos son los siguientes:
-
SaveIncrementally
: guarde el historial después de ejecutar cada comando y comparta entre varias instancias de PowerShell. -
SaveAtExit
: anexe el archivo de historial cuando se cierra PowerShell. -
SaveNothing
: no use un archivo de historial.
Nota
Si establece HistorySaveStyle en SaveNothing
y luego lo establece en SaveIncrementally
más adelante en la misma sesión, PSReadLine guarda todos los comandos que se ejecutaron anteriormente en la sesión.
Tipo: | HistorySaveStyle |
Posición: | Named |
Valor predeterminado: | SaveIncrementally |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-HistorySearchCaseSensitive
Especifica que la búsqueda de historial distingue mayúsculas de minúsculas en funciones como ReverseSearchHistory o HistorySearchBackward.
De forma predeterminada, la propiedad HistorySearchCaseSensitive de True
. Para volver a cambiar el valor de la propiedad, debe especificar el valor del SwitchParameter de la siguiente manera: -HistorySearchCaseSensitive:$False
.
Con el comando siguiente, puede establecer el valor de propiedad directamente:
(Get-PSReadLineOption).HistorySearchCaseSensitive = $False
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-HistorySearchCursorMovesToEnd
Indica que el cursor se mueve al final de los comandos que se cargan desde el historial mediante una búsqueda.
Cuando este parámetro se establece en $False
, el cursor permanece en la posición que estaba cuando se presionaban las flechas arriba o abajo.
De forma predeterminada, la propiedad HistorySearchCursorMovesToEnd de la global PSConsoleReadLineOptions objeto se establece en False
. Con este SwitchParameter establezca el valor de la propiedad en True
. Para volver a cambiar el valor de la propiedad, debe especificar el valor del SwitchParameter de la siguiente manera: -HistorySearchCursorMovesToEnd:$False
.
Con el comando siguiente, puede establecer el valor de propiedad directamente:
(Get-PSReadLineOption).HistorySearchCursorMovesToEnd = $False
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-MaximumHistoryCount
Especifica el número máximo de comandos que se van a guardar en historial de PSReadLine.
historial de psReadLine es independiente del historial de PowerShell.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-MaximumKillRingCount
Especifica el número máximo de elementos almacenados en el anillo de eliminación.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 10 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PredictionSource
Especifica el origen de PSReadLine para obtener sugerencias predictivas.
Los valores válidos son:
- Ninguno: deshabilite la característica predictiva de IntelliSense (valor predeterminado).
- historial: habilite la característica predictiva de IntelliSense y use el historial de PSReadLine como único origen.
-
complemento: habilite la característica predictiva de IntelliSense y use los complementos (
CommandPrediction
) como único origen. Este valor se agregó en PSReadLine 2.2.0 - HistoryAndPlugin: habilite la característica predictiva de IntelliSense y use tanto el historial como el complemento como los orígenes. Este valor se agregó en PSReadLine 2.2.0
Tipo: | Microsoft.PowerShell.PredictionSource |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PredictionViewStyle
Establece el estilo para la presentación del texto predictivo. El valor predeterminado es InlineView.
- InlineView: el estilo que existe actualmente, similar al de la concha de pescado y zsh. (valor predeterminado)
- ListView: las sugerencias se representan en una lista desplegable y los usuarios pueden seleccionar mediante UpArrow y DownArrow.
Este parámetro se agregó en PSReadLine 2.2.0
Tipo: | Microsoft.PowerShell.PredictionViewStyle |
Posición: | Named |
Valor predeterminado: | InlineView |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PromptText
Este parámetro establece el valor de la propiedad PromptText. El valor predeterminado es "> "
.
PSReadLine analiza la función de solicitud para determinar cómo cambiar solo el color de parte del mensaje. Este análisis no es 100% confiable. Use esta opción si PSReadLine está cambiando el mensaje de maneras inesperadas. Incluya cualquier espacio en blanco final.
El valor de este parámetro puede ser una sola cadena o una matriz de dos cadenas. La primera cadena es la parte de la cadena de solicitud que desea cambiar a rojo cuando se produce un error de análisis. La segunda cadena es una cadena alternativa que se usará para cuando se produce un error de análisis.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | > |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ShowToolTips
Al mostrar posibles finalizaciones, la información sobre herramientas se muestra en la lista de finalizaciones.
Esta opción está habilitada de forma predeterminada. Esta opción no se ha habilitado de forma predeterminada en versiones anteriores de PSReadLine. Para deshabilitar, establezca esta opción en $False
.
De forma predeterminada, la propiedad True
. Para cambiar el valor de la propiedad, debe especificar el valor del SwitchParameter de la siguiente manera: -ShowToolTips:$False
.
Con el comando siguiente, puede establecer el valor de propiedad directamente:
(Get-PSReadLineOption).ShowToolTips = $False
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | True |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ViModeChangeHandler
Cuando el ViModeIndicator de ViMode
.
Este parámetro se introdujo en PowerShell 7.
Tipo: | ScriptBlock |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ViModeIndicator
Esta opción establece el indicador visual del modo de
Los valores válidos son los siguientes:
- Ninguno: no hay ningún indicador.
- prompt: el símbolo del sistema cambia el color.
- cursor: el cursor cambia el tamaño.
- script: se imprime el texto especificado por el usuario.
Tipo: | ViModeStyle |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-WordDelimiters
Especifica los caracteres que delimitan palabras para funciones como forwardWord o KillWord.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | ;:,.[]{}()/\|^&*-=+'"--- |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
None
No se pueden canalizar objetos a este cmdlet.
Salidas
None
Este cmdlet no devuelve ninguna salida.