about_PSReadLine_Functions

Kort beskrivning

PSReadLine ger en förbättrad kommandoradsredigering i PowerShell-konsolen.

Lång beskrivning

PowerShell 7.2 levereras med PSReadLine 2.1.0. Det finns nyare versioner tillgängliga. Den aktuella versionen av PSReadLine kan installeras och användas på Windows PowerShell 5.1 och senare. För vissa funktioner måste du köra PowerShell 7.2 eller senare.

I den här artikeln beskrivs funktionerna som tillhandahålls av PSReadLine. Dessa funktioner kan bindas till tangenttryckningar för enkel åtkomst och anrop.

Använda klassen Microsoft.PowerShell.PSConsoleReadLine

Följande funktioner är tillgängliga i klassen Microsoft.PowerShell.PSConsoleReadLine.

Grundläggande redigeringsfunktioner

Avbryta

Avbryt den aktuella åtgärden, till exempel: inkrementell historiksökning.

  • Emacs: <Ctrl+g>
  • Vi-infogningsläge: <Ctrl+g>
  • Vi-kommandoläge: <Ctrl+g>

AcceptAndGetNext

Försök att köra de aktuella indata. Om det kan köras (till exempel AcceptLine) återkallar du nästa objekt från historiken nästa gång ReadLine anropas.

  • Emacs: <Ctrl+o>

AcceptLine

Försök att köra de aktuella indata. Om de aktuella indata är ofullständiga (till exempel om det saknas avslutande parenteser, hakparenteser eller citattecken) visas fortsättningsprompten på nästa rad och PSReadLine väntar på att nycklar ska redigera de aktuella indata.

  • Cmd: <Enter>
  • Emacs: <Enter>
  • Vi-infogningsläge: <Enter>

Lägg till rad

Fortsättningsprompten visas på nästa rad och PSReadLine väntar på att nycklar ska redigera de aktuella indata. Det här är användbart för att ange indata för flera rader som ett enda kommando även om en enda rad är fullständig inmatning av sig själv.

  • Cmd: <Shift+Enter>
  • Emacs: <Shift+Enter>
  • Vi-infogningsläge: <Shift+Enter>
  • Vi-kommandoläge: <Shift+Enter>

BackwardDeleteChar

Ta bort tecknet före markören.

  • Cmd: <Backspace>, <Ctrl+h>
  • Emacs: <Backspace>, <Ctrl+Backspace>, <Ctrl+h>
  • Vi-infogningsläge: <Backspace>
  • Vi-kommandoläge: <X>, <d,h>

BackwardDeleteInput

Som BackwardKillInput – tar bort text från punkten till början av indata, men lägger inte den borttagna texten i kill-ring.

  • Cmd: <Ctrl+Home>
  • Vi-infogningsläge: <Ctrl+u>, <Ctrl+Home>
  • Vi-kommandoläge: <Ctrl+u>, <Ctrl+Home>

BackwardDeleteLine

Som BackwardKillLine – tar bort text från punkten till början av raden, men lägger inte den borttagna texten i kill-ringen.

  • Vi-kommandoläge: <d,0>

BackwardDeleteWord

Tar bort föregående ord.

  • Vi-kommandoläge: <Ctrl+w>, <d,b>

BackwardKillInput

Rensa texten från början av indata till markören. Den rensade texten placeras i kill-ring.

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

Bakåtkillline

Rensa texten från början av den aktuella logiska raden till markören. Den rensade texten placeras i kill-ring.

  • Funktionen är obundna.

BackwardKillWord

Rensa indata från början av det aktuella ordet till markören. Om markören är mellan ord rensas indata från början av föregående ord till markören. Den rensade texten placeras i kill-ring.

  • Cmd: <Ctrl+Backspace>, <Ctrl+w>
  • Emacs: <Alt+Backspace>, <Escape,Backspace>
  • Vi-infogningsläge: <Ctrl+Backspace>
  • Vi-kommandoläge: <Ctrl+Backspace>

CancelLine

Avbryt den aktuella inmatningen och lämna indata på skärmen, men återgår till värden så att prompten utvärderas igen.

  • Vi-infogningsläge: <Ctrl+c>
  • Vi-kommandoläge: <Ctrl+c>

Kopiera

Kopiera markerad region till systemets Urklipp. Om ingen region är markerad kopierar du hela raden.

  • Cmd: <Ctrl+C>

CopyOrCancelLine

Om text är markerad kopierar du till Urklipp, annars avbryter du raden.

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

Klipp ut

Ta bort markerad region som placerar borttagen text i systemets Urklipp.

  • Cmd: <Ctrl+x>

DeleteChar

Ta bort tecknet under markören.

  • Cmd: <Delete>
  • Emacs: <Delete>
  • Vi-infogningsläge: <Delete>
  • Vi-kommandoläge: <Delete>, <x>, <d,l>, <d,Spacebar>

DeleteCharOrExit

Ta bort tecknet under markören eller avsluta processen om raden är tom.

  • Emacs: <Ctrl+d>

DeleteEndOfBuffer

