about_PSReadLine

Krótki opis

PsReadLine zapewnia ulepszone środowisko edytowania wiersza polecenia w konsoli programu PowerShell.

Długi opis

PsReadLine 2.0 zapewnia zaawansowane środowisko edytowania wiersza polecenia dla konsoli programu PowerShell. Oferuje ona następujące możliwości:

  • Kolorowanie składni wiersza polecenia
  • Wizualne wskazanie błędów składniowych
  • Lepsze środowisko wielo wierszowe (edytowanie i historia)
  • Dostosowywalne powiązania kluczy
  • Tryby Cmd i Emacs
  • Wiele opcji konfiguracji
  • Uzupełnianie stylu powłoki Bash (opcjonalne w trybie Cmd, domyślne w trybie Emacs)
  • Emacs yank/kill-ring
  • Ruch i usuwanie oparte na tokenach programu PowerShell

Interfejs PSReadLine wymaga programu PowerShell 3.0 lub nowszego. PsReadLine współpracuje z domyślnym hostem konsoli, Visual Studio Code i terminalem okna. Nie działa w programie PowerShell ISE.

PsReadLine 2.1.0 jest dostarczany z programem PowerShell 7.2 i jest obsługiwany we wszystkich obsługiwanych wersjach programu PowerShell. Jest on dostępny do zainstalowania z Galeria programu PowerShell. Aby zainstalować interfejs PSReadLine 2.1.0 w obsługiwanej wersji programu PowerShell, uruchom następujące polecenie.

Install-Module -Name PSReadLine -RequiredVersion 2.1.0

Uwaga

Począwszy od programu PowerShell 7.0, program PowerShell pomija automatyczne ładowanie funkcji PSReadLine Windows przypadku wykrycia programu czytnika zawartości ekranu. Obecnie linia PSReadLine nie działa dobrze z czytnikami zawartości ekranu. Domyślne renderowanie i formatowanie programu PowerShell 7.0 na Windows działa prawidłowo. W razie potrzeby możesz ręcznie załadować moduł.

Następujące funkcje są dostępne w klasie Microsoft.PowerShell.PSConsoleReadLine.

Podstawowe funkcje edycji

Przerwanie

Przerwać bieżącą akcję, na przykład: przyrostowe wyszukiwanie historii.

  • Emacs: <Ctrl+g>

AcceptAndGetNext

Spróbuj wykonać bieżące dane wejściowe. Jeśli można go wykonać (na przykład AcceptLine), przy następnym wywołaniu elementu ReadLine przywołuj następny element z historii.

  • Emacs: <Ctrl+o>

AcceptLine

Spróbuj wykonać bieżące dane wejściowe. Jeśli bieżące dane wejściowe są niekompletne (na przykład brakuje nawiasu zamykającego, nawiasu lub cudzysłowu), w następnym wierszu zostanie wyświetlony monit kontynuacji, a wiersz PSReadLine czeka na edytowanie bieżących danych wejściowych przez klucze.

  • Cmd: <Enter>
  • Emacs: <Enter>
  • Tryb wstawiania Vi: <Enter>

Addline

Monit kontynuacji jest wyświetlany w następnym wierszu, a wiersz PSReadLine czeka, aż klucze będą edytować bieżące dane wejściowe. Jest to przydatne do wprowadzania danych wejściowych w wielu wierszach jako pojedynczego polecenia, nawet jeśli pojedynczy wiersz jest pełne dane wejściowe samodzielnie.

  • Cmd: <Shift+Enter>
  • Emacs: <Shift+Enter>
  • Tryb wstawiania Vi: <Shift+Enter>
  • Tryb polecenia Vi: <Shift+Enter>

BackwardDeleteChar

Usuń znak przed kursorem.

  • Cmd: <Backspace> , <Ctrl+h>
  • Emacs: <Backspace> , <Ctrl+Backspace> , <Ctrl+h>
  • Tryb wstawiania Vi: <Backspace>
  • Tryb polecenia Vi: <X> , <d,h>

BackwardDeleteLine

Podobnie jak BackwardKillLine — usuwa tekst od punktu do początku wiersza, ale nie umieszcza usuniętego tekstu w pierścieniu kasowym.

  • Cmd: <Ctrl+Home>
  • Tryb wstawiania Vi: <Ctrl+u> , <Ctrl+Home>
  • Tryb polecenia Vi: <Ctrl+u> , <Ctrl+Home> , <d,0>

BackwardDeleteWord

Usuwa poprzedni wyraz.

  • Tryb polecenia Vi: <Ctrl+w> , <d,b>

BackwardKillLine

Wyczyść dane wejściowe od początku danych wejściowych do kursora. Wyczyszony tekst jest umieszczany w pierścieniu zabicia.

  • Emacs: <Ctrl+u> , <Ctrl+x,Backspace>

BackwardKillWord

Wyczyść dane wejściowe od początku bieżącego wyrazu do kursora. Jeśli kursor znajduje się między wyrazami, dane wejściowe są wyczyszczane od początku poprzedniego wyrazu do kursora. Wyczyszony tekst jest umieszczany w pierścieniu zabicia.

  • Cmd: <Ctrl+Backspace> , <Ctrl+w>
  • Emacs: <Alt+Backspace> , <Escape,Backspace>
  • Tryb wstawiania Vi: <Ctrl+Backspace>
  • Tryb polecenia Vi: <Ctrl+Backspace>

CancelLine

Anuluj bieżące dane wejściowe, pozostawiając dane wejściowe na ekranie, ale wraca do hosta, aby ponownie ocenić monit.

  • Tryb wstawiania Vi: <Ctrl+c>
  • Tryb polecenia Vi: <Ctrl+c>

Kopiuj

Skopiuj wybrany region do schowka systemu. Jeśli nie wybrano żadnego regionu, skopiuj cały wiersz.

  • Cmd: <Ctrl+C>

CopyOrCancelLine

Jeśli wybrano tekst, skopiuj go do schowka, a w przeciwnym razie anuluj wiersz.

  • Cmd: <Ctrl+c>
  • Emacs: <Ctrl+c>

Wytnij

