Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
about_PSReadLine
DESCRIPCIÓN BREVE
PSReadLine proporciona una experiencia de edición de línea de comandos mejorada en la consola de PowerShell.
DESCRIPCIÓN LARGA
PSReadLine proporciona una eficaz experiencia de edición de línea de comandos para la consola de PowerShell. Proporciona:
- Coloración de sintaxis de la línea de comandos
- Indicación visual de errores de sintaxis
- Una mejor experiencia de varias líneas (tanto edición como historial)
- Enlaces de claves personalizables
- Modos cmd y Emacs
- Muchas opciones de configuración
- Finalización del estilo de Bash (opcional en modo Cmd, valor predeterminado en modo Emacs)
- Anillo de tirón/muerte de Emacs
- Movimiento y eliminación de "palabras" basado en tokens de PowerShell
Las siguientes funciones están disponibles en la clase [Microsoft.PowerShell.PSConsoleReadLine].
Movimiento del cursor
Fin de línea
- Cmd:
<End> - Emacs:
<End>o<Ctrl+E>
Si la entrada tiene varias líneas, vaya al final de la línea actual o, si ya está al final de la línea, vaya al final de la entrada. Si la entrada tiene una sola línea, vaya al final de la entrada.
BeginningOfLine
- Cmd:
<Home> - Emacs:
<Home>o<Ctrl+A>
Si la entrada tiene varias líneas, vaya al inicio de la línea actual o, si ya está al principio de la línea, vaya al inicio de la entrada. Si la entrada tiene una sola línea, vaya al inicio de la entrada.
Línea siguiente
- Cmd: sin enlazar
- Emacs: sin enlazar
Mueva el cursor a la siguiente línea si la entrada tiene varias líneas.
AnteriorLínea
- Cmd: sin enlazar
- Emacs: sin enlazar
Mueva el cursor a la línea anterior si la entrada tiene varias líneas.
ForwardChar
- Cmd:
<RightArrow> - Emacs:
<RightArrow>o<Ctrl+F>
Mueva el cursor un carácter a la derecha. Esto podría mover el cursor a la siguiente línea de entrada de varias líneas.
BackwardChar
- Cmd:
<LeftArrow> - Emacs:
<LeftArrow>o<Ctrl+B>
Mueva el cursor un carácter a la izquierda. Esto podría mover el cursor a la línea anterior de entrada de varias líneas.
Palabra de avance
- Cmd: sin enlazar
- Emacs:
<Alt+F>
Mueva el cursor hacia delante hasta el final de la palabra actual, o si está entre palabras, al final de la palabra siguiente. Puede establecer caracteres delimitadores de palabras con:
Set-PSReadLineOption -WordDelimiters `<string of delimiter characters>`
SiguientePalabra
- Cmd:
<Ctrl+RightArrow> - Emacs: sin enlazar
Mueva el cursor hacia delante hasta el inicio de la siguiente palabra. Puede establecer caracteres delimitadores de palabras con:
Set-PSReadLineOption -WordDelimiters `<string of delimiter characters>`
Palabra al revés
- Cmd:
<Ctrl+LeftArrow> - Emacs:
<Alt+B>
Vuelva a mover el cursor al principio de la palabra actual o, si está entre palabras, el inicio de la palabra anterior. Puede establecer caracteres delimitadores de palabras con:
Set-PSReadLineOption -WordDelimiters `<string of delimiter characters>`
ShellForwardWord
- Cmd: sin enlazar
- Emacs: sin enlazar
Al igual que ForwardWord, excepto que los límites de palabras están definidos por los límites de token de PowerShell.
ShellNextWord
- Cmd: sin enlazar
- Emacs: sin enlazar
Al igual que NextWord, excepto que los límites de palabras están definidos por los límites de token de PowerShell.
ShellBackwardWord (en inglés)
- Cmd: sin enlazar
- Emacs: sin enlazar
Al igual que BackwardWord, excepto que los límites de palabras se definen mediante límites de token de PowerShell.
Ir a la llave
- Cmd:
<Ctrl+}> - Emacs: sin enlazar
Vaya al paréntesis, la llave o el corchete correspondiente.
Línea de adición
- Cmd:
<Shift-Enter> - Emacs:
<Shift-Enter>
La solicitud de continuación se muestra en la línea siguiente y PSReadLine espera a que las claves editen la entrada actual. Esto resulta útil para escribir la entrada de varias líneas como un solo comando incluso cuando una sola línea está completando la entrada por sí misma.
Edición básica
Línea de cancelación
- Cmd: sin enlazar
- Emacs: sin enlazar
Cancela toda la edición de la línea, deja la línea de entrada en la pantalla pero regresa de PSReadLine sin ejecutar la entrada.
RevertLine (Línea de reversión)
- Cmd:
<ESC> - Emacs:
<Alt+R>
Revierte todas las entradas desde que se aceptó y ejecutó la última entrada. Esto es equivalente a usar el comando Deshacer hasta que no quede nada por deshacer.
BackwardDeleteChar
- Cmd:
<Backspace> - Emacs:
<Backspace>o<Ctrl+H>
Elimine el carácter antes del cursor.
DeleteChar
- Cmd:
<Delete> - Emacs:
<Delete>
Elimine el carácter bajo el cursor.
DeleteCharOrExit
- Cmd: sin enlazar
- Emacs:
<Ctrl+D>
Al igual que DeleteChar, a menos que la línea esté vacía, en cuyo caso salga del proceso.
AcceptLine (Aceptar)
- Cmd:
<Enter> - Emacs:
<Enter>o<Ctrl+M>
Intente ejecutar la entrada actual. Si la entrada actual está incompleta (por ejemplo, falta un paréntesis de cierre, un corchete o una comilla), la solicitud de continuación se muestra en la línea siguiente y PSReadLine espera a que las teclas editen la entrada actual.
AcceptAndGetNext
- Cmd: sin enlazar
- Emacs:
<Ctrl+O>
Al igual que AcceptLine, pero después de que se complete la línea, comience a editar la siguiente línea del historial.
ValidateAndAcceptLine
- Cmd: sin enlazar
- Emacs: sin enlazar
Al igual que AcceptLine, pero realiza una validación adicional que incluye:
- Comprueba si hay errores de análisis adicionales
- Valida que se encuentren todos los nombres de comandos
- Si ejecuta PowerShell 4.0 o posterior, valida los parámetros y argumentos
Si hay algún error, el mensaje de error se muestra y no se acepta ni se agrega al historial a menos que corrija la línea de comandos o ejecute AcceptLine o ValidateAndAcceptLine de nuevo mientras se muestra el mensaje de error.
BackwardDeleteLine
- Cmd:
<Ctrl+Home> - Emacs: sin enlazar
Elimine el texto desde el inicio de la entrada hasta el cursor.
ForwardDeleteLine
- Cmd:
<Ctrl+End> - Emacs: sin enlazar
Elimine el texto desde el cursor hasta el final de la entrada.
SeleccioneBackwardChar
- Cmd:
<Shift+LeftArrow> - Emacs:
<Shift+LeftArrow>
Ajuste la selección actual para incluir el carácter anterior.
SeleccioneAdelanteChar
- Cmd:
<Shift+RightArrow> - Emacs:
<Shift+RightArrow>
Ajuste la selección actual para incluir el siguiente carácter.
SeleccionarPalabra al revés
- Cmd:
<Shift+Ctrl+LeftArrow> - Emacs:
<Alt+Shift+B>
Ajuste la selección actual para incluir la palabra anterior.
Seleccione ForwardWord
- Cmd: sin enlazar
- Emacs:
<Alt+Shift+F>
Ajuste la selección actual para incluir la siguiente palabra mediante ForwardWord.
Seleccione Próxima palabra
- Cmd:
<Shift+Ctrl+RightArrow> - Emacs: sin enlazar
Ajuste la selección actual para incluir la siguiente palabra usando NextWord.
SeleccionarShellForwardWord
- Cmd: sin enlazar
- Emacs: sin enlazar
Ajuste la selección actual para incluir la siguiente palabra mediante ShellForwardWord.
Seleccione ShellSiguiente Palabra
- Cmd: sin enlazar
- Emacs: sin enlazar
Ajuste la selección actual para incluir la siguiente palabra mediante ShellNextWord.
SeleccionarShellBackwardWord
- Cmd: sin enlazar
- Emacs: sin enlazar
Ajuste la selección actual para incluir la palabra anterior mediante ShellBackwardWord.
SeleccioneAtrásLínea
- Cmd:
<Shift+Home> - Emacs:
<Shift+Home>
Ajuste la selección actual para incluir desde el cursor hasta el inicio de la línea.
SelectLine (Línea de selección)
- Cmd:
<Shift+End> - Emacs:
<Shift+End>
Ajuste la selección actual para incluir desde el cursor hasta el final de la línea.
Seleccionar todo
- Cmd:
<Ctrl+A> - Emacs: sin enlazar
Seleccione toda la línea. Mueve el cursor hasta el final de la línea.
Autoinserción
- Cmd:
<a>,<b>, ... - Emacs:
<a>,<b>, ...
Inserte la clave introducida.
Rehacer
- Cmd:
<Ctrl+Y> - Emacs: sin enlazar
Rehacer una inserción o eliminación que se deshizo mediante Deshacer.
Deshacer
- Cmd:
<Ctrl+Z> - Emacs:
<Ctrl+_>
Deshacer una inserción o eliminación anterior.
Historia
Borrar Historia
- Cmd:
<Alt+F7> - Emacs: sin enlazar
Borra el historial en PSReadLine. Esto no afecta al historial de PowerShell.
AnteriorHistoria
- Cmd:
<UpArrow> - Emacs:
<UpArrow>o<Ctrl+P>
Reemplace la entrada actual por el elemento anterior del historial de PSReadLine.
SiguienteHistoria
- Cmd:
<DownArrow> - Emacs:
<DownArrow>o<Ctrl+N>
Reemplace la entrada actual con el siguiente elemento del historial de PSReadLine.
ForwardSearchHistory (Historial de búsqueda de reenvío)
- Cmd:
<Ctrl+S> - Emacs:
<Ctrl+S>
Busque hacia adelante desde la línea del historial actual de forma interactiva.
ReverseSearchHistory
- Cmd:
<Ctrl+R> - Emacs:
<Ctrl+R>
Busque hacia atrás desde la línea del historial actual de forma interactiva.
HistorySearchBackward (HistoriaBúsquedaHacia atrás)
- Cmd:
<F8> - Emacs: sin enlazar
Reemplace la entrada actual por el elemento anterior del historial de PSReadLine que coincida con los caracteres entre el inicio y la entrada y el cursor.
HistorySearchForward (HistoriaBúsquedaAdelante)
- Cmd:
<Shift+F8> - Emacs: sin enlazar
Reemplace la entrada actual por el siguiente elemento del historial de PSReadLine que coincida con los caracteres entre el inicio y la entrada y el cursor.
ComienzoDeHistoria
- Cmd: sin enlazar
- Emacs:
<Alt+<>
Reemplace la entrada actual con el último elemento del historial de PSReadLine.
Fin de la Historia
- Cmd: sin enlazar
- Emacs:
<Alt+>>
Reemplace la entrada actual por el último elemento del historial de PSReadLine, que es la entrada posiblemente vacía que se introdujo antes de los comandos de historial.
Finalización de tabulación
TabCompleteNext
- Cmd:
<Tab> - Emacs: sin enlazar
Intente completar el texto que rodea el cursor con la siguiente finalización disponible.
TabCompletePrevious
- Cmd:
<Shift-Tab> - Emacs: sin enlazar
Intente completar el texto que rodea el cursor con la siguiente finalización anterior.
Íntegro
- Cmd: sin enlazar
- Emacs:
<Tab>
Intente realizar la finalización en el texto que rodea el cursor. Si hay varias finalizaciones posibles, se usa el prefijo inequívoco más largo para la finalización. Si está intentando completar la finalización inequívoca más larga, se muestra una lista de posibles finalizaciones.
MenúCompleto
- Cmd:
<Ctrl+Space> - Emacs:
<Ctrl+Space>
Intente realizar la finalización en el texto que rodea el cursor. Si hay varias finalizaciones posibles, se muestra una lista de finalizaciones posibles y puede seleccionar la finalización correcta mediante las teclas de flecha o Tab/Shift+Tab. Escape y Ctrl+G cancelan la selección del menú y revierten la línea al estado anterior a invocar MenuComplete.
PosiblesFinalizaciones
- Cmd: sin enlazar
- Emacs:
<Alt+Equals>
Muestra la lista de posibles finalizaciones.
SetMark (Marca de ajuste)
- Cmd: sin enlazar
- Emacs:
<Alt+Space>
Marque la ubicación actual del cursor para su uso en un comando de edición posterior.
ExchangePointAndMark
- Cmd: sin enlazar
- Emacs:
<Ctrl+X,Ctrl+X>
El cursor se coloca en la ubicación de la marca y la marca se mueve a la ubicación del cursor.
Matar/Tirar
Kill y Yank operan en un portapapeles en el módulo PSReadLine. Hay un búfer de anillo llamado anillo de muerte: el texto de muerte se agrega al anillo de muerte y tirará copiará el texto de la muerte más reciente. YankPop recorre los objetos del anillo de la muerte. Cuando el anillo de la muerte está lleno, los nuevos elementos reemplazan a los más antiguos. Una operación de eliminación que está inmediatamente precedida por otra operación de muerte anexa la eliminación anterior, en lugar de agregar un nuevo elemento o reemplazar un elemento en el anillo de muerte. Así es como se puede cortar una parte de una línea, por ejemplo, con varias operaciones KillWord, y luego tirarlas de vuelta a otro lugar como un solo tirón.
Línea de muerte
- Cmd: sin enlazar
- Emacs:
<Ctrl+K>
Borre la entrada desde el cursor hasta el final de la línea. El texto borrado se coloca en el anillo de muerte.
BackwardKillLine (Línea de muerte al revés)
- Cmd: sin enlazar
- Emacs:
<Ctrl+U>o<Ctrl+X,Backspace>
Borre la entrada desde el principio de la entrada al cursor. El texto borrado se coloca en el anillo de muerte.
KillWord (Palabra de muerte)
- Cmd: sin enlazar
- Emacs:
<Alt+D>
Borre la entrada del cursor al final de la palabra actual. Si el cursor está entre palabras, la entrada se borra del cursor al final de la palabra siguiente. El texto borrado se coloca en el anillo de muerte.
BackwardKillWord (Palabra Trasera)
- Cmd: sin enlazar
- Emacs:
<Alt+Backspace>
Borre la entrada desde el principio de la palabra actual hasta el cursor. Si el cursor está entre palabras, la entrada se borra del principio de la palabra anterior al cursor. El texto borrado se coloca en el anillo de muerte.
ShellKillWord (en inglés)
- Cmd: sin enlazar
- Emacs: sin enlazar
Al igual que KillWord, los límites de las palabras excepto que los límites de las palabras se definen mediante los límites del token de PowerShell.
ShellBackwardKillWord
- Cmd: sin enlazar
- Emacs: sin enlazar
Al igual que BackwardKillWord, excepto que los límites de las palabras se definen mediante los límites de token de PowerShell.
UnixWordRubout
- Cmd: sin enlazar
- Emacs:
<Ctrl+W>
Al igual que BackwardKillWord, excepto que los límites de las palabras están definidos por espacios en blanco.
KillRegion
- Cmd: sin enlazar
- Emacs: sin enlazar
Elimine el texto entre el cursor y la marca.
Copiar
- Cmd:
<Ctrl+Shift+C> - Emacs: sin enlazar
Copie la región seleccionada en el Portapapeles del sistema. Si no se selecciona ninguna región, copie toda la línea.
CopyOrCancelLine
- Cmd:
<Ctrl+C> - Emacs:
<Ctrl+C>
Copie el texto seleccionado en el portapapeles o, si no hay texto seleccionado, cancele la edición de la línea con CancelLine.
Cortar
- Cmd:
<Ctrl+X> - Emacs: sin enlazar
Eliminar la región seleccionada colocando texto eliminado en el Portapapeles del sistema.
Tirón
- Cmd: sin enlazar
- Emacs:
<Ctrl+Y>
Agregue el texto eliminado más recientemente a la entrada.
YankPop
- Cmd: sin enlazar
- Emacs:
<Alt+Y>
Si la operación anterior fue Yank o YankPop, reemplace el texto extraído anteriormente por el siguiente texto eliminado de la red de extracción.
ClearKillRing (en inglés)
- Cmd: sin enlazar
- Emacs: sin enlazar
Se borra el contenido del anillo de muerte.
Pegar
- Cmd:
<Ctrl+V> - Emacs: sin enlazar
Esto es similar a Yank, pero usa el portapapeles del sistema en lugar del anillo de muerte.
[!IMPORTANTE]
Cuando se usa la función pegar , todo el contenido del búfer del Portapapeles se pega en el búfer de entrada de PSReadLine. A continuación, el búfer de entrada se pasa al analizador de PowerShell. La entrada pegada mediante el del botón derecho de la aplicación de consola método de pegado se copia en el búfer de entrada un carácter cada vez. El búfer de entrada se pasa al analizador cuando se copia un carácter de nueva línea. Por lo tanto, la entrada se analiza una línea a la vez. La diferencia entre los métodos de pegado da como resultado un comportamiento de ejecución diferente.
YankLastArg
- Cmd:
<Alt+.> - Emacs:
<Alt+.>,<Alt+_>
Inserte el último argumento del comando anterior en el historial. Las operaciones repetidas reemplazan el último argumento insertado con el último argumento del comando anterior (por lo tanto, Alt+. Alt+. insertará el último argumento de la penúltima línea del historial).
Con un argumento, la primera vez YankLastArg se comporta como YankNthArg. Un argumento negativo en las llamadas posteriores a YankLastArg cambia la dirección mientras se recorre el historial. Por ejemplo, si presiona Alt+. demasiadas veces, puede escribir Alt +- Alt+. para invertir la dirección.
Los argumentos se basan en tokens de PowerShell.
YankNthArg
- Cmd: sin enlazar
- Emacs:
<Alt+Ctrl+Y>
Inserte el primer argumento (no el nombre del comando) del comando anterior en el historial.
Con un argumento, inserte el enésimo argumento donde 0 suele ser el comando. Los argumentos negativos empiezan por el final.
Los argumentos se basan en tokens de PowerShell.
Varios
Abortar
- Cmd: sin enlazar
- Emacs:
<Ctrl+G>
Anular la acción actual; Por ejemplo, detener la búsqueda interactiva del historial. No cancela la entrada como CancelLine.
Búsqueda de caracteres
- Cmd:
<F3> - Emacs:
<Ctrl+]>
Lee una clave y busca ese carácter. Con un argumento, busque hacia adelante la enésima aparición de ese argumento. Con un argumento negativo, busca hacia atrás.
CharacterSearchBackward
- Cmd:
<Shift+F3> - Emacs:
<Alt+Ctrl+]>
Como CharacterSearch, pero busca hacia atrás. Con un argumento negativo, busca hacia adelante.
Pantalla Limpia
- Cmd:
<Ctrl+L> - Emacs:
<Ctrl+L>
Borra la pantalla y muestra el mensaje y la entrada actuales en la parte superior de la pantalla.
ArgumentoNumérico
- Cmd: sin enlazar
- Emacs:
<Alt+[0..9]>,<any char>,<Alt+->
Se utiliza para pasar argumentos numéricos a funciones como CharacterSearch o YankNthArg. Alt+- alterna el argumento para que sea negativo/no negativo. Para introducir 80 caracteres '*', puede escribir Alt+8 Alt+0 *.
CapturaPantalla
- Cmd: sin enlazar
- Emacs: sin enlazar
Copia las líneas seleccionadas en el portapapeles en formato de texto y RTF. Utilice las teclas de flecha arriba/abajo en la primera línea para seleccionar, luego Mayús+Flecha arriba/Mayús+Flecha abajo para seleccionar varias líneas. Después de seleccionar, pulse Intro para copiar el texto. Escape/Ctrl+C/Ctrl+G cancelan la operación, por lo que no se copia nada en el portapapeles.
InvokePrompt
- Cmd: sin enlazar
- Emacs: sin enlazar
Borra el símbolo del sistema actual y llama a la función prompt para volver a reproducir el mensaje. Útil para controladores de claves personalizados que cambian de estado, como cambiar el directorio actual.
WhatIsKey
- Cmd:
<Alt+?> - Emacs:
<Alt+?>
Lea una tecla o un acorde y muestre la combinación de teclas.
ShowKeyBindings
- Cmd:
<Ctrl+Alt+?> - Emacs:
<Ctrl+Alt+?>
Muestra todas las claves enlazadas actualmente.
ScrollDisplayUp (Desplazarse hacia arriba)
- Cmd:
<PageUp> - Emacs:
<PageUp>
Desplácese por la pantalla una pantalla.
ScrollDisplayUpLine
- Cmd:
<Ctrl+PageUp> - Emacs:
<Ctrl+PageUp>
Desplácese hacia arriba en la pantalla una línea.
ScrollDisplayDown
- Cmd:
<PageDown> - Emacs:
<PageDown>
Desplácese hacia abajo en una pantalla.
ScrollDisplayDownLine
- Cmd:
<Ctrl+PageDown> - Emacs:
<Ctrl+PageDown>
Desplácese hacia abajo en la pantalla una línea.
ScrollDisplayTop
- Cmd: sin enlazar
- Emacs:
<Ctrl+Home>
Desplácese la pantalla hasta la parte superior.
ScrollDisplayToCursor
- Cmd: sin enlazar
- Emacs:
<Ctrl+End>
Desplácese la pantalla hasta el cursor.
Enlaces de clave personalizados
PSReadLine admite combinaciones de teclas personalizadas mediante el cmdlet Set-PSReadLineKeyHandler. La mayoría de los enlaces de teclas personalizados llaman a una de las funciones anteriores, por ejemplo
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Puede enlazar un ScriptBlock a una clave. ScriptBlock puede hacer prácticamente todo lo que quiera. Algunos ejemplos útiles son:
- editar la línea de comandos
- Abrir una nueva ventana (por ejemplo, Ayuda)
- cambiar directorios sin cambiar la línea de comandos
ScriptBlock recibe dos argumentos:
$key: un objeto [ConsoleKeyInfo] que es la clave que desencadenó el enlace personalizado. Si enlazas el mismo ScriptBlock a varias claves y necesitas realizar diferentes acciones en función de la clave, puedes comprobar $key. Muchos enlaces personalizados omiten este argumento.$arg: un argumento arbitrario. Normalmente, este sería un argumento entero que el usuario pasa de los enlaces de clave DigitArgument. Si el enlace no acepta argumentos, es razonable omitir este argumento.
Echemos un vistazo a un ejemplo que agrega una línea de comandos al historial sin ejecutarla. Esto es útil cuando se da cuenta de que olvidó hacer algo, pero no desea volver a escribir la línea de comandos que ya ha escrito.
$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
Puede ver muchos más ejemplos en el archivo SamplePSReadLineProfile.ps1 que está instalado en la carpeta del módulo PSReadLine.
La mayoría de los enlaces clave usan algunas funciones auxiliares para editar la línea de comandos. Esas API se documentan en la siguiente sección.
API de compatibilidad con enlaces de claves personalizados
Las siguientes funciones son públicas en Microsoft.PowerShell.PSConsoleReadLine, pero no se pueden enlazar directamente a una clave. La mayoría son útiles en enlaces de claves personalizados.
void AddToHistory(string command)
Agregue una línea de comandos al historial sin ejecutarla.
void ClearKillRing()
Despeja el anillo de muerte. Esto se usa principalmente para las pruebas.
void Delete(int start, int length)
Elimine los caracteres de longitud del inicio. Esta operación admite deshacer o rehacer.
void Ding()
Realice la acción Ding según las preferencias de los usuarios.
void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
[ref] ParseError[] parseErrors, [ref] int cursor)
Estas dos funciones recuperan información útil sobre el estado actual del búfer de entrada. La primera se usa con más frecuencia para casos simples. El segundo se usa si el enlace está haciendo algo más avanzado con Ast.
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(bool includeBound, bool includeUnbound)
Esta función la usan Get-PSReadLineKeyHandler y probablemente no sea útil en un enlace de teclas personalizado.
Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()
Esta función la usa Get-PSReadLineOption y probablemente no es demasiado útil en un enlace de clave personalizado.
void GetSelectionState([ref] int start, [ref] int length)
Si no hay ninguna selección en la línea de comandos, -1 se devolverá tanto en inicio como en longitud. Si hay una selección en la línea de comandos, se devuelven el inicio y la longitud de la selección.
void Insert(char c)
void Insert(string s)
Inserte un carácter o una cadena en el cursor. Esta operación admite deshacer o rehacer.
string ReadLine(runspace remoteRunspace,
System.Management.Automation.EngineIntrinsics engineIntrinsics)
Este es el punto de entrada principal de PSReadLine. No admite la recursividad, por lo que no es útil en un enlace de teclas personalizado.
void RemoveKeyHandler(string[] key)
Esta función la usa Remove-PSReadLineKeyHandler y probablemente no es demasiado útil en un enlace de clave personalizado.
void Replace(int start, int length, string replacement)
Reemplace parte de la entrada. Esta operación admite deshacer o rehacer. Esto es preferible a Eliminar seguido de Insertar porque se trata como una sola acción para deshacer.
void SetCursorPosition(int cursor)
Mueva el cursor al desplazamiento especificado. No se realiza un seguimiento del movimiento del cursor para deshacer.
void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)
Esta función es un método auxiliar usado por el cmdlet Set-PSReadLineOption, pero puede ser útil para un enlace de teclas personalizado que quiera cambiar temporalmente una configuración.
bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
int defaultNumericArg)
Este método auxiliar se usa para enlaces personalizados que respetan DigitArgument. Una llamada típica es similar a
[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
[ref]$numericArg, 1)
NOTA
COMPATIBILIDAD CON POWERSHELL
PSReadLine requiere PowerShell 3.0 o posterior y el host de la consola. No funciona en PowerShell ISE. Funciona en la consola de Visual Studio Code.
HISTORIAL DE COMANDOS
PSReadLine mantiene un archivo de historial que contiene todos los comandos y datos que ha introducido desde la línea de comandos. Esto puede contener datos confidenciales, incluidas contraseñas. Por ejemplo, si usa el ConvertTo-SecureString cmdlet, la contraseña se registra en el archivo de historial como texto sin formato. Los archivos de historial son un archivo llamado $($host.Name)_history.txt. En los sistemas Windows, el archivo de historial se almacena en $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine.
COMENTARIOS Y CONTRIBUCIONES A PSReadLine
No dude en enviar una solicitud de incorporación de cambios o enviar comentarios en la página de GitHub.
VÉASE TAMBIÉN
PSReadLine está muy influenciado por la biblioteca de de línea de lectura gnu.