Tar bort till slutet av bufferten med flera ledningar.

  • Vi-kommandoläge: <d,G>

DeleteEndOfWord

Ta bort till slutet av ordet.

  • Vi-kommandoläge: <d,e>

DeleteLine

Tar bort den aktuella logiska raden i en buffert med flera rader, vilket aktiverar ångra.

  • Vi-kommandoläge: <d,d>, <d,_>

DeletePreviousLines

Tar bort de tidigare begärda logiska raderna och den aktuella logiska raden i en buffert med flera rader.

  • Vi-kommandoläge: <d,k>

DeleteRelativeLines

Tar bort från början av bufferten till den aktuella logiska raden i en buffert med flera rader.

Som de flesta Vi-kommandon <d,g,g> kan kommandot förberedas med ett numeriskt argument som anger ett absolut radnummer, som tillsammans med det aktuella radnumret utgör ett radintervall som ska tas bort. Om det inte anges är det numeriska argumentet standardvärdet 1, vilket refererar till den första logiska raden i en buffert med flera rader.

Det faktiska antalet rader som ska tas bort från flera rader beräknas som skillnaden mellan det aktuella logiska radnumret och det angivna numeriska argumentet, vilket därmed kan vara negativt. Därav den relativa delen av metodnamnet.

  • Vi-kommandoläge: <d,g,g>

DeleteNextLines

Tar bort den aktuella logiska linjen och nästa begärda logiska linjer i en buffert med flera rader.

  • Vi-kommandoläge: <d,j>

DeleteLineToFirstChar

Tar bort från det första icke-tomma tecknet för den aktuella logiska raden i en buffert med flera rader.

  • Vi-kommandoläge: <d,^>

DeleteToEnd

Ta bort till slutet av raden.

  • Vi-kommandoläge: <D>, <d,$>

DeleteWord

Ta bort nästa ord.

  • Vi-kommandoläge: <d,w>

ForwardDeleteInput

Precis som KillLine – tar bort text från punkten till slutet av indata, men lägger inte den borttagna texten i kill-ringen.

  • Cmd: <Ctrl+End>
  • Vi-infogningsläge: <Ctrl+End>
  • Vi-kommandoläge: <Ctrl+End>

ForwardDeleteLine

Tar bort text från punkten till slutet av den aktuella logiska linjen, men placerar inte den borttagna texten i kill-ringen.

  • Funktionen är obundet

InsertLineAbove

En ny tom rad skapas ovanför den aktuella raden oavsett var markören finns på den aktuella raden. Markören flyttas till början av den nya raden.

  • Cmd: <Ctrl+Enter>

InsertLineBelow

En ny tom rad skapas under den aktuella raden oavsett var markören finns på den aktuella raden. Markören flyttas till början av den nya raden.

  • Cmd: <Shift+Ctrl+Enter>

Invertera versaler

Invertera fallet med det aktuella tecknet och flytta till nästa.

  • Vi-kommandoläge: <~>

KillLine

Rensa indata från markören till slutet av indata. Den rensade texten placeras i kill-ringen.

  • Emacs: <Ctrl+k>

KillRegion

Döda texten mellan markören och markeringen.

  • Funktionen är obundet.

KillWord

Rensa indata från markören till slutet av det aktuella ordet. Om markören är mellan ord rensas indata från markören till slutet av nästa ord. Den rensade texten placeras i kill-ringen.

  • Cmd: <Alt+d>, <Ctrl+Delete>
  • Emacs: <Alt+d>, <Escape,d>
  • Vi-infogningsläge: <Ctrl+Delete>
  • Vi-kommandoläge: <Ctrl+Delete>

Klistra in

Klistra in text från systemets Urklipp.

  • Cmd: <Ctrl+v>, <Shift+Insert>
  • Vi-infogningsläge: <Ctrl+v>
  • Vi-kommandoläge: <Ctrl+v>

Viktigt

När du använder funktionen Klistra in klistras hela innehållet i Urklippsbuffert in i indatabufferten för PSReadLine. Indatabufferten skickas sedan till PowerShell-parsern. Indata som klistras in med hjälp av konsolprogrammets metod för att högerklicka på klistra in kopieras till indatabufferten ett tecken i taget. Indatabufferten skickas till parsern när ett nytt radtecken kopieras. Därför parsas indata en rad i taget. Skillnaden mellan inklistringsmetoder resulterar i olika körningsbeteenden.

PasteAfter

Klistra in Urklipp efter markören och flytta markören till slutet av den klistrade texten.

  • Vi-kommandoläge: <p>

PasteBefore

Klistra in Urklipp före markören och flytta markören till slutet av den klistrade texten.

  • Vi-kommandoläge: <P>

PrependAndAccept

Förbered ett "#" och acceptera raden.

  • Vi-kommandoläge: <#>

Gör om

Ångra en ångra.

  • Cmd: <Ctrl+y>
  • Vi-infogningsläge: <Ctrl+y>
  • Vi-kommandoläge: <Ctrl+y>

RepeatLastCommand

Upprepa den senaste textändringen.

  • Vi-kommandoläge: <.>

