Sdílet prostřednictvím


about_PSReadLine

Krátký popis

PSReadLine poskytuje vylepšené prostředí pro úpravy příkazového řádku v konzole PowerShellu.

Dlouhý popis

PSReadLine 2.0 poskytuje výkonné prostředí pro úpravy příkazového řádku pro konzolu PowerShellu. Poskytuje:

  • Obarvení syntaxe příkazového řádku
  • Vizuální indikace chyb syntaxe
  • Lepší víceřádkové prostředí (úpravy i historie)
  • Přizpůsobitelné vazby klíčů
  • Režimy Cmd a Emacs
  • Mnoho možností konfigurace
  • Dokončování stylu Bash (volitelné v režimu Cmd, výchozí nastavení v režimu Emacs)
  • Emacs yank /kill-ring
  • Přesun a odstranění textu založeného na tokenu PowerShellu

PSReadLine vyžaduje PowerShell 3.0 nebo novější. PSReadLine funguje s výchozím hostitelem konzoly, editorem Visual Studio Code a terminálem okna. V prostředí PowerShell ISE nefunguje.

PSReadLine 2.1.0 se dodává s PowerShellem 7.2 a podporuje se ve všech podporovaných verzích PowerShellu. Je k dispozici k instalaci z galerie Prostředí PowerShell. Pokud chcete nainstalovat PSReadLine 2.1.0 v podporované verzi PowerShellu, spusťte následující příkaz.

Install-Module -Name PSReadLine -RequiredVersion 2.1.0

Poznámka

Počínaje PowerShellem 7.0 PowerShell vynechá automatické načítání PSReadLine ve Windows, pokud je zjištěn program čtečky obrazovky. V současné době PSReadLine nefunguje dobře se čtečkami obrazovky. Výchozí vykreslování a formátování PowerShellu 7.0 ve Windows funguje správně. Modul můžete v případě potřeby načíst ručně.

Následující funkce jsou k dispozici ve třídě Microsoft.PowerShell.PSConsoleReadLine.

Základní funkce pro úpravy

Potratit

Přerušte aktuální akci, například vyhledávání přírůstkové historie.

  • Emacs: <Ctrl+g>

Akceptovat a získat další

Pokus o spuštění aktuálního vstupu Pokud se dá spustit (například AcceptLine), pak si při příštím zavolání ReadLine vzpomeňte na další položku z historie.

  • Emacs: <Ctrl+o>

AcceptLine

Pokus o spuštění aktuálního vstupu Pokud je aktuální vstup neúplný (například chybí pravá závorka, závorka nebo uvozovka), zobrazí se výzva k pokračování na dalším řádku a PSReadLine čeká, až klíče upraví aktuální vstup.

  • Cmd: <Enter>
  • Emacs: <Enter>
  • Režim vložení Vi: <Enter>

Přidat řádek

Výzva k pokračování se zobrazí na dalším řádku a PSReadLine čeká, až klíče upraví aktuální vstup. To je užitečné k zadání víceřádkového vstupu jako jediného příkazu, i když je jeden řádek úplný vstup sám.

  • Cmd: <Shift+Enter>
  • Emacs: <Shift+Enter>
  • Režim vložení Vi: <Shift+Enter>
  • Režim příkazu Vi: <Shift+Enter>

Zpětná oddeleteChar

Odstraňte znak před kurzorem.

  • Cmd: <Backspace>, <Ctrl+h>
  • Emacs: <Backspace>, <Ctrl+Backspace>, <Ctrl+h>
  • Režim vložení Vi: <Backspace>
  • Režim příkazů Vi: <X>, <d,h>

ZpětNásměrná spojnice

Like BackwardKillLine - odstraní text z bodu na začátek řádku, ale neuloží odstraněný text do kill-ringu.

  • Cmd: <Ctrl+Home>
  • Režim vkládání Vi: <Ctrl+u>, <Ctrl+Home>
  • Režim příkazů Vi: <Ctrl+u>, <Ctrl+Home>, <d,0>

Zpětná hodnotaWord

Odstraní předchozí slovo.

  • Režim příkazů Vi: <Ctrl+w>, <d,b>

BackwardKillLine

Vymažte vstup od začátku vstupu na kurzor. Vymazaný text se umístí do kruhu kill-ring.

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

BackwardKillWord

Vymažte vstup od začátku aktuálního slova na kurzor. Pokud je kurzor mezi slovy, vstup se vymaže od začátku předchozího slova k kurzoru. Vymazaný text se umístí do kruhu kill-ring.

  • Cmd: <Ctrl+Backspace>, <Ctrl+w>
  • Emacs: <Alt+Backspace>, <Escape,Backspace>
  • Režim vložení Vi: <Ctrl+Backspace>
  • Režim příkazu Vi: <Ctrl+Backspace>

CancelLine

Zrušte aktuální vstup a ponechte vstup na obrazovce, ale vrátí se zpět k hostiteli, aby se výzva vyhodnotila znovu.

  • Režim vložení Vi: <Ctrl+c>
  • Režim příkazu Vi: <Ctrl+c>

Kopírovat

Zkopírujte vybranou oblast do schránky systému. Pokud není vybrána žádná oblast, zkopírujte celý řádek.

  • Cmd: <Ctrl+C>

Řádek CopyOrCancelLine

Pokud je text vybraný, zkopírujte ho do schránky, jinak řádek zrušte.

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

Řezat