Usuń wybrany region, umieszczając usunięty tekst w schowku systemowym.

  • Cmd: <Ctrl+x>

DeleteChar

Usuń znak pod kursorem.

  • Cmd: <Delete>
  • Emacs: <Delete>
  • Tryb wstawiania Vi: <Delete>
  • Tryb polecenia Vi: <Delete> , <x> , <d,l> , <d,Spacebar>

DeleteCharOrExit

Usuń znak pod kursorem lub jeśli wiersz jest pusty, zakończ proces.

  • Emacs: <Ctrl+d>

DeleteEndOfBuffer

Usuwa na końcu buforu wieloliniowego.

  • Tryb polecenia Vi: <d,G>

DeleteEndOfWord

Usuń na końcu wyrazu.

  • Tryb polecenia Vi: <d,e>

DeleteLine

Usuwa bieżącą linię logiczną buforu wieloliniowego, umożliwiając cofnięcie.

  • Tryb polecenia Vi: <d,d> , <d,_>

DeletePreviousLines

Usuwa poprzednie żądane linie logiczne i bieżącą linię logiczną w buforze wieloliniowym.

  • Tryb polecenia Vi: <d,k>

DeleteRelativeLines

Usuwa od początku buforu do bieżącej linii logicznej w buforze wieloliniowym.

W większości poleceń Vi, polecenie może być dołączane do argumentu liczbowego, który określa bezwzględny numer wiersza, który wraz z bieżącym numerem wiersza, stanowi zakres wierszy do <d,g,g> usunięcia. Jeśli nie zostanie określony, argument liczbowy domyślnie ma wartość 1, która odwołuje się do pierwszej linii logicznej w buforze wieloliniowym.

Rzeczywista liczba wierszy do usunięcia z wieloliniowej jest obliczana jako różnica między bieżącym numerem wiersza logicznego a określonym argumentem liczbowym, co może być ujemne. W związku z tym względna część nazwy metody.

  • Tryb polecenia Vi: <d,g,g>

DeleteNextLines

Usuwa bieżącą linię logiczną i następne żądane linie logiczne w buforze wieloliniowym.

  • Tryb polecenia Vi: <d,j>

DeleteLineToFirstChar

Usuwa tekst z kursora do pierwszego niepustego znaku w wierszu.

  • Tryb polecenia Vi: <d,^>

DeleteToEnd

Usuń na końcu wiersza.

  • Tryb polecenia Vi: <D> , <d,$>

DeleteWord

Usuń następny wyraz.

  • Tryb polecenia Vi: <d,w>

ForwardDeleteLine

Podobnie jak ForwardKillLine — usuwa tekst od punktu do końca wiersza, ale nie umieszcza usuniętego tekstu w pierścieniu zabicia.

  • Cmd: <Ctrl+End>
  • Tryb wstawiania vi: <Ctrl+End>
  • Tryb polecenia Vi: <Ctrl+End>

InsertLineAbove

Nad bieżącym wierszem jest tworzony nowy pusty wiersz, niezależnie od tego, gdzie znajduje się kursor w bieżącym wierszu. Kursor zostanie przeniesiony na początek nowego wiersza.

  • Cmd: <Ctrl+Enter>

InsertLineBelow

Nowy pusty wiersz jest tworzony poniżej bieżącego wiersza niezależnie od tego, gdzie kursor znajduje się w bieżącym wierszu. Kursor zostanie przeniesiony na początek nowego wiersza.

  • Cmd: <Shift+Ctrl+Enter>

InvertCase

Odwróć przypadek bieżącego znaku i przejdź do następnego.

  • Tryb polecenia Vi: <~>

KillLine

Wyczyść dane wejściowe z kursora na końcu danych wejściowych. Wyczyszony tekst jest umieszczany w pierścieniu zabicia.

  • Emacs: <Ctrl+k>

KillRegion

Kill the text between the cursor and the mark.Kill the text between the cursor and the mark.

  • Funkcja jest niepowiązana.

KillWord

Wyczyść dane wejściowe z kursora na końcu bieżącego wyrazu. Jeśli kursor znajduje się między wyrazami, dane wejściowe są czyszczane od kursora do końca następnego wyrazu. Wyczyszony tekst jest umieszczany w pierścieniu zabicia.

  • Cmd: <Alt+d> , <Ctrl+Delete>
  • Emacs: <Alt+d> , <Escape,d>
  • Tryb wstawiania vi: <Ctrl+Delete>
  • Tryb polecenia Vi: <Ctrl+Delete>

Wklej

Wklej tekst ze schowka systemowego.

  • Cmd: <Ctrl+v> , <Shift+Insert>
  • Tryb wstawiania vi: <Ctrl+v>
  • Tryb polecenia Vi: <Ctrl+v>

Ważne

W przypadku korzystania z funkcji Wklej cała zawartość buforu schowka jest wklejona do buforu wejściowego funkcji PSReadLine. Bufor wejściowy jest następnie przekazywany do parsera programu PowerShell. Dane wejściowe wklejone przy użyciu metody wklejania kliknięcia prawym przyciskiem myszy aplikacji konsolowej są kopiowane do buforu wejściowego po jednym znaku na raz. Bufor wejściowy jest przekazywany do parsera po skopiowaniu znaku nowego linii. W związku z tym dane wejściowe są analizowane po jednym wierszu na raz. Różnica między metodami wklejania powoduje różne zachowanie wykonywania.

PasteAfter

Wklej schowek po kursorze, przenosząc kursor na koniec wklejanego tekstu.

  • Tryb polecenia Vi: <p>

PasteBefore

Wklej schowek przed kursorem, przenosząc kursor na koniec wklejanego tekstu.

  • Tryb polecenia Vi: <P>

PrependAndAccept

Dołączanie "#" i akceptowanie wiersza.

  • Tryb polecenia Vi: <#>

Ponów

Cofanie cofania.

  • Cmd: <Ctrl+y>
  • Tryb wstawiania vi: <Ctrl+y>
  • Tryb polecenia Vi: <Ctrl+y>

RepeatLastCommand