RevertLine

Återställer alla indata till de aktuella indata.

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

ShellBackwardKillWord

Rensa indata från början av det aktuella ordet till markören. Om markören är mellan ord rensas indata från början av föregående ord till markören. Den rensade texten placeras i kill-ringen.

Funktionen är obundet.

ShellKillWord

Rensa indata från markören till slutet av det aktuella ordet. Om markören är mellan ord rensas indata från markören till slutet av nästa ord. Den rensade texten placeras i kill-ring.

Funktionen är obundna.

SwapCharacters

Växla det aktuella tecknet och det före det.

  • Emacs: <Ctrl+t>
  • Vi-infogningsläge: <Ctrl+t>
  • Vi-kommandoläge: <Ctrl+t>

Ångra

Ångra en tidigare redigering.

  • Cmd: <Ctrl+z>
  • Emacs: <Ctrl+_>, <Ctrl+x,Ctrl+u>
  • Vi-infogningsläge: <Ctrl+z>
  • Vi-kommandoläge: <Ctrl+z>, <u>

ÅngraAlla

Ångra alla tidigare redigeringar för raden.

  • Vi-kommandoläge: <U>

UnixWordRubout

Rensa indata från början av det aktuella ordet till markören. Om markören är mellan ord rensas indata från början av föregående ord till markören. Den rensade texten placeras i kill-ring.

  • Emacs: <Ctrl+w>

ValidateAndAcceptLine

Försök att köra de aktuella indata. Om de aktuella indata är ofullständiga (till exempel om det saknas avslutande parenteser, hakparenteser eller citattecken) visas fortsättningsprompten på nästa rad och PSReadLine väntar på att nycklar ska redigera de aktuella indata.

  • Emacs: <Ctrl+m>

ViAcceptLine

Acceptera raden och växla till Infogningsläge.

  • Vi-kommandoläge: <Enter>

ViAcceptLineOrExit

Som DeleteCharOrExit i Emacs-läge, men accepterar raden i stället för att ta bort ett tecken.

  • Vi-infogningsläge: <Ctrl+d>
  • Vi-kommandoläge: <Ctrl+d>

ViAppendLine

En ny rad infogas under den aktuella raden.

  • Vi-kommandoläge: <o>

ViBackwardDeleteGlob

Tar bort föregående ord med endast blanksteg som ordet avgränsare.

  • Vi-kommandoläge: <d,B>

ViBackwardGlob

Flyttar markören tillbaka till början av föregående ord, med endast blanksteg som avgränsare.

  • Vi-kommandoläge: <B>

ViDeleteBrace

Hitta matchande klammerparentes, parentes eller hakparentes och ta bort allt innehåll inom, inklusive klammerparentesen.

  • Vi-kommandoläge: <d,%>

ViDeleteEndOfGlob

Ta bort till slutet av ordet.

  • Vi-kommandoläge: <d,E>

ViDeleteGlob

Ta bort nästa glob (blankstegsavgränsat ord).

  • Vi-kommandoläge: <d,W>

ViDeleteToBeforeChar

Tar bort tills det angivna tecknet.

  • Vi-kommandoläge: <d,t>

ViDeleteToBeforeCharBackward

Tar bort tills det angivna tecknet.

  • Vi-kommandoläge: <d,T>

ViDeleteToChar

Tar bort tills det angivna tecknet.

  • Vi-kommandoläge: <d,f>

ViDeleteToCharBackward

Tar bort bakåt tills det angivna tecknet.

  • Vi-kommandoläge: <d,F>

ViInsertAtBegining

Växla till Infogningsläge och placera markören i början av raden.

  • Vi-kommandoläge: <I>

ViInsertAtEnd

Växla till Infogningsläge och placera markören i slutet av raden.

  • Vi-kommandoläge: <A>

ViInsertLine

En ny rad infogas ovanför den aktuella raden.

  • Vi-kommandoläge: <O>

ViInsertWithAppend

Lägg till från den aktuella radpositionen.

  • Vi-kommandoläge: <a>

ViInsertWithDelete

Ta bort det aktuella tecknet och växla till Infogningsläge.

  • Vi-kommandoläge: <s>

ViJoinLines

Kopplar den aktuella raden och nästa rad.

  • Vi-kommandoläge: <J>

ViReplaceLine

Radera hela kommandoraden.

  • Vi-kommandoläge: <S>, <c,c>

ViReplaceToBeforeChar

Ersätter tills det angivna tecknet.

  • Vi-kommandoläge: <c,t>

ViReplaceToBeforeCharBackward

Ersätter tills det angivna tecknet.

  • Vi-kommandoläge: <c,T>

ViReplaceToChar

Tar bort tills det angivna tecknet.

  • Vi-kommandoläge: <c,f>

ViReplaceToCharBackward

Ersätter tills det angivna tecknet.

  • Vi-kommandoläge: <c,F>

ViYankBeginningOfLine

Ryck från början av bufferten till markören.

  • Vi-kommandoläge: <y,0>

ViYankEndOfGlob