Umožňuje odstranit vybranou oblast, která umístí odstraněný text do systémové schránky.

  • Cmd: <Ctrl+x>

OdstranitZnak

Odstraňte znak pod kurzorem.

  • Cmd: <Delete>
  • Emacs: <Delete>
  • Režim vložení Vi: <Delete>
  • Režim příkazů Vi: <Delete>, <x>, <d,l>, <d,Spacebar>

OdstranitCharOrExit

Odstraňte znak pod kurzorem nebo pokud je řádek prázdný, ukončete proces.

  • Emacs: <Ctrl+d>

DeleteEndOfBuffer

Odstraní se na konec víceřádkové vyrovnávací paměti.

  • Režim příkazu Vi: <d,G>

SmazatKonecSlova

Odstraňte na konec slova.

  • Režim příkazu Vi: <d,e>

OdstranitŘádek

Odstraní aktuální logickou čáru víceřádkové vyrovnávací paměti a povolí vrácení zpět.

  • Režim příkazů Vi: <d,d>, <d,_>

DeletePreviousLines

Odstraní předchozí požadované logické řádky a aktuální logický řádek ve víceřádkové vyrovnávací paměti.

  • Režim příkazu Vi: <d,k>

DeleteRelativeLines

Odstraní od začátku vyrovnávací paměti na aktuální logický řádek ve víceřádkové vyrovnávací paměti.

Stejně jako u většiny příkazů Vi lze příkaz <d,g,g> předcházet číselným argumentem, který určuje absolutní číslo řádku, které společně s aktuálním číslem řádku tvoří rozsah řádků, které se mají odstranit. Pokud není zadaný, číselný argument je ve výchozím nastavení 1, který odkazuje na první logický řádek ve víceřádkové vyrovnávací paměti.

Skutečný počet řádků, které se mají odstranit z víceřádkového řádku, se vypočítá jako rozdíl mezi aktuálním číslem logického řádku a zadaným číselným argumentem, což může být záporné. Proto relativní část názvu metody.

  • Režim příkazu Vi: <d,g,g>

DeleteNextLines

Odstraní aktuální logický řádek a další požadované logické řádky ve víceřádkové vyrovnávací paměti.

  • Režim příkazu Vi: <d,j>

DeleteLineToFirstChar

Odstraní text z kurzoru na první neprázdný znak řádku.

  • Režim příkazu Vi: <d,^>

OdstranitToEnd

Odstraňte na konec řádku.

  • Režim příkazů Vi: <D>, <d,$>

SmazatSlovo

Odstraňte další slovo.

  • Režim příkazu Vi: <d,w>

ForwardDeleteLine

Podobně jako ForwardKillLine - odstraní text z bodu na konec řádku, ale neuloží odstraněný text do kill-ringu.

  • Cmd: <Ctrl+End>
  • Režim vložení Vi: <Ctrl+End>
  • Režim příkazu Vi: <Ctrl+End>

InsertLineAbove

Nový prázdný řádek se vytvoří nad aktuálním řádkem bez ohledu na to, kde je kurzor na aktuálním řádku. Kurzor se přesune na začátek nového řádku.

  • Cmd: <Ctrl+Enter>

InsertLineBelow

Nový prázdný řádek se vytvoří pod aktuálním řádkem bez ohledu na to, kde je kurzor na aktuálním řádku. Kurzor se přesune na začátek nového řádku.

  • Cmd: <Shift+Ctrl+Enter>

Invertcase

Invertujte případ aktuálního znaku a přejděte na další.

  • Režim příkazu Vi: <~>

Vražedná linie

Vymažte vstup od kurzoru na konec vstupu. Vymazaný text se umístí do kruhu kill-ring.

  • Emacs: <Ctrl+k>

KillRegion

Ukončete text mezi kurzorem a značkou.

  • Funkce je nevázaná.

Zabít Slovo

Vymažte vstup od kurzoru na konec aktuálního slova. Pokud je kurzor mezi slovy, vstup se vymaže z kurzoru na konec dalšího slova. Vymazaný text se umístí do kruhu kill-ring.

  • Cmd: <Alt+d>, <Ctrl+Delete>
  • Emacs: <Alt+d>, <Escape,d>
  • Režim vložení Vi: <Ctrl+Delete>
  • Režim příkazu Vi: <Ctrl+Delete>

Pasta

Vložte text ze schránky systému.

  • Cmd: <Ctrl+v>, <Shift+Insert>
  • Režim vložení Vi: <Ctrl+v>
  • Režim příkazu Vi: <Ctrl+v>

Důležitý

Při použití funkce Vložit se celý obsah vyrovnávací paměti schránky vloží do vstupní vyrovnávací paměti PSReadLine. Vstupní vyrovnávací paměť se pak předá analyzátoru PowerShellu. Vstup vložený pomocí konzolové aplikace se po kliknutí pravým tlačítkem myši metoda vložení zkopíruje do vstupní vyrovnávací paměti jeden znak najednou. Vstupní vyrovnávací paměť se předá analyzátoru při zkopírování znaku nového řádku. Proto je vstup analyzován po jednom řádku najednou. Rozdíl mezi metodami vložení vede k odlišnému chování při provádění.

Vložit po

Vložte schránku za kurzor a přesuňte kurzor na konec vloženého textu.

  • Režim příkazu Vi: <p>

VložitPřed

Vložte schránku před kurzor a přesuňte kurzor na konec vloženého textu.

  • Režim příkazu Vi: <P>

Předřadit a přijmout

