Udostępnij za pośrednictwem


Zastosowanie predyktorów w elemencie PSReadLine

Program PSReadLine 2.1.0 wprowadził funkcję Predykcyjnej funkcji IntelliSense . Predykcyjna funkcja IntelliSense udostępnia sugestie dotyczące pełnych poleceń opartych na elementach z historii PSReadLine. PSReadLine 2.2.2 rozszerza możliwości Predykcyjnego IntelliSense, dodając obsługę modułów plug-in korzystających z zaawansowanej logiki do udostępniania sugestii dotyczących pełnych poleceń. Najnowsza wersja PSReadLine 2.2.6 domyślnie umożliwia przewidywanie.

Korzystanie z funkcji Predykcyjnej IntelliSense

Po włączeniu funkcji predictive IntelliSense, sugestia podpowiedzi pojawia się jako kolorowy tekst za kursorem użytkownika. Sugestie z Predykcyjnego IntelliSense ułatwiają nowym i doświadczonym użytkownikom programu PowerShell odnajdywanie, edytowanie i wykonywanie pełnych poleceń na podstawie dopasowanych przewidywań. Sugestie mogą pochodzić z historii użytkownika i innych wtyczek specyficznych dla domeny.

Wbudowany widok przewidywania

Na poprzedniej ilustracji przedstawiono domyślną InlineView sugestię. Naciśnięcie klawisza strzałka w prawo akceptuje sugestię śródliniową. Po zaakceptowaniu sugestii możesz edytować wiersz polecenia przed naciśnięciem Enter , aby uruchomić polecenie.

Program PSReadLine oferuje również prezentację ListView sugestii.

Widok listy przewidywań

W widoku listy możesz użyć strzałek, aby przewinąć dostępne sugestie. Widok listy również pokazuje źródło prognozy.

Wartość domyślna PSReadLine to InlineView. Możesz przełączać się między InlineView i ListView przez naciśnięcie F2 . Możesz również użyć parametru PredictionViewStyleSet-PSReadLineOption, aby zmienić widok.

Zarządzanie predykcyjną funkcją IntelliSense

Aby korzystać z Predictive IntelliSense, musisz mieć zainstalowaną nowszą wersję PSReadLine. Aby uzyskać najlepsze wyniki, zainstaluj najnowszą wersję modułu.

Zainstaluj PSReadLine przy użyciu modułu Microsoft.PowerShell.PSResourceGet:

Install-PSResource -Name PSReadLine

PSReadLine można zainstalować w programie Windows PowerShell 5.1 lub w programie PowerShell 7 lub nowszym. Aby korzystać z wtyczek predyktora, należy uruchomić program PowerShell w wersji 7.2 lub nowszej. Windows program PowerShell 5.1 może używać predyktora opartego na historii.

W programie PSReadLine 2.2.6 funkcja Predictive IntelliSense jest domyślnie włączona w zależności od następujących warunków:

  • Jeśli terminal wirtualny (VT) jest obsługiwany i program PSReadLine działa w programie PowerShell 7.2 lub nowszym, właściwość PredictionSource jest ustawiona na wartość HistoryAndPlugin
  • Jeśli VT (technologia wirtualizacji) jest obsługiwana, a PSReadLine działa w programie PowerShell starszym niż 7.2, właściwość PredictionSource jest ustawiona na wartość History
  • Jeśli funkcja VT nie jest obsługiwana, właściwość PredictionSource jest ustawiona na None.

Użyj następującego polecenia, aby wyświetlić bieżące ustawienie:

Get-PSReadLineOption | Select-Object -Property PredictionSource

Źródło przewidywania można zmienić przy użyciu Set-PSReadLineOption polecenia cmdlet z parametrem PredictionSource . Źródło przewidywania można ustawić na:

  • None
  • History
  • Plugin
  • HistoryAndPlugin

Uwaga / Notatka