Ryck från markören till slutet av WORD(s).

  • Vi-kommandoläge: <y,E>

ViYankEndOfWord

Ryck från markören till slutet av ordet(erna).

  • Vi-kommandoläge: <y,e>

ViYankLeft

Dra tecken till vänster om markören.

  • Vi-kommandoläge: <y,h>

ViYankLine

Ryck hela bufferten.

  • Vi-kommandoläge: <y,y>

ViYankNextGlob

Ryck från markören till början av nästa WORD(s).

  • Vi-kommandoläge: <y,W>

ViYankNextWord

Ryck ordet(erna) efter markören.

  • Vi-kommandoläge: <y,w>

ViYankPercent

Dra till/från matchande klammerparentes.

  • Vi-kommandoläge: <y,%>

ViYankPreviousGlob

Ryck från början av WORD(s) till markören.

  • Vi-kommandoläge: <y,B>

ViYankPreviousWord

Dra ordet(erna) före markören.

  • Vi-kommandoläge: <y,b>

ViYankRight

Dra tecken under och till höger om markören.

  • Vi-kommandoläge: <y,l>, <y,Spacebar>

ViYankToEndOfLine

Ryck från markören till slutet av bufferten.

  • Vi-kommandoläge: <y,$>

ViYankToFirstChar

Dra från det första icke-blankstegstecknet till markören.

  • Vi-kommandoläge: <y,^>

Ryck

Lägg till den senast dödade texten i indata.

  • Emacs: <Ctrl+y>

YankLastArg

Dra tillbaka det sista argumentet från föregående historikrad. Med ett argument beter sig första gången det anropas precis som YankNthArg. Om den anropas flera gånger itererar den i stället genom historiken och arg anger riktningen (negativ vänder riktningen.)

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

YankNthArg

Hämta det första argumentet (efter kommandot) från föregående historikrad. Med ett argument drar du tillbaka argumentet nth (med början från 0), om argumentet är negativt börjar du från det sista argumentet.

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

YankPop

Om den tidigare operationen var Yank eller YankPop, ersätt den tidigare yanked texten med nästa dödade text från kill-ring.

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

Markörförflyttningsfunktioner

Bakåtdiagram

Flytta markören ett tecken åt vänster. Detta kan flytta markören till föregående rad med flerradsindata.

  • Cmd: <LeftArrow>
  • Emacs: <LeftArrow>, <Ctrl+b>

Bakåtord

Flytta markören tillbaka till början av det aktuella ordet eller, om det är mellan ord, början av föregående ord. Ordgränser definieras av en konfigurerbar uppsättning tecken.

  • Cmd: <Ctrl+LeftArrow>
  • Emacs: <Alt+b>, <Escape,b>
  • Vi-infogningsläge: <Ctrl+LeftArrow>
  • Vi-kommandoläge: <Ctrl+LeftArrow>

Tecknen som definierar ordgränser konfigureras i egenskapen WordDelimiters för objektet PSConsoleReadLineOptions . Information om hur du visar eller ändrar egenskapen WordDelimiters finns i Get-PSReadLineOption och Set-PSReadLineOption.

BeginningOfLine

Om indata har flera rader går du till början av den aktuella raden, eller om det redan finns i början av raden, går du till början av indata. Om indata har en enda rad går du till början av indata.

  • Cmd: <Home>
  • Emacs: <Home>, <Ctrl+a>
  • Vi-infogningsläge: <Home>
  • Vi-kommandoläge: <Home>

EndOfLine

Om indata har flera rader flyttar du till slutet av den aktuella raden, eller om det redan finns i slutet av raden, flyttar du till slutet av indata. Om indata har en enda rad går du till slutet av indata.

  • Cmd: <End>
  • Emacs: <End>, <Ctrl+e>
  • Vi-infogningsläge: <End>

Vidarebefordrandiagram

Flytta markören ett tecken åt höger. Detta kan flytta markören till nästa rad med flerradsindata.

  • Cmd: <RightArrow>
  • Emacs: <RightArrow>, <Ctrl+f>

Framåtord

Flytta markören framåt till slutet av det aktuella ordet, eller om det är mellan ord, till slutet av nästa ord. Ordgränser definieras av en konfigurerbar uppsättning tecken.

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

Tecknen som definierar ordgränser konfigureras i egenskapen WordDelimiters för objektet PSConsoleReadLineOptions . Information om hur du visar eller ändrar egenskapen WordDelimiters finns i Get-PSReadLineOption och Set-PSReadLineOption.

GotoBrace

Gå till matchande klammerparentes, parentes eller hakparentes.

  • Cmd: <Ctrl+]>
  • Vi-infogningsläge: <Ctrl+]>
  • Vi-kommandoläge: <Ctrl+]>

GotoColumn

Flytta till kolumnen som anges av arg.

  • Vi-kommandoläge: <|>

GotoFirstNonBlankOfLine

Flytta markören till det första icke-tomma tecknet på raden.

  • Vi-kommandoläge: <^>, <_>

MoveToEndOfLine

Flytta markören till slutet av indata.

  • Vi-kommandoläge: <End>, <$>