Předpřisadíte ho a přijmete řádek.

  • Režim příkazu Vi: <#>

Předělat

Vrátí zpět vrácení zpět.

  • Cmd: <Ctrl+y>
  • Režim vložení Vi: <Ctrl+y>
  • Režim příkazu Vi: <Ctrl+y>

Příkaz RepeatLastCommand

Opakujte poslední úpravu textu.

  • Režim příkazu Vi: <.>

Zpětná spojnice

Vrátí všechny vstupy na aktuální vstup.

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

ShellBackwardKillWord

Vymažte vstup od začátku aktuálního slova na kurzor. Pokud je kurzor mezi slovy, vstup se vymaže od začátku předchozího slova k kurzoru. Vymazaný text se umístí do kruhu kill-ring.

Funkce je nevázaná.

ShellKillWord

Vymažte vstup od kurzoru na konec aktuálního slova. Pokud je kurzor mezi slovy, vstup se vymaže z kurzoru na konec dalšího slova. Vymazaný text se umístí do kruhu kill-ring.

Funkce je nevázaná.

Záměna znaků

Prohodí aktuální znak a ten před ním.

  • Emacs: <Ctrl+t>
  • Režim vložení Vi: <Ctrl+t>
  • Režim příkazu Vi: <Ctrl+t>

Odčinit

Vrátí zpět předchozí úpravy.

  • Cmd: <Ctrl+z>
  • Emacs: <Ctrl+_>, <Ctrl+x,Ctrl+u>
  • Režim vložení Vi: <Ctrl+z>
  • Režim příkazů Vi: <Ctrl+z>, <u>

Zpět– vše

Vrátí zpět všechny předchozí úpravy řádku.

  • Režim příkazu Vi: <U>

UnixWordRubout

Vymažte vstup od začátku aktuálního slova na kurzor. Pokud je kurzor mezi slovy, vstup se vymaže od začátku předchozího slova k kurzoru. Vymazaný text se umístí do kruhu kill-ring.

  • Emacs: <Ctrl+w>

ValidateAndAcceptLine

Pokus o spuštění aktuálního vstupu Pokud je aktuální vstup neúplný (například chybí pravá závorka, závorka nebo uvozovka), zobrazí se výzva k pokračování na dalším řádku a PSReadLine čeká, až klíče upraví aktuální vstup.

  • Emacs: <Ctrl+m>

ViAcceptLine

Přijměte čáru a přepněte do režimu vložení.

  • Režim příkazu Vi: <Enter>

ViAcceptLineOrExit

Stejně jako DeleteCharOrExit v režimu Emacs, ale přijímá řádek místo odstranění znaku.

  • Režim vložení Vi: <Ctrl+d>
  • Režim příkazu Vi: <Ctrl+d>

ViAppendLine

Nový řádek se vloží pod aktuální řádek.

  • Režim příkazu Vi: <o>

ViBackwardDeleteGlob

Odstraní předchozí slovo, které jako oddělovač slov používá pouze prázdné znaky.

  • Režim příkazu Vi: <d,B>

ViBackwardGlob

Přesune kurzor zpět na začátek předchozího slova a použije pouze prázdné znaky jako oddělovače.

  • Režim příkazu Vi: <B>

ViDeleteBrace

Vyhledejte odpovídající složenou závorku, závorku nebo hranaté závorky a odstraňte veškerý obsah včetně závorky.

  • Režim příkazu Vi: <d,%>

ViDeleteEndOfGlob

Odstraňte na konec slova.

  • Režim příkazu Vi: <d,E>

ViDeleteGlob řekl:

Odstraňte další glob (prázdné znaky oddělené slovo).

  • Režim příkazu Vi: <d,W>

ViDeleteToBeforeChar

Odstraní se do zadaného znaku.

  • Režim příkazu Vi: <d,t>

ViDeleteToBeforeCharBackward

Odstraní se do zadaného znaku.

  • Režim příkazu Vi: <d,T>

ViDeleteToChar

Odstraní se do zadaného znaku.

  • Režim příkazu Vi: <d,f>

ViDeleteToCharBackward

Odstraní zpět, dokud daný znak neodstraní.

  • Režim příkazu Vi: <d,F>

ViInsertAtBegining

Přepněte do režimu Vložení a umístěte kurzor na začátek řádku.

  • Režim příkazu Vi: <I>

ViInsertAtEnd

Přepněte do režimu Vložení a umístěte kurzor na konec řádku.

  • Režim příkazu Vi: <A>

ViInsertLine

Nový řádek se vloží nad aktuální řádek.

  • Režim příkazu Vi: <O>

ViInsertWithAppend

Připojte z aktuální pozice řádku.

  • Režim příkazu Vi: <a>

ViInsertWithDelete

Odstraňte aktuální znak a přepněte do režimu vložení.

  • Režim příkazu Vi: <s>

ViJoinLines

Spojí aktuální řádek a další řádek.

  • Režim příkazu Vi: <J>

ViReplaceLine

Vymažte celý příkazový řádek.

  • Režim příkazů Vi: <S>, <c,c>

ViReplaceToBeforeChar

Nahradí, dokud se daný znak nenahradí.

  • Režim příkazu Vi: <c,t>

ViReplaceToBeforeCharBackward

Nahradí, dokud se daný znak nenahradí.

  • Režim příkazu Vi: <c,T>

ViReplaceToChar

Odstraní se do zadaného znaku.

  • Režim příkazu Vi: <c,f>

