Compartir a través de


Set-PSReadLineOption

Personaliza el comportamiento de la edición de línea de comandos en PSReadLine.

Sintaxis

Default (valor predeterminado)

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

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, use Get-PSReadLineOption.

Ejemplos

Ejemplo 1: Establecer colores de primer plano y de fondo

En este ejemplo se establece PSReadLine para mostrar el token de comentario de con texto en primer plano verde en un fondo gris. En la secuencia de escape usada en el ejemplo, 32 representa el color de primer plano y 47 representa el color de fondo.

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, consulte about_Providers.

Parámetros

-AddToHistoryHandler

Especifica un ScriptBlock que controla los comandos que se agregan al historial de PSReadLine .

El ScriptBlock recibe la línea de comandos como entrada. Si el scriptBlock de devuelve , la línea de comandos se agrega al historial.

Propiedades de parámetro

Tipo:

Func<T,TResult>[System.String,System.Object]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:100
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades de parámetro

Tipo:BellStyle
Valor predeterminado:Audible
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Colors

El parámetro Colors de especifica varios colores usados por PSReadLine.

El argumento es una tabla hash donde las claves especifican qué elemento y los valores especifican el color. Para obtener más información, consulte about_Hash_Tables.

Los colores pueden ser un valor de ConsoleColor, por ejemplo, [ConsoleColor]::Redo una secuencia de escape ANSI válida. Las secuencias de escape válidas dependen del terminal. En PowerShell 5.0, se $([char]0x1b)[91muna 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:

  • 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 Código de escape ANSI en Wikipedia.

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.

Propiedades de parámetro

Tipo:Hashtable
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-CommandValidationHandler

Especifica un scriptBlock de al que se llama desde ValidateAndAcceptLine. Si se produce una excepción, se produce un error en la validación y se notifica el error.

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, como para corregir errores tipográficos comunes.

validateAndAcceptLine se usa para evitar desordenar el historial con comandos que no pueden funcionar.

Propiedades de parámetro

Tipo:

Action<T>[CommandAst]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:100
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades de parámetro

Tipo:String
Valor predeterminado:>>
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-DingDuration

Especifica la duración del pitido cuando se establece BellStyle en audible.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:50ms
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-DingTone

Especifica el tono en Hertz (Hz) del pitido cuando BellStyle se establece en Audible.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:1221
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades de parámetro

Tipo:EditMode
Valor predeterminado:Windows
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:0
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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. Con este SwitchParameter establece el valor de propiedad en True. Para cambiar el valor de la propiedad, debe especificar el valor del SwitchParameter de la siguiente manera: -HistoryNoDuplicates:$False.

Con el comando siguiente, puede establecer el valor de propiedad directamente:

(Get-PSReadLineOption).HistoryNoDuplicates = $False

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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
  • $env:HOME/.local/share/powershell/PSReadLine/$($host.Name)_history.txt

Propiedades de parámetro

Tipo:String
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 $env:HOME/.local/share/powershell/PSReadLine on non-Windows platforms
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-HistorySaveStyle

Especifica cómo PSReadLine guarda el historial.

Los valores válidos son los siguientes:

  • SaveIncrementally: Guardar historial después de ejecutar cada comando y compartirlo en varias instancias de PowerShell.
  • SaveAtExit: anexar el archivo de historial cuando se cierra PowerShell.
  • saveNothing: no use un archivo de historial.

Propiedades de parámetro

Tipo:HistorySaveStyle
Valor predeterminado:SaveIncrementally
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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 de la global PSConsoleReadLineOptions objeto se establece en False. Con este SwitchParameter establece el valor de propiedad en 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

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-MaximumKillRingCount

Especifica el número máximo de elementos almacenados en el anillo de eliminación.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:10
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-PredictionSource

Especifica el origen de PSReadLine para obtener sugerencias predictivas.

Los valores válidos son:

  • Ninguno: deshabilitar la función de sugerencia predictiva
  • Historial: obtenga sugerencias predictivas solo del historial

Propiedades de parámetro

Tipo:PredictionSource
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-PromptText

Cuando se produce un error de análisis, PSReadLine cambia una parte del mensaje rojo. 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.

Por ejemplo, si la función de solicitud tuviera un aspecto similar al del ejemplo siguiente:

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

A continuación, establezca:

Set-PSReadLineOption -PromptText "# "

Propiedades de parámetro

Tipo:

String[]

Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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 ShowToolTips del objeto PSConsoleReadLineOp tions global de está establecido en True. Con este SwitchParameter establece el valor de propiedad en 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

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:True
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ViModeChangeHandler

Cuando el ViModeIndicator de se establece en Script, se invocará el bloque de script proporcionado cada vez que cambie el modo. El bloque de script se proporciona un argumento de tipo ViMode.

Este parámetro se introdujo en PowerShell 7.

Propiedades de parámetro

Tipo:ScriptBlock
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ViModeIndicator

Esta opción establece la indicación visual para el modo Vi actual. Modo de inserción o modo de comando.

Los valores válidos son los siguientes:

  • Ninguno: No hay ninguna indicación.
  • 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.

Propiedades de parámetro

Tipo:ViModeStyle
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-WordDelimiters

Especifica los caracteres que delimitan palabras para funciones como forwardWord o KillWord.

Propiedades de parámetro

Tipo:String
Valor predeterminado:;:,.[]{}()/\|^&*-=+'"–—―
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

None

No se pueden canalizar objetos a Set-PSReadLineOption.

Salidas

None

Este cmdlet no genera ningún resultado.