Powtórz ostatnią modyfikację tekstu.

  • Tryb polecenia Vi: <.>

RevertLine

Przywraca wszystkie dane wejściowe do bieżących danych wejściowych.

  • Cmd: <Escape>
  • Emacs: <Alt+r> , <Escape,r>

ShellBackwardKillWord

Wyczyść dane wejściowe od początku bieżącego wyrazu do kursora. Jeśli kursor znajduje się między wyrazami, dane wejściowe są wyczyszczane od początku poprzedniego wyrazu do kursora. Wyczyszony tekst jest umieszczany w pierścieniu zabicia.

Funkcja jest niepowiązana.

ShellKillWord

Wyczyść dane wejściowe z kursora na końcu bieżącego wyrazu. Jeśli kursor znajduje się między wyrazami, dane wejściowe są czyszczane od kursora do końca następnego wyrazu. Wyczyszony tekst jest umieszczany w pierścieniu zabicia.

Funkcja jest niepowiązana.

SwapCharacters

Zamień bieżący znak i znak przed nim.

  • Emacs: <Ctrl+t>
  • Tryb wstawiania Vi: <Ctrl+t>
  • Tryb polecenia Vi: <Ctrl+t>

Cofnij

Cofnij poprzednią edycję.

  • Cmd: <Ctrl+z>
  • Emacs: <Ctrl+_> , <Ctrl+x,Ctrl+u>
  • Tryb wstawiania Vi: <Ctrl+z>
  • Tryb polecenia Vi: <Ctrl+z> , <u>

UndoAll

Cofanie wszystkich poprzednich edycji dla wiersza.

  • Tryb polecenia Vi: <U>

UnixWordButout

Wyczyść dane wejściowe od początku bieżącego wyrazu do kursora. Jeśli kursor znajduje się między wyrazami, dane wejściowe są wyczyszczane od początku poprzedniego wyrazu do kursora. Wyczyszony tekst jest umieszczany w pierścieniu zabicia.

  • Emacs: <Ctrl+w>

ValidateAndAcceptLine

Spróbuj wykonać bieżące dane wejściowe. Jeśli bieżące dane wejściowe są niekompletne (na przykład brakuje nawiasu zamykającego, nawiasu lub cudzysłowu), w następnym wierszu zostanie wyświetlony monit kontynuacji, a wiersz PSReadLine czeka na edytowanie bieżących danych wejściowych przez klucze.

  • Emacs: <Ctrl+m>

ViAcceptLine

Zaakceptuj wiersz i przełącz się do trybu wstawiania.

  • Tryb polecenia Vi: <Enter>

ViAcceptLineOrExit

Podobnie jak DeleteCharOrExit w trybie Emacs, ale akceptuje wiersz zamiast usuwać znak.

  • Tryb wstawiania Vi: <Ctrl+d>
  • Tryb polecenia Vi: <Ctrl+d>

ViAppendLine

Pod bieżącym wierszem zostanie wstawiony nowy wiersz.

  • Tryb polecenia Vi: <o>

ViBackwardDeleteGlob

Usuwa poprzedni wyraz, używając tylko odstępu jako ogranicznika słowa.

  • Tryb polecenia Vi: <d,B>

ViBackwardGlob

Przenosi kursor z powrotem na początek poprzedniego wyrazu, używając tylko białych znaków jako ograniczników.

  • Tryb polecenia Vi: <B>

ViDeleteBrace

Znajdź pasujący nawias klamrowy, nawias kwadratowy lub nawias kwadratowy i usuń całą zawartość, w tym nawias klamrowy.

  • Tryb polecenia Vi: <d,%>

ViDeleteEndOfGlob

Usuń na końcu wyrazu.

  • Tryb polecenia Vi: <d,E>

ViDeleteGlob

Usuń następny glob (znak rozdzielany znakiem odstępu).

  • Tryb polecenia Vi: <d,W>

ViDeleteToBeforeChar

Usuwa do danego znaku.

  • Tryb polecenia Vi: <d,t>

ViDeleteToBeforeCharBackward

Usuwa do danego znaku.

  • Tryb polecenia Vi: <d,T>

ViDeleteToChar

Usuwa do danego znaku.

  • Tryb polecenia Vi: <d,f>

ViDeleteToCharBackward

Usuwa wstecz do danego znaku.

  • Tryb polecenia Vi: <d,F>

ViInsertAtBegining

Przełącz się do trybu wstawiania i umieść kursor na początku wiersza.

  • Tryb polecenia Vi: <I>

ViInsertAtEnd

Przełącz się do trybu wstawiania i umieść kursor na końcu wiersza.

  • Tryb polecenia Vi: <A>

ViInsertLine

Nad bieżącym wierszem zostanie wstawiony nowy wiersz.

  • Tryb polecenia Vi: <O>

ViInsertWithAppend

Dołącz z bieżącego położenia wiersza.

  • Tryb polecenia Vi: <a>

ViInsertWithDelete

Usuń bieżący znak i przełącz się do trybu wstawiania.

  • Tryb polecenia Vi: <s>

ViJoinLines

Łączy bieżący wiersz i następny wiersz.

  • Tryb polecenia Vi: <J>

ViReplaceLine

Wymazaj cały wiersz polecenia.

  • Tryb polecenia Vi: <S> , <c,c>

ViReplaceToBeforeChar

Zamienia do danego znaku.

  • Tryb polecenia Vi: <c,t>

ViReplaceToBeforeCharBackward

Zamienia do danego znaku.

  • Tryb polecenia Vi: <c,T>

ViReplaceToChar

Usuwa do danego znaku.

  • Tryb polecenia Vi: <c,f>

ViReplaceToCharBackward

Zamienia do danego znaku.

  • Tryb polecenia Vi: <c,F>

ViYankBeginningOfLine

Yank od początku buforu do kursora.

  • Tryb polecenia Vi: <y,0>

ViYankEndOfGlob

Przesuwaj kursor od kursora na koniec programu WORD.

  • Tryb polecenia Vi: <y,E>

ViYankEndOfWord

Przesuwaj kursor od kursora do końca wyrazów.

  • Tryb polecenia Vi: <y,e>