ViReplaceToCharBackward

Nahradí, dokud se daný znak nenahradí.

  • Režim příkazu Vi: <c,F>

ViYankBeginningOfLine

Yank od začátku vyrovnávací paměti na kurzor.

  • Režim příkazu Vi: <y,0>

ViYankEndOfGlob řekl:

Od kurzoru se přesune na konec wordových slov.

  • Režim příkazu Vi: <y,E>

ViYankEndOfWord

Z kurzoru na konec slova

  • Režim příkazu Vi: <y,e>

ViYankLeft

Znaky yank vlevo od kurzoru.

  • Režim příkazu Vi: <y,h>

ViYankLine

Vytáhnou celou vyrovnávací paměť.

  • Režim příkazu Vi: <y,y>

ViYankNextGlob řekl:

Od kurzoru přejděte na začátek dalších slov.

  • Režim příkazu Vi: <y,W>

ViYankNextWord

Po kurzoru zaríňte slova.

  • Režim příkazu Vi: <y,w>

ViYankPercent

Yank to/from odpovídající složené závorky.

  • Režim příkazu Vi: <y,%>

ViYankPreviousGlob

Od začátku wordu k kurzoru.

  • Režim příkazu Vi: <y,B>

ViYankPředchozíSlovo

Zamkni slova před kurzorem.

  • Režim příkazu Vi: <y,b>

ViYankRight

Znaky yank pod a vpravo od kurzoru.

  • Režim příkazů Vi: <y,l>, <y,Spacebar>

ViYankToEndOfLine

Od kurzoru na konec vyrovnávací paměti.

  • Režim příkazu Vi: <y,$>

ViYankToFirstChar

Od prvního znaku, který není prázdný, se přesune kurzor.

  • Režim příkazu Vi: <y,^>

Trhnout

Přidejte do vstupu naposledy zabitý text.

  • Emacs: <Ctrl+y>

YankLastArg řekl:

Vyžádřete poslední argument z předchozího řádku historie. Při prvním vyvolání argumentu se chová stejně jako YankNthArg. Pokud se vyvolá vícekrát, místo toho iteruje prostřednictvím historie a arg nastaví směr (negativní obrátí směr.)

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

YankNthArg

Vyžádřete první argument (za příkazem) z předchozího řádku historie. Pokud je argument záporný, začněte od posledního argumentu.

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

YankPop

Pokud byla předchozí operace Yank nebo YankPop, nahraďte dříve vysekaný text dalším zabitým textem z okruhu kill-ring.

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

Funkce pohybu kurzoru

Zpětná znaména

Přesunutí kurzoru o jeden znak doleva Tím se může přesunout kurzor na předchozí řádek víceřádkového vstupu.

  • Cmd: <LeftArrow>
  • Emacs: <LeftArrow>, <Ctrl+b>
  • Režim vložení Vi: <LeftArrow>
  • Režim příkazů Vi: <LeftArrow>, <Backspace>, <h>

Zpětná slova

Přesuňte kurzor zpět na začátek aktuálního slova nebo mezi slovy na začátek předchozího slova. Hranice aplikace Word jsou definovány konfigurovatelnou sadou znaků.

  • Cmd: <Ctrl+LeftArrow>
  • Emacs: <Alt+b>, <Escape,b>
  • Režim vložení Vi: <Ctrl+LeftArrow>
  • Režim příkazu Vi: <Ctrl+LeftArrow>

Znaky definující hranice slova jsou nakonfigurovány v WordDelimiters vlastnost PSConsoleReadLineOptions objektu. Pokud chcete zobrazit nebo změnit vlastnost WordDelimiters, podívejte se na Get-PSReadLineOption a Set-PSReadLineOption.

ZačátekOfLine

Pokud má vstup více řádků, přejděte na začátek aktuálního řádku nebo pokud je již na začátku řádku, přejděte na začátek vstupu. Pokud má vstup jeden řádek, přejděte na začátek vstupu.

  • Cmd: <Home>
  • Emacs: <Home>, <Ctrl+a>
  • Režim vložení Vi: <Home>
  • Režim příkazu Vi: <Home>

Konec řádku

Pokud má vstup více řádků, přesuňte se na konec aktuálního řádku nebo pokud je již na konci řádku, přejděte na konec vstupu. Pokud má vstup jeden řádek, přejděte na konec vstupu.

  • Cmd: <End>
  • Emacs: <End>, <Ctrl+e>
  • Režim vložení Vi: <End>

ForwardChar

Přesunutí kurzoru o jeden znak doprava Kurzor se může přesunout na další řádek víceřádkového vstupu.

  • Cmd: <RightArrow>
  • Emacs: <RightArrow>, <Ctrl+f>
  • Režim vložení Vi: <RightArrow>
  • Režim příkazů Vi: <RightArrow>, <Space>, <l>

Funkce ForwardWord

Přesuňte kurzor dopředu na konec aktuálního slova nebo mezi slovy na konec dalšího slova. Hranice aplikace Word jsou definovány konfigurovatelnou sadou znaků.

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

Znaky definující hranice slova jsou nakonfigurovány v WordDelimiters vlastnost PSConsoleReadLineOptions objektu. Pokud chcete zobrazit nebo změnit vlastnost WordDelimiters, podívejte se na Get-PSReadLineOption a Set-PSReadLineOption.

Přepínač GotoBrace