Przewidywania oparte na historii pochodzą z historii obsługiwanej przez program PSReadLine. Ta historia jest bardziej szczegółowa niż historia oparta na sesji, którą można zobaczyć przy użyciu Get-History. Aby uzyskać więcej informacji, zobacz sekcję Historia poleceńabout_PSReadLine.

Ustawianie koloru przewidywania

Domyślnie przewidywania są wyświetlane w jasnoszarym tekście w tym samym wierszu, który użytkownik wpisuje. Aby zapewnić obsługę potrzeb związanych z ułatwieniami dostępu, możesz dostosować kolor przewidywania. Kolory są definiowane za pomocą sekwencji ucieczki ANSI. Możesz użyć $PSStyle do tworzenia sekwencji ucieczek ANSI.

Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }

Możesz też utworzyć własne. Domyślny jasnoszary kolor tekstu przewidywania można przywrócić przy użyciu następującej sekwencji znakowej ANSI.

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

Aby uzyskać więcej informacji na temat ustawiania koloru przewidywania i innych ustawień psReadLine, zobacz Set-PSReadLineOption.

Zmienianie przypisania klawiszy

Funkcja PSReadLine zawiera funkcje do nawigowania i akceptowania przewidywań. Przykład:

  • AcceptSuggestion - Zaakceptuj bieżącą sugestię śródliniową
  • AcceptNextSuggestionWord - Zaakceptuj następne słowo sugestii wbudowanej
  • AcceptSuggestionjest wbudowany w ForwardChar, który jest domyślnie powiązany z RightArrow
  • AcceptNextSuggestionWord jest wbudowany w funkcję ForwardWord, która może być powiązana z Ctrl+f

Możesz użyć Set-PSReadLineKeyHandler polecenia cmdlet , aby zmienić powiązania kluczy.

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

Za pomocą tego powiązania naciśnięcie Ctrl+f akceptuje następny wyraz sugestii śródwierszowej, gdy kursor znajduje się na końcu bieżącego wiersza edycji. Możesz powiązać inne klucze z AcceptSuggestion i AcceptNextSuggestionWord dla podobnych funkcji. Na przykład możesz zmienić działanie RightArrow tak, aby akceptowało kolejne słowo sugestii w linii, zamiast całej sugestii.

Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord

Korzystanie z innych wtyczek predyktora

Moduł Az.Tools.Predictor był pierwszą wtyczką dla predykcyjnej funkcji IntelliSense. Używa Machine Learning do przewidywania Azure PowerShell polecenia, które chcesz uruchomić, i parametrów, których chcesz użyć. Aby uzyskać więcej informacji i instrukcji instalacji, zobacz Ogłoszenie ogólnej dostępności az.Tools.Predictor.

Moduł CompletionPredictor dodaje środowisko IntelliSense dla elementów, które można uzupełniać za pomocą tabulatora w programie PowerShell. Po ustawieniu PSReadLine na brak wartości InlineView, otrzymujesz normalne uzupełnianie za pomocą tabulatora. Po przełączeniu na ListView uzyskasz doświadczenie IntelliSense. Moduł CompletionPredictor można zainstalować z Galeria programu PowerShell.

Funkcja IntelliSense programu PowerShell przy użyciu elementu CompletionPredictor

Jak wspomniano wcześniej, ListView pokazuje źródło przewidywania. Jeśli masz zainstalowane wiele wtyczek, przewidywania są pogrupowane według źródła z pozycją Historia wymienioną jako pierwsza, po której następuje każda wtyczka w kolejności, w której zostały załadowane.

Tworzenie własnego modułu predyktora

Możesz napisać własny predyktor przy użyciu języka C#, aby utworzyć skompilowany moduł programu PowerShell. Moduł musi zaimplementować interfejs System.Management.Automation.Subsystem.Prediction.ICommandPredictor . Ten interfejs deklaruje metody używane do wykonywania zapytań dotyczących wyników przewidywania i przekazywania opinii.

Aby uzyskać więcej informacji, zobacz How to create a command-line predictor (Jak utworzyć predyktor wiersza polecenia).