NextLine

Flytta markören till nästa rad.

  • Funktionen är obundna.

NextWord

Flytta markören framåt till början av nästa ord. Ordgränser definieras av en konfigurerbar uppsättning tecken.

  • Cmd: <Ctrl+RightArrow>
  • Vi-infogningsläge: <Ctrl+RightArrow>
  • Vi-kommandoläge: <Ctrl+RightArrow>

Tecknen som definierar ordgränser konfigureras i egenskapen WordDelimiters för objektet PSConsoleReadLineOptions . Information om hur du visar eller ändrar egenskapen WordDelimiters finns i Get-PSReadLineOption och Set-PSReadLineOption.

NextWordEnd

Flytta markören framåt till slutet av det aktuella ordet, eller om det är mellan ord, till slutet av nästa ord. Ordgränser definieras av en konfigurerbar uppsättning tecken.

  • Vi-kommandoläge: <e>

Tecknen som definierar ordgränser konfigureras i egenskapen WordDelimiters för objektet PSConsoleReadLineOptions . Information om hur du visar eller ändrar egenskapen WordDelimiters finns i Get-PSReadLineOption och Set-PSReadLineOption.

Föregående rad

Flytta markören till föregående rad.

  • Funktionen är obundna.

ShellBackwardWord

Flytta markören tillbaka till början av det aktuella ordet eller, om det är mellan ord, början av föregående ord. Word-gränser definieras av PowerShell-token.

  • Funktionen är obundna.

ShellForwardWord

Flytta markören framåt till början av nästa ord. Word-gränser definieras av PowerShell-token.

  • Funktionen är obundna.

ShellNextWord

Flytta markören framåt till slutet av det aktuella ordet, eller om det är mellan ord, till slutet av nästa ord. Word-gränser definieras av PowerShell-token.

  • Funktionen är obundna.

ViBackwardChar

Flytta markören ett tecken åt vänster i redigeringsläget Vi. Detta kan flytta markören till föregående rad med flerradsindata.

  • Vi-infogningsläge: <LeftArrow>
  • Vi-kommandoläge: <LeftArrow>, <Backspace>, <h>

ViBackwardWord

Flytta markören tillbaka till början av det aktuella ordet eller, om det är mellan ord, början av föregående ord. Ordgränser definieras av en konfigurerbar uppsättning tecken.

  • Vi-kommandoläge: <b>

Tecknen som definierar ordgränser konfigureras i egenskapen WordDelimiters för objektet PSConsoleReadLineOptions . Information om hur du visar eller ändrar egenskapen WordDelimiters finns i Get-PSReadLineOption och Set-PSReadLineOption.

ViForwardChar

Flytta markören ett tecken åt höger i redigeringsläget Vi. Detta kan flytta markören till nästa rad med flerradsindata.

  • Vi-infogningsläge: <RightArrow>
  • Vi-kommandoläge: <RightArrow>, <Spacebar>, <l>

ViEndOfGlob

Flyttar markören till slutet av ordet med endast blanksteg som avgränsare.

  • Vi-kommandoläge: <E>

ViEndOfPreviousGlob

Flyttar till slutet av föregående ord, med endast blanksteg som en ordgränsare.

  • Funktionen är obundna.

ViGotoBrace

Liknar GotoBrace, men är teckenbaserad i stället för tokenbaserad.

  • Vi-kommandoläge: <%>

ViNextGlob

Flyttar till nästa ord, med endast blanksteg som en ordgränsare.

  • Vi-kommandoläge: <W>

ViNextWord

Flytta markören framåt till början av nästa ord. Ordgränser definieras av en konfigurerbar uppsättning tecken.

  • Vi-kommandoläge: <w>

Tecknen som definierar ordgränser konfigureras i egenskapen WordDelimiters för objektet PSConsoleReadLineOptions . Information om hur du visar eller ändrar egenskapen WordDelimiters finns i Get-PSReadLineOption och Set-PSReadLineOption.

Funktioner för historik

BeginningOfHistory

Flytta till det första objektet i historiken.

  • Emacs: <Alt+<>

ClearHistory

Rensar historik i PSReadLine. Detta påverkar inte PowerShell-historiken.

  • Cmd: <Alt+F7>

EndOfHistory

Flytta till det sista objektet (aktuella indata) i historiken.

  • Emacs: <Alt+>>

ForwardSearchHistory

Utför en inkrementell framåtsökning genom historiken.

  • Cmd: <Ctrl+s>
  • Emacs: <Ctrl+s>
  • Vi-infogningsläge: <Ctrl+s>
  • Vi-kommandoläge: <Ctrl+s>

HistorySearchBackward

Ersätt de aktuella indata med föregående objekt från PSReadLine-historiken som matchar tecknen mellan start och indata och markören.

  • Cmd: <F8>

HistorySearchForward

Ersätt den aktuella indatan med nästa objekt från PSReadLine-historiken som matchar tecknen mellan start och indata och markören.

  • Cmd: <Shift+F8>

NextHistory