Přejděte na odpovídající složenou závorku, závorku nebo hranaté závorky.

  • Cmd: <Ctrl+]>
  • Režim vložení Vi: <Ctrl+]>
  • Režim příkazu Vi: <Ctrl+]>

Přejít na sloupec

Přechod na sloupec označený arg.

  • Režim příkazu Vi: <|>

GotoFirstNonBlankOfLine

Přesuňte kurzor na první neprázdný znak na řádku.

  • Režim příkazů Vi: <^>, <_>

MoveToEndOfLine

Přesuňte kurzor na konec vstupu.

  • Režim příkazů Vi: <End>, <$>

Další řádek

Přesuňte kurzor na další řádek.

  • Funkce je nevázaná.

DalšíSlovo

Přesuňte kurzor dopředu na začátek dalšího slova. Hranice aplikace Word jsou definovány konfigurovatelnou sadou znaků.

  • Cmd: <Ctrl+RightArrow>
  • Režim vložení Vi: <Ctrl+RightArrow>
  • Režim příkazu Vi: <Ctrl+RightArrow>

Znaky definující hranice slova jsou nakonfigurovány v WordDelimiters vlastnost PSConsoleReadLineOptions objektu. Pokud chcete zobrazit nebo změnit vlastnost WordDelimiters, podívejte se na Get-PSReadLineOption a Set-PSReadLineOption.

dalšíWordEnd

Přesuňte kurzor dopředu na konec aktuálního slova nebo mezi slovy na konec dalšího slova. Hranice aplikace Word jsou definovány konfigurovatelnou sadou znaků.

  • Režim příkazu Vi: <e>

Znaky definující hranice slova jsou nakonfigurovány v WordDelimiters vlastnost PSConsoleReadLineOptions objektu. Pokud chcete zobrazit nebo změnit vlastnost WordDelimiters, podívejte se na Get-PSReadLineOption a Set-PSReadLineOption.

Předchozí řádek

Přesunutí kurzoru na předchozí řádek

  • Funkce je nevázaná.

ShellBackwardWord

Přesuňte kurzor zpět na začátek aktuálního slova nebo mezi slovy na začátek předchozího slova. Hranice wordu jsou definovány pomocí tokenů PowerShellu.

  • Funkce je nevázaná.

ShellForwardWord

Přesuňte kurzor dopředu na začátek dalšího slova. Hranice wordu jsou definovány pomocí tokenů PowerShellu.

  • Funkce je nevázaná.

ShellNextWord

Přesuňte kurzor dopředu na konec aktuálního slova nebo mezi slovy na konec dalšího slova. Hranice wordu jsou definovány pomocí tokenů PowerShellu.

  • Funkce je nevázaná.

ViBackwardChar

Přesunutí kurzoru o jeden znak doleva v režimu úprav Vi Tím se může přesunout kurzor na předchozí řádek víceřádkového vstupu.

  • Režim vložení Vi: <LeftArrow>
  • Režim příkazů Vi: <LeftArrow>, <Backspace>, <h>

ViBackwardWord

Přesuňte kurzor zpět na začátek aktuálního slova nebo mezi slovy na začátek předchozího slova. Hranice aplikace Word jsou definovány konfigurovatelnou sadou znaků.

  • Režim příkazu Vi: <b>

Znaky definující hranice slova jsou nakonfigurovány v WordDelimiters vlastnost PSConsoleReadLineOptions objektu. Pokud chcete zobrazit nebo změnit vlastnost WordDelimiters, podívejte se na Get-PSReadLineOption a Set-PSReadLineOption.

ViForwardChar

Přesunutí kurzoru o jeden znak doprava v režimu úprav Vi Kurzor se může přesunout na další řádek víceřádkového vstupu.

  • Režim vložení Vi: <RightArrow>
  • Režim příkazů Vi: <RightArrow>, <Spacebar>, <l>

ViEndOfGlob řekl:

Přesune kurzor na konec slova pomocí prázdných znaků jako oddělovačů.

  • Režim příkazu Vi: <E>

ViEndOfPreviousGlob

Přesune se na konec předchozího slova a použije jako oddělovač slov pouze prázdné znaky.

  • Funkce je nevázaná.

ViGotoBrace

Podobá se GotoBrace, ale je založen na znaku místo tokenu.

  • Režim příkazu Vi: <%>

ViNextGlob řekl:

Přesune se na další slovo a jako oddělovač slov použije jenom prázdné znaky.

  • Režim příkazu Vi: <W>

ViNextWord

Přesuňte kurzor dopředu na začátek dalšího slova. Hranice aplikace Word jsou definovány konfigurovatelnou sadou znaků.

  • Režim příkazu Vi: <w>

Znaky definující hranice slova jsou nakonfigurovány v WordDelimiters vlastnost PSConsoleReadLineOptions objektu. Pokud chcete zobrazit nebo změnit vlastnost WordDelimiters, podívejte se na Get-PSReadLineOption a Set-PSReadLineOption.

Funkce historie

ZačátekOfHistory

Přechod na první položku v historii

  • Emacs: <Alt+<>

ClearHistory

Vymaže historii v PSReadLine. To nemá vliv na historii PowerShellu.

  • Cmd: <Alt+F7>

Konec historie

Přechod na poslední položku (aktuální vstup) v historii

  • Emacs: <Alt+>>

ForwardSearchHistory

Proveďte přírůstkové hledání v historii.

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

HistorieSearchBackward

