Uso de predictores en PSReadLine
En PSReadLine 2.1.0 se ha presentado la característica IntelliSense predictivo. IntelliSense predictivo proporciona sugerencias para comandos completos basados en elementos del historial de PSReadLine. PSReadLine 2.2.2 amplía la eficacia de IntelliSense predictivo mediante la adición de compatibilidad con módulos de complemento que usan lógica avanzada a fin de proporcionar sugerencias para comandos completos. La versión más reciente, PSReadLine 2.2.6, habilita las predicciones de forma predeterminada.
Uso de IntelliSense predictivo
Cuando IntelliSense predictivo está habilitado, la sugerencia de predicción aparece como texto coloreado después del cursor del usuario. Las sugerencias de IntelliSense predictivo ayudan a los usuarios nuevos y experimentados de PowerShell a detectar, editar y ejecutar comandos completos basados en predicciones coincidentes. Las sugerencias pueden proceder del historial del usuario y de complementos específicos del dominio adicionales.
En las imágenes anteriores se muestra el valor predeterminado InlineView
de la sugerencia. Al presionar la tecla Flecha Derecha se acepta una sugerencia insertada. Después de aceptar la sugerencia, puede editar la línea de comandos antes de presionar Entrar para ejecutar el comando.
PSReadLine también ofrece una presentación ListView
de las sugerencias.
Cuando se encuentra en la vista de lista, puede usar las teclas de dirección para desplazarse por las sugerencias disponibles. En la vista de lista también se muestra el origen de la predicción.
PSReadLine tiene como valor predeterminado InlineView
. Puede cambiar entre InlineView
y ListView
si presiona la tecla F2. También puede usar el parámetro PredictionViewStyle de Set-PSReadLineOption
para cambiar la vista.
Administración de IntelliSense predictivo
Para usar IntelliSense predictivo debe tener instalada una versión más reciente de PSReadLine. Para obtener los mejores resultados, instale la versión más reciente del módulo.
Para instalar PSReadLine mediante PowerShellGet:
Install-Module -Name PSReadLine
O bien, realice la instalación con el nuevo módulo PowerShellGet v3:
Install-PSResource -Name PSReadLine
PSReadLine se puede instalar en Windows PowerShell 5.1 o en PowerShell 7 o versiones posteriores. Para usar complementos de predicción, debe ejecutar PowerShell 7.2 o superior. Windows PowerShell 5.1 puede usar el predictor basado en el historial.
En PSReadLine 2.2.6, IntelliSense predictivo está habilitado de forma predeterminada en función de las condiciones siguientes:
- Si se admite Terminal virtual (VT) y PSReadLine se ejecuta en PowerShell 7.2 o posterior, PredictionSource se establece en
HistoryAndPlugin
- Si se admite VT y PSReadLine se ejecuta en otra versión distinta de PowerShell 7.2, PredictionSource se establece en
History
- Si no se admite VT, PredictionSource se establece en
None
.
Use el comando siguiente para ver la configuración actual:
Get-PSReadLineOption | Select-Object -Property PredictionSource
Puede cambiar el origen de predicción mediante el cmdlet Set-PSReadLineOption
con el parámetro PredictionSource. PredictionSource se puede establecer en lo siguiente:
None
History
Plugin
HistoryAndPlugin
Nota
Las predicciones basadas en el historial proceden del historial mantenido por PSReadLine. Ese historial es más completo que el historial basado en la sesión que puede ver mediante Get-History
. Para más información, vea la sección Historial de comandos de about_PSReadLine.
Establecimiento del color de predicción
De forma predeterminada, las predicciones aparecen en texto gris claro en la misma línea en la que escribe el usuario. Para admitir las necesidades de accesibilidad, puede personalizar el color de predicción. Los colores se definen mediante secuencias de escape ANSI. Puede usar $PSStyle
para crear secuencias de escape ANSI.
Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
O bien, puede crear secuencias propias. El color gris claro predeterminado del de texto de predicción se puede restaurar mediante la siguiente secuencia de escape ANSI.
Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }
Para más información sobre cómo establecer el color de predicción y otros valores de PSReadLine, vea Set-PSReadLineOption.
Cambio de los enlaces de teclado
PSReadLine contiene funciones para navegar y aceptar predicciones. Por ejemplo:
AcceptSuggestion
: aceptar la sugerencia insertada actualAcceptNextSuggestionWord
: aceptar la palabra siguiente de la sugerencia insertadaAcceptSuggestion
se crea dentro deForwardChar
, que está enlazado a RightArrow de forma predeterminadaAcceptNextSuggestionWord
se crea dentro de la funciónForwardWord
, que se puede enlazar a Ctrl+f
Puede usar el cmdlet Set-PSReadLineKeyHandler
para cambiar los enlaces de teclado.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
Con este enlace, al presionar Ctrl+f se acepta la siguiente palabra de una sugerencia insertada cuando el cursor está al final de la línea de edición actual. Puede enlazar otras teclas a AcceptSuggestion
y AcceptNextSuggestionWord
para funcionalidades similares. Por ejemplo, es posible que quiera que RightArrow acepte la palabra siguiente de la sugerencia insertada, en lugar de toda la línea de sugerencia.
Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord
Uso de otros complementos de predicción
El módulo Az.Tools.Predictor fue el primer complemento para IntelliSense predictivo. Usa el aprendizaje automático para predecir qué comando de Azure PowerShell se quiere ejecutar y qué parámetros se quieren usar. Para más información e instrucciones de instalación, vea Anuncio de la disponibilidad general de Az.Tools.Predictor.
El módulo CompletionPredictor agrega una experiencia de IntelliSense para todo lo que se pueda completar mediante tabulaciones en PowerShell. Con PSReadLine establecido en InlineView
, obtendrá la experiencia de finalización de tabulación normal. Al cambiar a ListView
, obtendrá la experiencia de IntelliSense. Puede instalar el módulo CompletionPredictor desde la Galería de PowerShell.
Como se ha indicado antes, ListView
muestra el origen de la predicción. Si tiene varios complementos instalados, las predicciones se agrupan por origen y primero se enumera Historial, seguido de cada complemento en el orden en que se hayan cargado.
Creación de un módulo de predicción propio
Puede escribir un predictor propio mediante C# para crear un módulo de PowerShell compilado. El módulo debe implementar la interfaz System.Management.Automation.Subsystem.Prediction.ICommandPredictor. Esta interfaz declara los métodos usados para consultar los resultados de la predicción y proporcionar comentarios.
Para más información, vea Procedimiento para crear un predictor de línea de comandos.