Ersätt den aktuella indatan med nästa objekt från PSReadLine-historiken.

  • Cmd: <DownArrow>
  • Emacs: <DownArrow>, <Ctrl+n>
  • Vi-infogningsläge: <DownArrow>
  • Vi-kommandoläge: <DownArrow>, <j>, <+>

PreviousHistory

Ersätt de aktuella indata med föregående objekt från PSReadLine-historiken.

  • Cmd: <UpArrow>
  • Emacs: <UpArrow>, <Ctrl+p>
  • Vi-infogningsläge: <UpArrow>
  • Vi-kommandoläge: <UpArrow>, <k>, <->

ReverseSearchHistory

Utför en inkrementell bakåtsökning genom historiken.

  • Cmd: <Ctrl+r>
  • Emacs: <Ctrl+r>
  • Vi-infogningsläge: <Ctrl+r>
  • Vi-kommandoläge: <Ctrl+r>

ViSearchHistoryBackward

Frågar efter en söksträng och initierar sökning på AcceptLine.

  • Vi-kommandoläge: </>

Slutförandefunktioner

Klart

Försök att slutföra texten som omger markören. Om det finns flera möjliga slutföranden används det längsta entydiga prefixet för slutförande. Om du försöker slutföra den längsta entydiga slutförandet visas en lista över möjliga slutföranden.

  • Emacs: <Tab>

Försök att slutföra texten som omger markören. Om det finns flera möjliga slutföranden används det längsta entydiga prefixet för slutförande. Om du försöker slutföra den längsta entydiga slutförandet visas en lista över möjliga slutföranden.

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

PossibleCompletions

Visa listan över möjliga slutföranden.

  • Emacs: <Alt+=>
  • Vi-infogningsläge: <Ctrl+Spacebar>
  • Vi-kommandoläge: <Ctrl+Spacebar>

TabCompleteNästa

Försök att slutföra texten som omger markören med nästa tillgängliga slutförande.

  • Cmd: <Tab>
  • Vi-kommandoläge: <Tab>

TabCompletePrevious

Försök att slutföra texten som omger markören med föregående tillgängliga slutförande.

  • Cmd: <Shift+Tab>
  • Vi-kommandoläge: <Shift+Tab>

ViTabCompleteNästa

Avslutar den aktuella redigeringsgruppen om det behövs och anropar TabCompleteNästa.

  • Vi-infogningsläge: <Tab>

ViTabCompletePrevious

Avslutar den aktuella redigeringsgruppen om det behövs och anropar TabCompletePrevious.

  • Vi-infogningsläge: <Shift+Tab>

Förutsägelsefunktioner

AcceptNextSuggestionWord

När du använder InlineView som visningsformat för förutsägelse godkänner du nästa ord i det infogade förslaget.

  • Funktionen är obundet.

AcceptSuggestion

När du använder InlineView som visningsformat för förutsägelse godkänner du det aktuella infogade förslaget.

  • Funktionen är obundet.

NextSuggestion

När du använder ListView som visningsformat för förutsägelse navigerar du till nästa förslag i listan.

  • Funktionen är obundet.

PreviousSuggestion

När du använder ListView som visningsformat för förutsägelse navigerar du till föregående förslag i listan.

  • Funktionen är obundet.

SwitchPredictionView

Växla visningsformatet för förutsägelse mellan InlineView och ListView.

  • Cmd: <F2>

Diverse funktioner

CaptureScreen

Starta interaktiv skärmdump – uppåt-/nedpilar väljer rader, anger kopior av markerad text till Urklipp som text och HTML.

  • Funktionen är obundet.

ClearScreen

Rensa skärmen och rita den aktuella linjen överst på skärmen.

  • Cmd: <Ctrl+l>
  • Emacs: <Ctrl+l>
  • Vi-infogningsläge: <Ctrl+l>
  • Vi-kommandoläge: <Ctrl+l>

DigitArgument

Starta ett nytt sifferargument för att skicka till andra funktioner. Du kan använda detta som multiplikator för nästa funktion som anropas av en keypress. Om du till exempel trycker på <Alt+1><Alt+0> anges värdet för digit-argument till 10. Om du trycker på tangenten skickas # sedan 10 # tecken (##########) till indataraden. På samma sätt kan du använda detta med andra åtgärder, till exempel <Delete> eller 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+->
  • Vi-kommandoläge: <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>, , <8><9>

InvokePrompt

Raderar den aktuella prompten och anropar promptfunktionen för att spela upp prompten. Användbart för anpassade nyckelhanterare som ändrar tillstånd. Ändra till exempel den aktuella katalogen.

  • Funktionen är obundet.

ScrollDisplayDown

Rulla skärmen nedåt en skärm.

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

ScrollDisplayDownLine

Rulla ned displayen en rad.

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

ScrollDisplayToCursor

Rulla skärmen till markören.

  • Emacs: <Ctrl+End>

ScrollDisplayTop

Rulla skärmen längst upp.

  • Emacs: <Ctrl+Home>

ScrollDisplayUp

Rulla skärmen uppåt en skärm.

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

ScrollDisplayUpLine

