Udostępnij za pomocą


Używanie predyktorów w elemecie 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. Funkcja PSReadLine 2.2.2 rozszerza możliwości funkcji Predykcyjnej funkcji IntelliSense, dodając obsługę modułów wtyczek korzystających z zaawansowanej logiki w celu udostępnienia 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 Predykcyjnej funkcji IntelliSense sugestia przewidywania jest wyświetlana jako kolorowy tekst po kursorze użytkownika. Sugestie z funkcji Predykcyjnej funkcji IntelliSense ułatwiają nowym i doświadczonym użytkownikom programu PowerShell odnajdywanie, edytowanie i wykonywanie pełnych poleceń w oparciu o pasujące przewidywania. 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 PredictionViewStyle polecenia , Set-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 program PSReadLine przy użyciu modułu Microsoft.PowerShell.PSResourceGet :

Install-PSResource -Name PSReadLine

Narzędzie 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. Program Windows 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 maszyna wirtualna jest obsługiwana, a funkcja 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 Nonewartość .

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 kompleksowa niż historia oparta na sesji, którą można zobaczyć przy użyciu programu 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 przy użyciu sekwencji ucieczki ANSI. Możesz użyć $PSStyle polecenia , aby utworzyć sekwencje ucieczki ANSI.

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

Możesz też utworzyć własne. Domyślny kolor tekstu przewidywania jasnoszary można przywrócić przy użyciu następującej sekwencji ucieczki 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 powiązania

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 obiekcie 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 usługi Machine Learning do przewidywania polecenia programu Azure PowerShell, które chcesz uruchomić, oraz 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 funkcji IntelliSense dla wszystkich elementów, które można ukończyć na karcie w programie PowerShell. Po ustawieniu parametru PSReadLine na InlineViewwartość uzyskasz normalne środowisko uzupełniania kart. Po przełączeniu do ListViewprogramu uzyskasz środowisko intelliSense. Moduł CompletionPredictor można zainstalować z galerii 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).