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 dodatkowych wtyczek specyficznych dla domeny.
Poprzednie obrazy pokazują domyślną InlineView
sugestię. Naciśnięcie klawisza RightArrow akceptuje sugestię śródliniową. Po zaakceptowaniu sugestii możesz edytować wiersz polecenia przed naciśnięciem klawisza Enter , aby uruchomić polecenie.
Program PSReadLine oferuje również prezentację ListView
sugestii.
W widoku listy możesz użyć klawiszy strzałek, aby przewinąć dostępne sugestie. Widok listy zawiera również źródło przewidywania.
Wartość domyślna PSReadLine to InlineView
. Możesz przełączać się między InlineView
i ListView
przez naciśnięcie klawisza F2 . Możesz również użyć parametru PredictionViewStyle polecenia , Set-PSReadLineOption
aby zmienić widok.
Zarządzanie predykcyjną funkcją IntelliSense
Aby korzystać z funkcji Predykcyjnej IntelliSense, musisz mieć zainstalowaną nowszą wersję programu PSReadLine . Aby uzyskać najlepsze wyniki, zainstaluj najnowszą wersję modułu.
Aby zainstalować element PSReadLine przy użyciu modułu PowerShellGet:
Install-Module -Name PSReadLine
Możesz też zainstalować przy użyciu nowego modułu PowerShellGet w wersji 3 :
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, musisz 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
None
wartość .
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
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 klawiszy
Funkcja PSReadLine zawiera funkcje do nawigowania i akceptowania przewidywań. Na przykład:
AcceptSuggestion
- Zaakceptuj bieżącą sugestię śródliniowąAcceptNextSuggestionWord
- Zaakceptuj następne słowo sugestii wbudowanejAcceptSuggestion
jest wbudowany w obiekcieForwardChar
, który jest domyślnie powiązany z rightarrowAcceptNextSuggestionWord
jest wbudowany w funkcjęForwardWord
, która może być powiązana z klawiszem 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 klawisza 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ć wartość RightArrow na zaakceptowanie następnego słowa sugestii wbudowanej zamiast całego wiersza sugestii.
Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord
Korzystanie z innych wtyczek predyktora
Moduł Az.Tools.Predictor był pierwszą wtyczką dla funkcji Predictive IntelliSense. Używa Edukacja Maszyny do przewidywania polecenia programu Azure PowerShell, 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 funkcji IntelliSense dla wszystkich elementów, które można ukończyć na karcie w programie PowerShell. Po ustawieniu parametru PSReadLine na InlineView
wartość uzyskasz normalne środowisko uzupełniania kart. Po przełączeniu do ListView
programu uzyskasz środowisko intelliSense. Moduł CompletionPredictor można zainstalować z Galeria programu PowerShell.
Jak wspomniano wcześniej, ListView
pokazuje źródło przewidywania. Jeśli masz wiele wtyczek zainstalowanych przewidywań, są pogrupowane według źródła z kolumną 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).