ViYankLeft

Znaki Yank z lewej strony kursora.

  • Tryb polecenia Vi: <y,h>

ViYankLine

Przechylij cały bufor.

  • Tryb polecenia Vi: <y,y>

ViYankNextGlob

Przesuwaj kursor od kursora do początku kolejnych aplikacji WORD.

  • Tryb polecenia Vi: <y,W>

ViJankNextWord

Umieść wyrazy za kursorem.

  • Tryb polecenia Vi: <y,w>

ViYankPercent

Przekieruj do/z pasującego nawiasu klamrowego.

  • Tryb polecenia Vi: <y,%>

ViYankPreviousGlob

Od początku programu WORD do kursora.

  • Tryb polecenia Vi: <y,B>

ViYankPreviousWord

Umieść wyrazy przed kursorem.

  • Tryb polecenia Vi: <y,b>

ViYankRight

Znaki Yank pod kursorem i z prawej strony kursora.

  • Tryb polecenia Vi: <y,l> , <y,Spacebar>

ViYankToEndOfLine

Od kursora do końca buforu.

  • Tryb polecenia Vi: <y,$>

ViYankToFirstChar

Od pierwszego znaku spoza odstępu do kursora.

  • Tryb polecenia Vi: <y,^>

Yank

Dodaj ostatnio umyty tekst do danych wejściowych.

  • Emacs: <Ctrl+y>

YankLastArg

Yank ostatni argument z poprzedniego wiersza historii. W przypadku argumentu, gdy jest wywoływany po raz pierwszy, zachowuje się tak samo jak YankNthArg. Jeśli zostanie wywołana wiele razy, zamiast tego iteruje po historii, a argument arg ustawia kierunek (ujemny odwraca kierunek).

  • Cmd: <Alt+.>
  • Emacs: <Alt+.> , <Alt+_> , <Escape,.> , <Escape,_>

YankNthArg

Wyczyszczysz pierwszy argument (po poleceniu ) z poprzedniego wiersza historii. Argumentem jest yank n-tego argumentu (zaczynając od 0), jeśli argument jest ujemny, zacznij od ostatniego argumentu.

  • Emacs: <Ctrl+Alt+y> , <Escape,Ctrl+y>

YankPop

Jeśli poprzednią operacją był Yank lub YankPop, zastąp wcześniej yanked tekst następnym tekstem, który został uśmiercony z pierścienia zabicia.

  • Emacs: <Alt+y> , <Escape,y>

Funkcje przesuwania kursora

BackwardChar (Chyb do tyłu)

Przenieś kursor o jeden znak w lewo. Może to spowodować przeniesienie kursora do poprzedniego wiersza wielo wiersza danych wejściowych.

  • Cmd: <LeftArrow>
  • Emacs: <LeftArrow> , <Ctrl+b>
  • Tryb wstawiania vi: <LeftArrow>
  • Tryb polecenia Vi: <LeftArrow> , <Backspace> , <h>

BackwardWord (Słowo wsteczne)

Przenieś kursor z powrotem na początek bieżącego wyrazu lub, jeśli między wyrazami, na początek poprzedniego wyrazu. Granice wyrazów są definiowane przez konfigurowalny zestaw znaków.

  • Cmd: <Ctrl+LeftArrow>
  • Emacs: <Alt+b> , <Escape,b>
  • Tryb wstawiania vi: <Ctrl+LeftArrow>
  • Tryb polecenia Vi: <Ctrl+LeftArrow>

BeginningOfLine

Jeśli dane wejściowe mają wiele wierszy, przejdź do początku bieżącego wiersza lub, jeśli już na początku wiersza, przejdź do początku danych wejściowych. Jeśli dane wejściowe mają jeden wiersz, przejdź do początku danych wejściowych.

  • Cmd: <Home>
  • Emacs: <Home> , <Ctrl+a>
  • Tryb wstawiania vi: <Home>
  • Tryb polecenia Vi: <Home>

EndOfLine

Jeśli dane wejściowe mają wiele wierszy, przejdź na koniec bieżącego wiersza lub, jeśli znajduje się już na końcu wiersza, przejdź na koniec danych wejściowych. Jeśli dane wejściowe mają jeden wiersz, przejdź na koniec danych wejściowych.

  • Cmd: <End>
  • Emacs: <End> , <Ctrl+e>
  • Tryb wstawiania vi: <End>

ForwardChar

Przenieś kursor o jeden znak w prawo. Może to spowodować przeniesienie kursora do następnego wiersza wielo wiersza danych wejściowych.

  • Cmd: <RightArrow>
  • Emacs: <RightArrow> , <Ctrl+f>
  • Tryb wstawiania vi: <RightArrow>
  • Tryb polecenia Vi: <RightArrow> , <Space> , <l>

ForwardWord (Hasło do przodu)

Przesuń kursor do przodu na koniec bieżącego wyrazu lub, jeśli znajduje się między wyrazami, na koniec następnego wyrazu. Granice wyrazów są definiowane przez konfigurowalny zestaw znaków.

  • Emacs: <Alt+f> , <Escape,f>

GotoBrace

Przejdź do pasującego nawiasu klamrowego, nawiasu kwadratowego lub nawiasu kwadratowego.

  • Cmd: <Ctrl+]>
  • Tryb wstawiania vi: <Ctrl+]>
  • Tryb polecenia Vi: <Ctrl+]>

GotoColumn

Przejdź do kolumny wskazanej przez arg.

  • Tryb polecenia Vi: <|>

GotoFirstNonBlankOfLine

Przenieś kursor do pierwszego niepustego znaku w wierszu.

  • Tryb polecenia Vi: <^> , <_>

MoveToEndOfLine

Przenieś kursor na koniec danych wejściowych.

  • Tryb polecenia Vi: <End> , <$>

NextLine

Przenieś kursor do następnego wiersza.

  • Funkcja jest niepowiązana.

NextWord

Przesuń kursor do przodu na początek następnego wyrazu. Granice wyrazów są definiowane przez konfigurowalny zestaw znaków.

  • Cmd: <Ctrl+RightArrow>
  • Tryb wstawiania Vi: <Ctrl+RightArrow>
  • Tryb polecenia Vi: <Ctrl+RightArrow>

