Compartir a través de


Uso de predictores en PSReadLine

PSReadLine 2.1.0 introdujo la característica IntelliSense predictiva . IntelliSense predictivo proporciona sugerencias de comandos completos basados en elementos del historial de PSReadLine. PSReadLine 2.2.2 amplía la potencia de IntelliSense predictivo agregando compatibilidad con módulos de complemento que usan lógica avanzada para 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 en función de las predicciones coincidentes. Las sugerencias pueden proceder del historial del usuario y de complementos específicos de dominio adicionales.

Vista en línea de una predicción

Las imágenes anteriores muestran el valor predeterminado InlineView de la sugerencia. Al presionar la tecla RightArrow , 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 ListView presentación de las sugerencias.

Vista de lista de predicciones

Cuando se encuentra en la vista de lista, puede usar las teclas de dirección para desplazarse por las sugerencias disponibles. La vista de lista también muestra el origen de la predicción.

PSReadLine tiene InlineViewcomo valor predeterminado . Puede cambiar entre InlineView y ListView presionando la tecla F2 . También puede usar el parámetro PredictionViewStyle de Set-PSReadLineOption para cambiar la vista.

Gestión de las funciones predictivas de IntelliSense

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, instale mediante el nuevo módulo PowerShellGet v3 :

Install-PSResource -Name PSReadLine

PSReadLine se puede instalar en Windows PowerShell 5.1 o en PowerShell 7 o posterior. Para usar complementos de predicción, debe ejecutarse en 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 el terminal virtual (VT) y PSReadLine que se ejecuta en PowerShell 7.2 o posterior, PredictionSource se establece en HistoryAndPlugin
  • Si se admite VT y PSReadLine que se ejecuta en PowerShell anterior a la 7.2, PredictionSource se establece en History
  • Si no se admite VT, PredictionSource se establece en None.

Use el siguiente comando para ver la configuración actual:

Get-PSReadLineOption | Select-Object -Property PredictionSource

Puede cambiar el origen de predicción mediante el Set-PSReadLineOption cmdlet con el parámetro PredictionSource . PredictionSource se puede establecer en:

  • 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 sesión que puede ver mediante Get-History. Para obtener más información, consulte 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 que el usuario está escribiendo. Para satisfacer 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 su propio. El color predeterminado del texto de predicción gris claro se puede restaurar mediante la siguiente secuencia de escape ANSI.

Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }

Para obtener más información sobre cómo establecer el color de predicción y otras configuraciones de PSReadLine, vea Set-PSReadLineOption.

Cambio de asignación de teclas

PSReadLine contiene funciones para navegar y aceptar predicciones. Por ejemplo:

  • AcceptSuggestion - Aceptar la sugerencia en línea actual
  • AcceptNextSuggestionWord - Aceptar la siguiente palabra de la sugerencia insertada
  • AcceptSuggestion se construye dentro de ForwardChar, que está vinculado a RightArrow de forma predeterminada.
  • AcceptNextSuggestionWord se compila dentro de la función ForwardWord, que se puede enlazar a Ctrl+f

Puede usar el Set-PSReadLineKeyHandler cmdlet para cambiar los enlaces de clave.

Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord

Con esta asignación, al presionar Ctrl+f se acepta la siguiente palabra de una sugerencia en línea cuando el cursor está al final de la línea de edición actual. Puede enlazar otras claves a AcceptSuggestion y AcceptNextSuggestionWord para funcionalidades similares. Por ejemplo, puede que quiera hacer que RightArrow acepte la siguiente palabra de la sugerencia insertada, en lugar de toda la línea de sugerencias.

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 Machine Learning para predecir qué comando de Azure PowerShell desea ejecutar y los parámetros que desea usar. Para obtener más información e instrucciones de instalación, consulte Anuncio de la disponibilidad general de Az.Tools.Predictor.

El módulo CompletionPredictor agrega una experiencia de IntelliSense para cualquier cosa que se pueda completar mediante tabulación 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 IntelliSense de PowerShell mediante CompletionPredictor

Como se indicó anteriormente, ListView muestra el origen de la predicción. Si tiene varios complementos instalados, las predicciones se agrupan por origen con historial enumerado primero seguido de cada complemento en el orden en que se cargaron.

Creación de su propio módulo de predicción

Puede escribir su propio predictor 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 obtener más información, consulte Creación de un predictor de línea de comandos.