Compartir a través de


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.

Vista insertada de una predicción

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.

Vista de lista de las predicciones

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 actual
  • AcceptNextSuggestionWord: aceptar la palabra siguiente de la sugerencia insertada
  • AcceptSuggestion se crea dentro de ForwardChar, que está enlazado a RightArrow de forma predeterminada
  • AcceptNextSuggestionWord se crea dentro de la función ForwardWord, 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.

Uso de CompletionPredictor en IntelliSense 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.