NextWordEnd

Przesuń kursor do przodu na koniec bieżącego wyrazu lub , jeśli między wyrazami, na koniec następnego wyrazu. Granice wyrazów są definiowane przez konfigurowalny zestaw znaków.

  • Tryb polecenia Vi: <e>

PreviousLine

Przenieś kursor do poprzedniego wiersza.

  • Funkcja jest niepowiązana.

ShellBackwardWord

Przenieś kursor z powrotem na początek bieżącego wyrazu lub, jeśli między wyrazami, na początek poprzedniego wyrazu. Granice wyrazów są definiowane przez tokeny programu PowerShell.

  • Funkcja jest niepowiązana.

ShellForwardWord

Przesuń kursor do przodu na początek następnego wyrazu. Granice wyrazów są definiowane przez tokeny programu PowerShell.

  • Funkcja jest niepowiązana.

ShellNextWord

Przesuń kursor do przodu na koniec bieżącego wyrazu lub , jeśli między wyrazami, na koniec następnego wyrazu. Granice wyrazów są definiowane przez tokeny programu PowerShell.

  • Funkcja jest niepowiązana.

ViBackwardChar

Przenieś kursor o jeden znak w lewo w trybie edycji Vi. Może to spowodować przeniesienie kursora do poprzedniego wiersza wielo wiersza danych wejściowych.

  • Tryb wstawiania Vi: <LeftArrow>
  • Tryb polecenia Vi: <LeftArrow> , <Backspace> , <h>

ViBackwardWord

Przenieś kursor z powrotem na początek bieżącego wyrazu lub, jeśli między wyrazami, na początek poprzedniego wyrazu. Granice wyrazów są definiowane przez konfigurowalny zestaw znaków.

  • Tryb polecenia Vi: <b>

ViForwardChar

Przenieś kursor o jeden znak w prawo w trybie edycji Vi. Może to spowodować przeniesienie kursora do następnego wiersza wielo wiersza danych wejściowych.

  • Tryb wstawiania Vi: <RightArrow>
  • Tryb polecenia Vi: <RightArrow> , <Spacebar> , <l>

ViEndOfGlob

Przenosi kursor na koniec wyrazu, używając tylko białych znaków jako ograniczników.

  • Tryb polecenia Vi: <E>

ViEndOfPreviousGlob

Przenosi się na koniec poprzedniego wyrazu, używając tylko odstępu jako ogranicznika wyrazów.

  • Funkcja jest niepowiązana.

ViGotoBrace

Podobnie jak w przypadku usługi GotoBrace, ale jest oparta na znakach, a nie na tokenach.

  • Tryb polecenia Vi: <%>

ViNextGlob

Przechodzi do następnego wyrazu, używając tylko białych znaków jako ogranicznika wyrazów.

  • Tryb polecenia Vi: <W>

ViNextWord

Przesuń kursor do przodu na początek następnego wyrazu. Granice wyrazów są definiowane przez konfigurowalny zestaw znaków.

  • Tryb polecenia Vi: <w>

Funkcje historii

BeginningOfHistory

Przejdź do pierwszego elementu w historii.

  • Emacs: <Alt+<>

ClearHistory

Czyszczy historię w psreadline. Nie ma to wpływu na historię programu PowerShell.

  • Cmd: <Alt+F7>

EndOfHistory

Przejście do ostatniego elementu (bieżące dane wejściowe) w historii.

  • Emacs: <Alt+>>

ForwardSearchHistory

Wykonywanie przyrostowego wyszukiwania do przodu w historii.

  • Cmd: <Ctrl+s>
  • Emacs: <Ctrl+s>

HistorySearchBackward

Zastąp bieżące dane wejściowe elementem "previous" z historii PSReadLine, który pasuje do znaków między znakiem start i wejściowym a kursorem.

  • Cmd: <F8>

HistorySearchForward

Zastąp bieżące dane wejściowe elementem "next" z historii PSReadLine, który pasuje do znaków między znakiem start i wejściowym a kursorem.

  • Cmd: <Shift+F8>

NextHistory

Zastąp bieżące dane wejściowe elementem "next" z historii PSReadLine.

  • Cmd: <DownArrow>
  • Emacs: <DownArrow> , <Ctrl+n>
  • Tryb wstawiania Vi: <DownArrow>
  • Tryb polecenia Vi: <DownArrow> , <j> , <+>

PreviousHistory

Zastąp bieżące dane wejściowe elementem "previous" z historii PSReadLine.

  • Cmd: <UpArrow>
  • Emacs: <UpArrow> , <Ctrl+p>
  • Tryb wstawiania Vi: <UpArrow>
  • Tryb polecenia Vi: <UpArrow> , <k> , <->

ReverseSearchHistory

Wykonywanie przyrostowego wyszukiwania wstecznego w historii.

  • Cmd: <Ctrl+r>
  • Emacs: <Ctrl+r>

ViSearchHistoryBackward

Monituje o ciąg wyszukiwania i inicjuje wyszukiwanie w poleceniu AcceptLine.

  • Tryb wstawiania Vi: <Ctrl+r>
  • Tryb polecenia Vi: </> , <Ctrl+r>

Funkcje uzupełniania

Ukończ

Spróbuj wykonać uzupełnianie tekstu otaczającego kursor. Jeśli istnieje wiele możliwych uzupełniania, do ukończenia jest używany najdłuższy jednoznaczny prefiks. Jeśli próbujesz ukończyć najdłuższe jednoznaczne uzupełnianie, zostanie wyświetlona lista możliwych do wykonania.

  • Emacs: <Tab>

Spróbuj wykonać uzupełnianie tekstu otaczającego kursor. Jeśli istnieje wiele możliwych uzupełniania, do ukończenia jest używany najdłuższy jednoznaczny prefiks. Jeśli próbujesz ukończyć najdłuższe jednoznaczne uzupełnianie, zostanie wyświetlona lista możliwych do wykonania.

  • Cmd: <Ctrl+@> , <Ctrl+Spacebar>
  • Emacs: <Ctrl+Spacebar>