Nahraďte aktuální vstup předchozí položkou z historie PSReadLine, která odpovídá znakům mezi začátkem a vstupem a kurzorem.

  • Cmd: <F8>

HistorySearchForward

Nahraďte aktuální vstup další položkou z historie PSReadLine, která odpovídá znakům mezi začátkem a vstupem a kurzorem.

  • Cmd: <Shift+F8>

dalšíHistorie

Nahraďte aktuální vstup další položkou z historie PSReadLine.

  • Cmd: <DownArrow>
  • Emacs: <DownArrow>, <Ctrl+n>
  • Režim vložení Vi: <DownArrow>
  • Režim příkazů Vi: <DownArrow>, <j>, <+>

PředchozíHistory

Nahraďte aktuální vstup předchozí položkou z historie PSReadLine.

  • Cmd: <UpArrow>
  • Emacs: <UpArrow>, <Ctrl+p>
  • Režim vložení Vi: <UpArrow>
  • Režim příkazů Vi: <UpArrow>, <k>, <->

Historie reverzního vyhledávání

Proveďte přírůstkové zpětné vyhledávání v historii.

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

ViSearchHistoryBackward

Vyzve k zadání hledaného řetězce a zahájí hledání na AcceptLine.

  • Režim vložení Vi: <Ctrl+r>
  • Režim příkazů Vi: </>, <Ctrl+r>

Funkce dokončování

Kompletní

Pokus o dokončení textu kolem kurzoru Pokud existuje více možných dokončení, použije se k dokončení nejdelší jednoznačná předpona. Pokud se pokoušíte dokončit nejdelší jednoznačné dokončení, zobrazí se seznam možných dokončení.

  • Emacs: <Tab>

Pokus o dokončení textu kolem kurzoru Pokud existuje více možných dokončení, použije se k dokončení nejdelší jednoznačná předpona. Pokud se pokoušíte dokončit nejdelší jednoznačné dokončení, zobrazí se seznam možných dokončení.

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

Možné dokončení

Zobrazí seznam možných dokončení.

  • Emacs: <Alt+=>
  • Režim vložení Vi: <Ctrl+Spacebar>
  • Režim příkazu Vi: <Ctrl+Spacebar>

TabCompleteNext

Pokuste se dokončit text kolem kurzoru dalším dostupným dokončením.

  • Cmd: <Tab>
  • Režim příkazu Vi: <Tab>

TabCompletePrevious

Pokus o dokončení textu kolem kurzoru s předchozím dostupným dokončením

  • Cmd: <Shift+Tab>
  • Režim příkazu Vi: <Shift+Tab>

ViTabCompleteNext

V případě potřeby ukončí aktuální skupinu úprav a vyvolá TabCompleteNext.

  • Režim vložení Vi: <Tab>

ViTabCompletePrevious

V případě potřeby ukončí aktuální skupinu úprav a vyvolá tabCompletePrevious.

  • Režim vložení Vi: <Shift+Tab>

Různé funkce

PřijmoutDalšíNávrhSlovo

Přijměte další slovo vloženého nebo vybraného návrhu.

  • Funkce je nevázaná.

PřijmoutNávrh

Přijměte aktuální vložený nebo vybraný návrh.

  • Funkce je nevázaná.

CaptureScreen

Spustit interaktivní snímek obrazovky – šipky nahoru/dolů vyberou čáry, jako text a HTML zkopíruje vybraný text do schránky.

  • Funkce je nevázaná.

Vyčistit obrazovku

Vymažte obrazovku a nakreslete aktuální čáru v horní části obrazovky.

  • Cmd: <Ctrl+l>
  • Emacs: <Ctrl+l>
  • Režim vložení Vi: <Ctrl+l>
  • Režim příkazu Vi: <Ctrl+l>

Číselný argument

Spusťte nový argument číslice, který se má předat jiným funkcím. Tuto funkci můžete použít jako násobitel pro další funkci, která je vyvolána klávesovou zkratkou. Například stisknutí <Alt+1><Alt+0> nastaví číslicový argument hodnotu na 10. Potom stisknutím klávesy # na vstupní řádek odešlete 10 # znaků (##########). Podobně to můžete použít s jinými operacemi, jako jsou <Delete> nebo Left-Arrow.

  • 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+->
  • Režim příkazů Vi: <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>, <9>

Výzva vyvolání

Vymaže aktuální výzvu a zavolá funkci výzvy k opětovnému zobrazení výzvy. Užitečné pro obslužné rutiny vlastních klíčů, které mění stav. Můžete například změnit aktuální adresář.

  • Funkce je nevázaná.

ScrollDisplayDown

Posuňte zobrazení o jednu obrazovku dolů.

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

ScrollDisplayDownLine

Posuňte zobrazení o jeden řádek dolů.

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

ScrollDisplayToCursor

Posuňte zobrazení na kurzor.

  • Emacs: <Ctrl+End>

ScrollDisplayTop

Posuňte zobrazení na začátek.

  • Emacs: <Ctrl+Home>

ScrollDisplayUp

Posuňte zobrazení o jednu obrazovku nahoru.

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

ScrollDisplayUpLine

Posuňte zobrazení o jeden řádek nahoru.

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

Vložení vlastního vložení

Vložte klíč.

  • Funkce je nevázaná.

ZobrazitKlíčové vazby

Zobrazí všechny vázané klíče.

  • Cmd: <Ctrl+Alt+?>
  • Emacs: <Ctrl+Alt+?>
  • Režim vložení Vi: <Ctrl+Alt+?>