Rulla uppåt en rad.

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

SelfInsert

Infoga nyckeln.

  • Funktionen är obundna.

ShowCommandHelp

Ger en vy över fullständig cmdlet-hjälp. När markören är i slutet av en helt expanderad parameter placerar du tangenten <F1> visningen av hjälp på platsen för parametern.

Hjälpen visas på en alternativ skärmbuffert med hjälp av en personsökare från Microsoft.PowerShell.Pager. När du avslutar personsökaren återgår du till den ursprungliga markörpositionen på den ursprungliga skärmen. Den här personsökaren fungerar bara i moderna terminalprogram som Windows-terminal.

  • Cmd: <F1>
  • Emacs: <F1>
  • Vi-infogningsläge: <F1>
  • Vi-kommandoläge: <F1>

ShowKeyBindings

Visa alla bundna nycklar.

  • Cmd: <Ctrl+Alt+?>
  • Emacs: <Ctrl+Alt+?>
  • Vi-infogningsläge: <Ctrl+Alt+?>

ShowParameterHelp

Ger dynamisk hjälp för parametrar genom att visa den under den aktuella kommandoraden, till exempel MenuComplete. Markören måste vara i slutet av det fullständigt expanderade parameternamnet när du trycker på tangenten <Alt+h> .

  • Cmd: <Alt+h>
  • Emacs: <Alt+h>
  • Vi-infogningsläge: <Alt+h>
  • Vi-kommandoläge: <Alt+h>

ViCommandMode

Växla det aktuella driftläget från Vi-Insert till Vi-Command.

  • Vi-infogningsläge: <Escape>

ViDigitArgumentInChord

Starta ett nytt sifferargument för att skicka till andra funktioner i ett av vi-ackorden.

  • Funktionen är obundna.

ViEditVisually

Redigera kommandoraden i en textredigerare som anges av $env:EDITOR eller $env:VISUAL.

  • Emacs: <Ctrl+x,Ctrl+e>
  • Vi-kommandoläge: <v>

ViExit

Avslutar gränssnittet.

  • Funktionen är obundna.

ViInsertMode

Växla till Infogningsläge.

  • Vi-kommandoläge: <i>

WhatIsKey

Läs en nyckel och berätta vad nyckeln är bunden till.

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

Markeringsfunktioner

ExchangePointAndMark

Markören placeras på markeringens plats och markeringen flyttas till markörens plats.

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

VäljAlla

Välj hela raden.

  • Cmd: <Ctrl+a>

VäljBackwardChar

Justera den aktuella markeringen så att den innehåller föregående tecken.

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

VäljBackwardsLine

Justera den aktuella markeringen så att den inkluderas från markören till början av raden.

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

SelectBackwardWord

Justera den aktuella markeringen så att den innehåller föregående ord.

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

SelectCommandArgument

Gör ett visuellt val av kommandoargumenten. Val av argument omfångsbegränsas inom ett skriptblock. Baserat på markörens position söker den från det innersta skriptblocket till det yttersta skriptblocket och stoppar när det hittar argument i ett skriptblockomfång.

Den här funktionen använder DigitArgument. Den behandlar de positiva eller negativa argumentvärdena som framåt- eller bakåtförskjutningar från det aktuella valda argumentet, eller från den aktuella markörpositionen när inget argument har valts.

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

VäljForwardChar

Justera den aktuella markeringen så att nästa tecken inkluderas.

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

SelectForwardWord

Justera den aktuella markeringen så att nästa ord inkluderas med hjälp av ForwardWord.

  • Emacs: <Alt+F>

SelectLine

Justera den aktuella markeringen så att den inkluderas från markören till slutet av raden.

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

SelectNextWord

Justera den aktuella markeringen så att nästa ord inkluderas.

  • Cmd: <Shift+Ctrl+RightArrow>

VäljShellBackwardWord

Justera den aktuella markeringen så att det föregående ordet inkluderas med Hjälp av ShellBackwardWord.

  • Funktionen är obundna.

VäljShellForwardWord

Justera den aktuella markeringen så att nästa ord inkluderas med ShellForwardWord.

  • Funktionen är obundna.

VäljShellNextWord

Justera den aktuella markeringen så att nästa ord inkluderas med ShellNextWord.

  • Funktionen är obundet.

Ange markering

Markera markörens aktuella plats för användning i ett efterföljande redigeringskommando.

  • Emacs: <Ctrl+@>

Prediktiva IntelliSense-funktioner

Anteckning

Predictive IntelliSense måste aktiveras för att kunna använda dessa funktioner.

AcceptNextWordSuggestion

Accepterar nästa ord i det infogade förslaget från Predictive IntelliSense. Den här funktionen kan bindas med Ctrl+F genom att köra följande kommando.

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

AcceptSuggestion

Accepterar det aktuella infogade förslaget från Predictive IntelliSense genom att trycka på RightArrow när markören är i slutet av den aktuella raden.

Sökfunktioner

CharacterSearch