PossibleCompletions

Wyświetl listę możliwych uzupełniania.

  • Emacs: <Alt+=>
  • Tryb wstawiania Vi: <Ctrl+Spacebar>
  • Tryb polecenia Vi: <Ctrl+Spacebar>

TabCompleteNext

Spróbuj ukończyć tekst otaczający kursor przy użyciu następnego dostępnego uzupełniania.

  • Cmd: <Tab>
  • Tryb polecenia Vi: <Tab>

TabCompletePrevious

Spróbuj ukończyć tekst otaczający kursor przy użyciu poprzedniego dostępnego uzupełniania.

  • Cmd: <Shift+Tab>
  • Tryb polecenia Vi: <Shift+Tab>

ViTabCompleteNext

Kończy bieżącą grupę edycji, jeśli to konieczne, i wywołuje TabCompleteNext.

  • Tryb wstawiania Vi: <Tab>

ViTabCompletePrevious

Kończy bieżącą grupę edycji, jeśli to konieczne, i wywołuje polecenie TabCompletePrevious.

  • Tryb wstawiania Vi: <Shift+Tab>

Różne funkcje

AcceptNextSuggestionWord

Zaakceptuj następny wyraz wbudowanej lub wybranej sugestii.

  • Funkcja jest niepowiązana.

AcceptSuggestion

Zaakceptuj bieżącą sugestię w tekście lub wybraną.

  • Funkcja jest niepowiązana.

CaptureScreen

Uruchamianie interaktywnego przechwytywania ekranu — strzałki w górę/w dół zaznacz wiersze, wprowadź kopiuje zaznaczony tekst do schowka jako tekst i kod HTML.

  • Funkcja jest niepowiązana.

ClearScreen

Wyczyść ekran i narysuj bieżący wiersz w górnej części ekranu.

  • Cmd: <Ctrl+l>
  • Emacs: <Ctrl+l>
  • Tryb wstawiania Vi: <Ctrl+l>
  • Tryb polecenia Vi: <Ctrl+l>

DigitArgument

Uruchom nowy argument cyfry, aby przekazać go do innych funkcji.

  • Cmd: <Alt+0> , , , , , , , , <Alt+1> , , <Alt+2> <Alt+3> <Alt+4> <Alt+5> <Alt+6> <Alt+7> <Alt+8> <Alt+9> , <Alt+->
  • Emacs: <Alt+0> , , , , , , , , <Alt+1> , , , <Alt+2> <Alt+3> <Alt+4> <Alt+5> <Alt+6> <Alt+7> <Alt+8> <Alt+9> , <Alt+->
  • Tryb polecenia Vi: <0> , , , , , , , , <1> , <2> <3> <4> <5> <6> <7> <8> , <9>

InvokePrompt

Wymazuje bieżący monit i wywołuje funkcję monitu, aby ponownie wyświetlać monit. Przydatne w przypadku niestandardowych programów obsługi kluczy, które zmieniają stan. Na przykład zmień bieżący katalog.

  • Funkcja jest niepowiązana.

ScrollDisplayDown

Przewiń ekran w dół o jeden ekran.

  • Cmd: <PageDown>
  • Emacs: <PageDown>

ScrollDisplayDownLine

Przewiń ekran w dół o jeden wiersz.

  • Cmd: <Ctrl+PageDown>
  • Emacs: <Ctrl+PageDown>

ScrollDisplayToCursor

Przewiń ekran do kursora.

  • Emacs: <Ctrl+End>

ScrollDisplayTop

Przewiń ekran do góry.

  • Emacs: <Ctrl+Home>

ScrollDisplayUp

Przewiń ekran w górę o jeden ekran.

  • Cmd: <PageUp>
  • Emacs: <PageUp>

ScrollDisplayUpLine

Przewiń ekran w górę o jeden wiersz.

  • Cmd: <Ctrl+PageUp>
  • Emacs: <Ctrl+PageUp>

SelfInsert

Wstaw klucz.

  • Funkcja jest niepowiązana.

ShowKeyBindings

Pokaż wszystkie powiązane klucze.

  • Cmd: <Ctrl+Alt+?>
  • Emacs: <Ctrl+Alt+?>
  • Tryb wstawiania Vi: <Ctrl+Alt+?>

ViCommandMode

Przełącz bieżący tryb operacyjny z Vi-Insert na Vi-Command.

  • Tryb wstawiania Vi: <Escape>

ViDigitArgumentInChord

Rozpocznij nowy argument cyfry, aby przekazać go do innych funkcji w jednej z chordów vi.

  • Funkcja jest niepowiązana.

ViEditVisually

Edytuj wiersz polecenia w edytorze tekstów określonym przez $env:EDITOR lub $env:VISUAL.

  • Emacs: <Ctrl+x,Ctrl+e>
  • Tryb polecenia Vi: <v>

ViExit

Zamyka powłokę.

  • Funkcja jest niepowiązana.

ViInsertMode

Przełącz się do trybu wstawiania.

  • Tryb polecenia Vi: <i>

WhatIsKey (Klucz whatIsKey)

Przeczytaj klucz i powiedz mi, z czym jest powiązany.

  • Cmd: <Alt+?>
  • Emacs: <Alt+?>

Funkcje wyboru

ExchangePointAndMark

Kursor jest umieszczany w lokalizacji znacznika, a znacznik jest przenoszony do lokalizacji kursora.

  • Emacs: <Ctrl+x,Ctrl+x>

Selectall

Zaznacz cały wiersz.

  • Cmd: <Ctrl+a>

SelectBackwardChar (Wybierz pozycjęBackwardChar)

Dostosuj bieżący wybór, aby uwzględnić poprzedni znak.

  • Cmd: <Shift+LeftArrow>
  • Emacs: <Shift+LeftArrow>

SelectBackwardsLine (Wybierz pozycjęBackwardsLine)

Dostosuj bieżący wybór, aby uwzględnić od kursora do początku wiersza.

  • Cmd: <Shift+Home>
  • Emacs: <Shift+Home>