ViCommandMode

Přepněte aktuální provozní režim z Vi-Insert na Vi-Command.

  • Režim vložení Vi: <Escape>

ViDigitArgumentInChord

Spusťte nový argument číslice, který se má předat jiným funkcím, zatímco v jednom z vi's chords.

  • Funkce je nevázaná.

ViEditVizuálně

Upravte příkazový řádek v textovém editoru určeném $env:EDITOR nebo $env:VISUAL.

  • Emacs: <Ctrl+x,Ctrl+e>
  • Režim příkazu Vi: <v>

ViExit

Ukončí prostředí.

  • Funkce je nevázaná.

ViInsertMode

Přepněte do režimu vložení.

  • Režim příkazu Vi: <i>

Co je klíč

Přečtěte si klíč a řekněte mi, k čemu je klíč vázán.

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

Výběrové funkce

ExchangePointAndMark

Kurzor se umístí na místo značky a značka se přesune do umístění kurzoru.

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

Vybrat vše

Vyberte celý řádek.

  • Cmd: <Ctrl+a>

SelectBackwardChar

Upravte aktuální výběr tak, aby zahrnoval předchozí znak.

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

SelectBackwardsLine

Upravte aktuální výběr tak, aby zahrnoval kurzor na začátek řádku.

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

SelectBackwardWord

Upravte aktuální výběr tak, aby zahrnoval předchozí slovo.

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

Vybrat ForwardChar

Upravte aktuální výběr tak, aby zahrnoval další znak.

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

VybratForwardWord

Upravte aktuální výběr tak, aby zahrnoval další slovo pomocí příkazu ForwardWord.

  • Emacs: <Alt+F>

Volba SelectLine

Upravte aktuální výběr tak, aby zahrnoval kurzor na konec řádku.

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

VybratDalšíSlovo

Upravte aktuální výběr tak, aby zahrnoval další slovo.

  • Cmd: <Shift+Ctrl+RightArrow>

SelectShellBackwardWord

Upravte aktuální výběr tak, aby zahrnoval předchozí slovo pomocí ShellBackwardWord.

  • Funkce je nevázaná.

VybratShellForwardWord

Upravte aktuální výběr tak, aby zahrnoval další slovo pomocí ShellForwardWord.

  • Funkce je nevázaná.

VybratShellNextWord

Upravte aktuální výběr tak, aby zahrnoval další slovo pomocí ShellNextWord.

  • Funkce je nevázaná.

Značka SetMark

Označte aktuální umístění kurzoru pro použití v dalším příkazu pro úpravy.

  • Emacs: <Ctrl+@>

Prediktivní funkce IntelliSense

Poznámka

Aby bylo možné tyto funkce používat, musí být povolená prediktivní technologie IntelliSense.

PřijmoutNávrh dalšího slova

Přijme další slovo vloženého návrhu z prediktivní technologie IntelliSense. Tuto funkci lze svázat s klávesou Ctrl+F spuštěním následujícího příkazu.

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

PřijmoutNávrh

Přijme aktuální vložený návrh z prediktivní technologie IntelliSense stisknutím klávesy Šipka vpravo , když je kurzor na konci aktuálního řádku.

Vyhledávací funkce

Vyhledávání znaků

Přečtěte si znak a vyhledejte další výskyt tohoto znaku. Pokud je zadaný argument, vyhledejte n-tý výskyt dopředu (nebo dozadu, pokud je záporný).

  • Cmd: <F3>
  • Emacs: <Ctrl+]>
  • Režim vložení Vi: <F3>
  • Režim příkazu Vi: <F3>

ZnakyVyhledáváníDozadu

Přečtěte si znak a vyhledejte další výskyt tohoto znaku zpět. Pokud je zadán argument, vyhledejte n-tý výskyt dozadu (nebo dopředu, pokud je záporný).

  • Cmd: <Shift+F3>
  • Emacs: <Ctrl+Alt+]>
  • Režim vložení Vi: <Shift+F3>
  • Režim příkazu Vi: <Shift+F3>

OpakovatLastCharSearch

Opakujte poslední zaznamenané hledání znaků.

  • Režim příkazu Vi: <;>

RepeatLastCharSearchBackwards

Opakujte poslední zaznamenané hledání znaků, ale v opačném směru.

  • Režim příkazu Vi: <,>

OpakovatHledat

Opakujte poslední hledání ve stejném směru jako předtím.

  • Režim příkazu Vi: <n>

RepeatSearchBackward – Opakovat vyhledávání

Opakujte poslední hledání ve stejném směru jako předtím.

  • Režim příkazu Vi: <N>

Znak vyhledávání

Přečtěte si další znak a pak ho najděte, přejdete dopředu a pak se vrátíte k nějakému znaku. Toto je pro funkci "t".

  • Režim příkazu Vi: <f>

HledatZnakZpět

Přečtěte si další znak a pak ho najděte, vraťte se zpět a pak zpět od znaku. Toto je funkce T.

  • Režim příkazu Vi: <F>

SearchCharBackwardWithBackoff

Přečtěte si další znak a pak ho najděte, vraťte se zpět a pak zpět od znaku. Toto je funkce T.

  • Režim příkazu Vi: <T>

SearchCharWithBackoff

Přečtěte si další znak a pak ho najděte, přejdete dopředu a pak se vrátíte k nějakému znaku. Toto je pro funkci "t".

  • Režim příkazu Vi: <t>

Vyhledávání vpřed