Läs ett tecken och sök framåt för nästa förekomst av det tecknet. Om ett argument anges söker du framåt (eller bakåt om det är negativt) för nth-förekomsten.

  • Cmd: <F3>
  • Emacs: <Ctrl+]>
  • Vi-infogningsläge: <F3>
  • Vi-kommandoläge: <F3>

CharacterSearchBackward

Läs ett tecken och sök bakåt efter nästa förekomst av det tecknet. Om ett argument anges söker du bakåt (eller framåt om det är negativt) för nth-förekomsten.

  • Cmd: <Shift+F3>
  • Emacs: <Ctrl+Alt+]>
  • Vi-infogningsläge: <Shift+F3>
  • Vi-kommandoläge: <Shift+F3>

RepeatLastCharSearch

Upprepa den senast inspelade teckensökningen.

  • Vi-kommandoläge: <;>

RepeatLastCharSearchBackwards

Upprepa den senast inspelade teckensökningen, men i motsatt riktning.

  • Vi-kommandoläge: <,>

RepeatSearch

Upprepa den senaste sökningen i samma riktning som tidigare.

  • Vi-kommandoläge: <n>

RepeatSearchBackward

Upprepa den senaste sökningen i samma riktning som tidigare.

  • Vi-kommandoläge: <N>

Sökdiagram

Läs nästa tecken och leta upp det, gå vidare och backa sedan från ett tecken. Detta gäller för "t"-funktioner.

  • Vi-kommandoläge: <f>

SearchCharBackward

Läs nästa tecken och leta upp det, gå bakåt och backa sedan från ett tecken. Detta gäller för "T"-funktioner.

  • Vi-kommandoläge: <F>

SearchCharBackwardWithBackoff

Läs nästa tecken och leta upp det, gå bakåt och backa sedan från ett tecken. Detta gäller för "T"-funktioner.

  • Vi-kommandoläge: <T>

SearchCharWithBackoff

Läs nästa tecken och leta upp det, gå vidare och backa sedan från ett tecken. Detta gäller för "t"-funktioner.

  • Vi-kommandoläge: <t>

SearchForward

Frågar efter en söksträng och initierar sökning på AcceptLine.

  • Vi-kommandoläge: <?>

Api:er för stöd för anpassad nyckelbindning

Följande funktioner är offentliga i Microsoft.PowerShell.PSConsoleReadLine, men kan inte vara direkt bundna till en nyckel. De flesta är användbara i anpassade nyckelbindningar.

void AddToHistory(string command)

Lägg till en kommandorad i historiken utan att köra den.

void ClearKillRing()

Rensa dödsringen. Detta används främst för testning.

void Delete(int start, int length)

Ta bort längdtecken från början. Den här åtgärden stöder ångra/göra om.

void Ding()

Utför Ding-åtgärden baserat på användarens önskemål.

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

Dessa två funktioner hämtar användbar information om indatabuffertens aktuella tillstånd. Den första används oftare för enkla fall. Den andra används om bindningen gör något mer avancerat med Ast.

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

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

Dessa två funktioner används av Get-PSReadLineKeyHandler. Den första används för att hämta alla nyckelbindningar. Den andra används för att hämta specifika nyckelbindningar.

Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()

Den här funktionen används av Get-PSReadLineOption och är förmodligen inte så användbar i en anpassad nyckelbindning.

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

Om det inte finns något val på kommandoraden returnerar funktionen -1 i både start och längd. Om det finns ett val på kommandoraden returneras markeringens start och längd.

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

Infoga ett tecken eller en sträng vid markören. Den här åtgärden stöder ångra/göra om.

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

Det här är huvudinmatningspunkten för PSReadLine. Det stöder inte rekursion, så det är inte användbart i en anpassad nyckelbindning.

void RemoveKeyHandler(string[] key)

Den här funktionen används av Remove-PSReadLineKeyHandler och är förmodligen inte så användbar i en anpassad nyckelbindning.

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

Ersätt några indata. Den här åtgärden stöder ångra/göra om. Detta rekommenderas framför Ta bort följt av Infoga eftersom det behandlas som en enda åtgärd för ångra.

void SetCursorPosition(int cursor)

Flytta markören till den angivna förskjutningen. Markörens rörelse spåras inte för ångra.

void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)

Den här funktionen är en hjälpmetod som används av cmdleten Set-PSReadLineOption, men kan vara användbar för en anpassad nyckelbindning som tillfälligt vill ändra en inställning.

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

Den här hjälpmetoden används för anpassade bindningar som respekterar DigitArgument. Ett typiskt anrop ser ut som

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

Kommentarer

Beteende för OnIdle-händelsen

  • När PSReadLine används utlöses OnIdle-händelsen när ReadKey() tidsgränsen uppnås (ingen inmatning på 300 ms). Händelsen kan signaleras medan användaren är mitt i redigeringen av en kommandorad, till exempel läser användaren hjälp för att bestämma vilken parameter som ska användas.

    Från och med PSReadLine 2.2.0-beta4 ändrades OnIdle-beteendet för att signalera händelsen endast om det finns en ReadKey() tidsgräns och den aktuella redigeringsbufferten är tom.

Se även