SelectBackwardWord (Wybierz pozycjęBackwardWord)

Dostosuj bieżące zaznaczenie, aby uwzględnić poprzednie słowo.

  • Cmd: <Shift+Ctrl+LeftArrow>
  • Emacs: <Alt+B>

SelectForwardChar (Wybierz pozycjęForwardChar)

Dostosuj bieżący wybór, aby uwzględnić następny znak.

  • Cmd: <Shift+RightArrow>
  • Emacs: <Shift+RightArrow>

SelectForwardWord (Wybierz pozycjęForwardWord)

Dostosuj bieżące zaznaczenie, aby uwzględnić następny wyraz przy użyciu słowa ForwardWord.

  • Emacs: <Alt+F>

SelectLine (Linia wyboru)

Dostosuj bieżący wybór, aby uwzględnić od kursora do końca wiersza.

  • Cmd: <Shift+End>
  • Emacs: <Shift+End>

Wybierz pozycjęDalejSło

Dostosuj bieżące zaznaczenie, aby uwzględnić następny wyraz.

  • Cmd: <Shift+Ctrl+RightArrow>

Wybierz pozycjęShellBackwardWord

Dostosuj bieżące zaznaczenie, aby uwzględnić poprzednie słowo przy użyciu shellBackwardWord.

  • Funkcja jest niepowiązana.

SelectShellForwardWord (Wybierz pozycjęShellForwardWord)

Dostosuj bieżące zaznaczenie, aby uwzględnić następny wyraz przy użyciu shellForwardWord.

  • Funkcja jest niepowiązana.

Wybierz pozycjęShellNextWord

Dostosuj bieżące zaznaczenie, aby uwzględnić następny wyraz przy użyciu shellNextWord.

  • Funkcja jest niepowiązana.

Znacznik zestawu

Oznacz bieżącą lokalizację kursora do użycia w kolejnym poleceniu edycji.

  • Emacs: <Ctrl+@>

Predykcyjne funkcje IntelliSense

Uwaga

Aby można było korzystać z tych funkcji, należy włączyć predykcyjną funkcję IntelliSense.

AcceptNextWordSuggestion

Akceptuje następne słowo wbudowanej sugestii z predykcyjnej funkcji IntelliSense. Tę funkcję można powiązyć z klawiszem Ctrl + F, uruchamiając następujące polecenie.

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

AcceptSuggestion (Akceptowanie pozyskiwania)

Akceptuje bieżącą sugestię w tekście z funkcji Predictive IntelliSense, naciskając klawisze RightArrow, gdy kursor znajduje się na końcu bieżącego wiersza.

Funkcje wyszukiwania

CharacterSearch

Odczytaj znak i wyszukaj następne wystąpienie tego znaku do przodu. Jeśli argument jest określony, przeszukaj do przodu (lub do tyłu, jeśli jest ujemny) dla wystąpienia n-tego.

  • Cmd: <F3>
  • Emacs: <Ctrl+]>
  • Tryb wstawiania vi: <F3>
  • Tryb polecenia Vi: <F3>

CharacterSearchBackward

Odczytaj znak i wyszukaj do tyłu następne wystąpienie tego znaku. Jeśli argument jest określony, przeszukaj do tyłu (lub do przodu, jeśli jest ujemny) dla wystąpienia n-tego.

  • Cmd: <Shift+F3>
  • Emacs: <Ctrl+Alt+]>
  • Tryb wstawiania vi: <Shift+F3>
  • Tryb polecenia Vi: <Shift+F3>

RepeatLastCharSearch

Powtórz ostatnie wyszukiwanie zarejestrowanych znaków.

  • Tryb polecenia Vi: <;>

RepeatLastCharSearchBackwards

Powtórz ostatnie zarejestrowane wyszukiwanie znaków, ale w odwrotnym kierunku.

  • Tryb polecenia Vi: <,>

RepeatSearch

Powtórz ostatnie wyszukiwanie w tym samym kierunku co poprzednio.

  • Tryb polecenia Vi: <n>

RepeatSearchBackward

Powtórz ostatnie wyszukiwanie w tym samym kierunku co poprzednio.

  • Tryb polecenia Vi: <N>

SearchChar

Odczytaj następny znak, a następnie znajdź go, przechodząc do przodu, a następnie wróć do znaku. Dotyczy to funkcji "t".

  • Tryb polecenia Vi: <f>

SearchCharBackward

Odczytaj następny znak, a następnie znajdź go, cofniesz się, a następnie wyłącz znak. Dotyczy to funkcji "T".

  • Tryb polecenia Vi: <F>

SearchCharBackwardWithBackoff

Odczytaj następny znak, a następnie znajdź go, cofniesz się, a następnie wyłącz znak. Dotyczy to funkcji "T".

  • Tryb polecenia Vi: <T>

SearchCharWithBackoff

Odczytaj następny znak, a następnie znajdź go, przechodząc do przodu, a następnie wróć do znaku. Dotyczy to funkcji "t".

  • Tryb polecenia Vi: <t>

SearchForward

Wyświetla monit o ciąg wyszukiwania i inicjuje wyszukiwanie w wierszu AcceptLine.

  • Tryb wstawiania vi: <Ctrl+s>
  • Tryb polecenia Vi: <?> , <Ctrl+s>

Niestandardowe powiązania kluczy

Interfejs PSReadLine obsługuje niestandardowe powiązania kluczy przy użyciu polecenia cmdlet Set-PSReadLineKeyHandler . Większość niestandardowych powiązań kluczy wywołują jedną z powyższych funkcji, na przykład

Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward

Element ScriptBlock można powiązać z kluczem. Blok ScriptBlock może zrobić niemal wszystko, co chcesz. Oto kilka przydatnych przykładów

  • edytowanie wiersza polecenia
  • otwieranie nowego okna (na przykład pomocy)
  • zmienianie katalogów bez zmiany wiersza polecenia