Vyzve k zadání hledaného řetězce a zahájí hledání na AcceptLine.

  • Režim vložení Vi: <Ctrl+s>
  • Režim příkazů Vi: <?>, <Ctrl+s>

Vlastní vazby klíčů

PSReadLine podporuje vlastní vazby kláves pomocí rutiny Set-PSReadLineKeyHandler. Většina vazeb vlastních klíčů volá jednu z výše uvedených funkcí, například

Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward

SkriptBlock můžete svázat s klíčem. ScriptBlock může udělat prakticky cokoli, co chcete. Mezi užitečné příklady patří:

  • úprava příkazového řádku
  • otevření nového okna (například nápověda)
  • změna adresářů beze změny příkazového řádku

ScriptBlock přijímá dva argumenty:

  • $key – objekt [ConsoleKeyInfo], který je klíčem, který aktivoval vlastní vazbu. Pokud svážete stejný ScriptBlock s více klíči a potřebujete provádět různé akce v závislosti na klíči, můžete zkontrolovat $key. Mnoho vlastních vazeb tento argument ignoruje.

  • $arg – libovolný argument. Nejčastěji se jedná o celočíselný argument, který uživatel předává z vazeb klíčů DigitArgument. Pokud vazba nepřijímá argumenty, je vhodné tento argument ignorovat.

Podívejme se na příklad, který přidá příkazový řádek do historie bez jeho spuštění. To je užitečné, když zjistíte, že jste něco zapomněli udělat, ale nechcete znovu zadat příkazový řádek, který jste už zadali.

$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

Mnoho dalších příkladů můžete vidět v souboru SamplePSReadLineProfile.ps1 , který je nainstalován ve složce modulu PSReadLine.

Většina klíčových vazeb používá některé pomocné funkce pro úpravu příkazového řádku. Tato rozhraní API jsou zdokumentovaná v další části.

Rozhraní API pro podporu vlastních vazeb klíčů

Následující funkce jsou veřejné v Microsoft.PowerShell.PSConsoleReadLine, ale nelze je přímo svázat s klíčem. Nejužitečnější jsou ve vlastních vazbách klíčů.

void AddToHistory(string command)

Přidejte příkazový řádek do historie bez jeho spuštění.

void ClearKillRing()

Vyčiste ten kill-ring. Nejčastěji se používá k testování.

void Delete(int start, int length)

Odstraňte od začátku znaky délky. Tato operace podporuje vrácení zpět/znovu.

void Ding()

Proveďte akci Ding na základě předvoleb uživatelů.

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

Tyto dvě funkce načítají užitečné informace o aktuálním stavu vstupní vyrovnávací paměti. První se častěji používá pro jednoduché případy. Druhá se použije, pokud vaše vazba provádí něco pokročilejšího s ast.

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

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

Tyto dvě funkce používají Get-PSReadLineKeyHandler. První se používá k získání všech klíčových vazeb. Druhá se používá k získání konkrétních klíčových vazeb.

Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()

Tuto funkci používá Get-PSReadLineOption a pravděpodobně není příliš užitečná ve vlastní vazbě klíče.

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

Pokud na příkazovém řádku není žádný výběr, funkce vrátí -1 na začátku i v délce. Pokud je na příkazovém řádku výběr, vrátí se začátek a délka výběru.

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

Na kurzor vložte znak nebo řetězec. Tato operace podporuje vrácení zpět/znovu.

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

Toto je hlavní vstupní bod psReadLine. Nepodporuje rekurze, takže není užitečná ve vlastní vazbě klíče.

void RemoveKeyHandler(string[] key)

Tuto funkci používá Remove-PSReadLineKeyHandler a pravděpodobně není příliš užitečná ve vlastní vazbě klíče.

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

Nahraďte některé vstupy. Tato operace podporuje vrácení zpět/znovu. Toto je upřednostňované před odstraněním a následným vložením, protože se považuje za jedinou akci pro vrácení zpět.

void SetCursorPosition(int cursor)

Přesuňte kurzor na daný posun. Pohyb kurzoru není sledován pro vrácení zpět.

void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)

Tato funkce je pomocná metoda používaná rutinou Set-PSReadLineOption, ale může být užitečná pro vlastní vazbu klíče, která chce dočasně změnit nastavení.

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

Tato pomocná metoda se používá pro vlastní vazby, které dodržují DigitArgument. Typický hovor vypadá takto:

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

Poznámky

Historie příkazů

PSReadLine udržuje soubor historie obsahující všechny příkazy a data, která jste zadali z příkazového řádku. Soubory historie jsou soubory s názvem $($host.Name)_history.txt. V systémech Windows je soubor historie uložen v $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine. V systémech jiných než Windows jsou soubory historie uloženy ve nebo $env:XDG_DATA_HOME/powershell/PSReadLine$env:HOME/.local/share/powershell/PSReadLine.

Historie může obsahovat citlivá data včetně hesel. PsReadLine se pokusí vyfiltrovat citlivé informace. Všechny příkazové řádky obsahující následující řetězce nejsou zapsány do souboru historie.

  • heslo
  • Skrytý text
  • token
  • apikey
  • tajný klíč

Zpětná vazba a přispívání do PSReadLine

PSReadLine na GitHubu

Nebojte se odeslat žádost o přijetí změn nebo odeslat zpětnou vazbu na stránce GitHubu.

Viz také

  • PSReadLine je silně ovlivněn gnu readline knihovnou.