Blok ScriptBlock otrzymuje dwa argumenty:

  • $key - Obiekt [ConsoleKeyInfo], który jest kluczem, który wyzwolił powiązanie niestandardowe. Jeśli powiąż ten sam element ScriptBlock z wieloma kluczami i konieczne jest wykonanie różnych akcji w zależności od klucza, możesz $key. Wiele powiązań niestandardowych ignoruje ten argument.

  • $arg - Dowolny argument. Najczęściej jest to argument liczb całkowitych, który użytkownik przekazuje z powiązań kluczy DigitArgument. Jeśli powiązanie nie akceptuje argumentów, uzasadnione jest zignorowanie tego argumentu.

Przyjrzyjmy się przykładowi, który dodaje wiersz polecenia do historii bez jego wykonywania. Jest to przydatne, gdy zdasz sobie sprawę, że nie robisz czegoś innego, ale nie chcesz ponownie wprowadzać wprowadzonego wiersza polecenia.

$parameters = @{
    Key = 'Alt+w'
    BriefDescription = 'SaveInHistory'
    LongDescription = 'Save current line in history but do not execute'
    ScriptBlock = {
      param($key, $arg)   # The arguments are ignored in this example

      # GetBufferState gives us the command line (with the cursor position)
      $line = $null
      $cursor = $null
      [Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line,
        [ref]$cursor)

      # AddToHistory saves the line in history, but does not execute it.
      [Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory($line)

      # RevertLine is like pressing Escape.
      [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
  }
}
Set-PSReadLineKeyHandler @parameters

W pliku zainstalowanym w folderze modułu PSReadLine znajduje się o wiele SamplePSReadLineProfile.ps1 więcej przykładów.

Większość powiązań kluczy używa niektórych funkcji pomocnika do edytowania wiersza polecenia. Te interfejsy API zostały udokumentowane w następnej sekcji.

Niestandardowe interfejsy API obsługi powiązań kluczy

Następujące funkcje są publiczne w Microsoft.PowerShell.PSConsoleReadLine, ale nie można ich bezpośrednio powiązyć z kluczem. Większość z nich jest przydatna w przypadku niestandardowych powiązań kluczy.

void AddToHistory(string command)

Dodaj wiersz polecenia do historii bez jego wykonywania.

void ClearKillRing()

Wyczyść pierścień zabicia. Jest to najczęściej używane do testowania.

void Delete(int start, int length)

Usuń znaki długości od początku. Ta operacja obsługuje cofanie/ponowne cofanie.

void Ding()

Wykonaj akcję Ding na podstawie preferencji użytkowników.

void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
  [ref] ParseError[] parseErrors, [ref] int cursor)

Te dwie funkcje pobierają przydatne informacje o bieżącym stanie buforu wejściowego. Pierwszy z nich jest najczęściej używany w prostych przypadkach. Drugi jest używany, jeśli powiązanie robi coś bardziej zaawansowanego z Ast.

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(bool includeBound, bool includeUnbound)

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(string[] Chord)

Te dwie funkcje są używane Get-PSReadLineKeyHandler przez . Pierwszy element służy do uzyskania wszystkich powiązań kluczy. Drugi element służy do uzyskania określonych powiązań kluczy.

Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()

Ta funkcja jest używana przez Get-PSReadLineOption i prawdopodobnie nie jest zbyt przydatna w niestandardowym powiązaniu klucza.

void GetSelectionState([ref] int start, [ref] int length)

Jeśli w wierszu polecenia nie ma wyboru, funkcja zwraca wartość -1 zarówno na początku, jak i w długości. Jeśli w wierszu polecenia znajduje się wybór, zwracana jest długość i początek wyboru.

void Insert(char c)
void Insert(string s)

Wstaw znak lub ciąg w miejscu kursora. Ta operacja obsługuje cofanie/ponowne cofanie.

string ReadLine(runspace remoteRunspace,
  System.Management.Automation.EngineIntrinsics engineIntrinsics)

Jest to główny punkt wejścia do psreadline. Nie obsługuje rekursji, więc nie jest przydatne w niestandardowym powiązaniu klucza.

void RemoveKeyHandler(string[] key)

Ta funkcja jest używana przez Remove-PSReadLineKeyHandler i prawdopodobnie nie jest zbyt przydatna w niestandardowym powiązaniu klucza.

void Replace(int start, int length, string replacement)

Zastąp niektóre dane wejściowe. Ta operacja obsługuje cofanie/ponowne cofanie. Jest to preferowane w oknie Usuwanie, po którym następuje polecenie Wstaw, ponieważ jest ono traktowane jako pojedyncza akcja do cofnięcia.

void SetCursorPosition(int cursor)

Przenieś kursor do danego przesunięcia. Cofanie ruchu kursora nie jest śledzone.

void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)

Ta funkcja jest metodą pomocnika używaną przez polecenie cmdlet Set-PSReadLineOption, ale może być przydatna w niestandardowym powiązaniu klucza, które chce tymczasowo zmienić ustawienie.

bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
  int defaultNumericArg)

Ta metoda pomocnika jest używana w przypadku powiązań niestandardowych, które honoruje argument DigitArgument. Typowe wywołanie wygląda następująco:

[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
  [ref]$numericArg, 1)

Uwagi

Historia poleceń

PSReadLine przechowuje plik historii zawierający wszystkie polecenia i dane wprowadzone z wiersza polecenia. Pliki historii to plik o nazwie $($host.Name)_history.txt . W Windows systemach plik historii jest przechowywany w lokalizacji $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine . W systemach Windows pliki historii są przechowywane w lokalizacji $env:XDG_DATA_HOME/powershell/PSReadLine lub $env:HOME/.local/share/powershell/PSReadLine .

Historia może zawierać poufne dane, w tym hasła. PsReadLine próbuje odfiltrować informacje poufne. Wszystkie wiersze polecenia zawierające następujące ciągi nie są zapisywane w pliku historii.

  • hasło
  • asplaintext
  • token
  • apikey
  • wpis tajny

Opinie & współtworząc linię PSReadLine

PsReadLine na GitHub

Możesz przesłać żądanie ściągnnięcia lub przesłać opinię na stronie GitHub ściągnięcie.

Zobacz też

Biblioteka readline GNU ma duży wpływ na linię PSReadLine.