PSReadLine
about_PSReadLine
Kort beskrivning
PSReadLine ger en förbättrad kommandoradsredigering i PowerShell-konsolen.
Lång beskrivning
PSReadLine 2.0 ger en kraftfull kommandoradsredigeringsupplevelse för PowerShell-konsolen. Den tillhandahåller:
- Syntaxfärgning för kommandoraden
- En visuell indikation på syntaxfel
- En bättre flerradsupplevelse (både redigering och historik)
- Anpassningsbara nyckelbindningar
- Cmd- och Emacs-lägen
- Många konfigurationsalternativ
- Slutförande av Bash-format (valfritt i cmd-läge, standard i Emacs-läge)
- Emacs yank/kill-ring
- PowerShell-tokenbaserad "word"-rörelse och -avlivning
PSReadLine kräver PowerShell 3.0, eller senare, och konsolvärden. Det fungerar inte i PowerShell ISE. Det fungerar i -konsolen i Visual Studio Code.
Anteckning
Från och med PowerShell 7.0 hoppar PowerShell över automatisk inläsning av PSReadLine i Windows om ett skärmläsarprogram identifieras. PsReadLine fungerar för närvarande inte bra med skärmläsarna. Standardåtergivningen och formateringen av PowerShell 7.0 i Windows fungerar korrekt. Du kan läsa in modulen manuellt om det behövs.
Följande funktioner är tillgängliga i klassen [Microsoft.PowerShell.PSConsoleReadLine].
Grundläggande redigeringsfunktioner
Avbryta
Avbryt den aktuella åtgärden, t.ex. inkrementell historiksökning.
- Emacs:
<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 tillrad
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 om du vill ange indata med 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>
Bakåtta bortdiagram
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>
Bakåtta bortrad
Precis som BackwardKillLine – tar bort text från punkten till början av raden, men lägger inte den borttagna texten i kill-ringen.
- Cmd:
<Ctrl+Home>
- Vi-infogningsläge:
<Ctrl+u>
,<Ctrl+Home>
- Vi-kommandoläge:
<Ctrl+u>
,<Ctrl+Home>
,<d,0>
Bakåtta bortord
Tar bort föregående ord.
- Vi-kommandoläge:
<Ctrl+w>
,<d,b>
Bakåtkillline
Rensa indata från början av indata till markören. Den rensade texten placeras i kill-ringen.
- Emacs:
<Ctrl+u>
,<Ctrl+x,Backspace>
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-ringen.
- Cmd:
<Ctrl+Backspace>
- Emacs:
<Alt+Backspace>
,<Escape,Backspace>
- Vi-infogningsläge:
<Ctrl+Backspace>
- Vi-kommandoläge:
<Ctrl+Backspace>
CancelLine
Avbryt de aktuella indata och lämna indata på skärmen, men återgår till värden så att uppmaningen utvärderas igen.
- Vi-infogningsläge:
<Ctrl+c>
- Vi-kommandoläge:
<Ctrl+c>
Kopiera
Kopiera markerad region till systemurklippet. Om ingen region har valts 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,Space>
DeleteCharOrExit
Ta bort tecknet under markören eller avsluta processen om raden är tom.
- Emacs:
<Ctrl+d>
DeleteEndOfWord
Ta bort till slutet av ordet.
- Vi-kommandoläge:
<d,e>
DeleteLine
Tar bort den aktuella raden, vilket aktiverar ångra.
- Vi-kommandoläge:
<d,d>
DeleteLineToFirstChar
Tar bort text från markören till det första icke-tomma tecknet på raden.
- 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>
ForwardDeleteLine
Liksom ForwardKillLine - tar bort text från punkten till slutet av raden, men lägger inte den borttagna texten i kill-ring.
- Cmd:
<Ctrl+End>
- Vi-infogningsläge:
<Ctrl+End>
- Vi-kommandoläge:
<Ctrl+End>
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>
Inverterad versaler
Invertera fallet med det aktuella tecknet och gå till nästa.
- Vi-kommandoläge:
<~>
KillLine
Rensa indata från markören till slutet av indata. Den rensade texten placeras i kill-ring.
- Emacs:
<Ctrl+k>
KillRegion
Avsluta texten mellan markören och markeringen.
- Funktionen är obundna.
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-ring.
- Cmd:
<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 Urklippsbufferten in i indatabufferten för PSReadLine. Indatabufferten skickas sedan till PowerShell-parsern. Indata som klistras in med konsolprogrammets metod för att klistra in högerklicka 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 inklistrade texten.
- Vi-kommandoläge:
<p>
PasteBefore
Klistra in Urklipp före markören och flytta markören till slutet av den inklistrade 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 den aktuella indatan.
- 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-ring.
Funktionen är obundna.
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 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 (blanksteg avgrä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,Space>
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 det anropas flera gånger itererar det 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>
- Vi-infogningsläge:
<LeftArrow>
- Vi-kommandoläge:
<LeftArrow>
,<Backspace>
,<h>
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. Word grä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>
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, går 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>
- Vi-infogningsläge:
<RightArrow>
- Vi-kommandoläge:
<RightArrow>
,<Space>
,<l>
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. Word gränser definieras av en konfigurerbar uppsättning tecken.
- Emacs:
<Alt+f>
,<Escape,f>
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. Word gränser definieras av en konfigurerbar uppsättning tecken.
- Cmd:
<Ctrl+RightArrow>
- Vi-infogningsläge:
<Ctrl+RightArrow>
- Vi-kommandoläge:
<Ctrl+RightArrow>
NextWordEnd
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 en konfigurerbar uppsättning tecken.
- Vi-kommandoläge:
<e>
Föregående rad
Flytta markören till föregående rad.
- Funktionen är obundet.
ShellBackwardWord
Flytta markören tillbaka till början av det aktuella ordet, eller om mellan ord, början av föregående ord. Word gränser definieras av PowerShell-token.
- Funktionen är obundet.
ShellForwardWord
Flytta markören framåt till början av nästa ord. Word gränser definieras av PowerShell-token.
- Funktionen är obundet.
ShellNextWord
Flytta markören framåt till slutet av det aktuella ordet, eller om mellan ord, till slutet av nästa ord. Word gränser definieras av PowerShell-token.
- Funktionen är obundet.
ViBackwardWord
Flytta markören tillbaka till början av det aktuella ordet, eller om mellan ord, början av föregående ord. Word gränser definieras av en konfigurerbar uppsättning tecken.
- Vi-kommandoläge:
<b>
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 ord avgränsare.
- Funktionen är obundet.
ViGotoBrace
Liknar GotoBrace, men är teckenbaserat i stället för tokenbaserat.
- 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. Word gränser definieras av en konfigurerbar uppsättning tecken.
- Vi-kommandoläge:
<w>
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 sökning genom historik.
- Cmd:
<Ctrl+s>
- Emacs:
<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 de aktuella indata med nästa objekt från PSReadLine-historiken som matchar tecknen mellan start och indata och markören.
- Cmd:
<Shift+F8>
NextHistory
Ersätt de aktuella indata 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>
ViSearchHistoryBackward
Frågar efter en söksträng och initierar sökning på AcceptLine.
- Vi-infogningsläge:
<Ctrl+r>
- Vi-kommandoläge:
</>
,<Ctrl+r>
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>
MenyKomplettera
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+Space>
- Emacs:
<Ctrl+Space>
PossibleCompletions
Visa listan över möjliga slutföranden.
- Emacs:
<Alt+=>
- Vi-infogningsläge:
<Ctrl+Space>
- Vi-kommandoläge:
<Ctrl+Space>
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>
Diverse funktioner
CaptureScreen
Starta interaktiv skärmdump – uppåt-/nedpilar väljer linjer, 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.
- 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, t.ex. ändra 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 visningen en rad.
- Cmd:
<Ctrl+PageUp>
- Emacs:
<Ctrl+PageUp>
SelfInsert
Infoga nyckeln.
- Funktionen är obundet.
ShowKeyBindings
Visa alla bundna nycklar.
- Cmd:
<Ctrl+Alt+?>
- Emacs:
<Ctrl+Alt+?>
- Vi-infogningsläge:
<Ctrl+Alt+?>
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 obundet.
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 obundet.
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>
SelectForwardChar
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 obundna.
Ange markering
Markera markörens aktuella plats för användning i ett efterföljande redigeringskommando.
- Emacs:
<Ctrl+
>'
Search funktioner
CharacterSearch
Läs ett tecken och sök framåt efter 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 den n:e 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 den n:e 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 reda på det framöver 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 reda på 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 reda på 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 reda på det framöver 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ökningen på AcceptLine.
- Vi-infogningsläge:
<Ctrl+s>
- Vi-kommandoläge:
<?>
,<Ctrl+s>
Bindningar för anpassad nyckel
PSReadLine stöder anpassade nyckelbindningar med cmdleten Set-PSReadLineKeyHandler
. De flesta anpassade nyckelbindningar anropar en av ovanstående funktioner, till exempel
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Du kan binda en ScriptBlock till en nyckel. ScriptBlock kan göra i stort sett vad du vill. Några användbara exempel är
- redigera kommandoraden
- öppna ett nytt fönster (t.ex. hjälp)
- ändra kataloger utan att ändra kommandoraden
ScriptBlock tar emot två argument:
$key
- Ett [ConsoleKeyInfo] -objekt som är nyckeln som utlöste den anpassade bindningen. Om du binder samma ScriptBlock till flera nycklar och behöver utföra olika åtgärder beroende på nyckeln kan du kontrollera $key. Många anpassade bindningar ignorerar det här argumentet.$arg
- Ett godtyckligt argument. Oftast är detta ett heltalsargument som användaren skickar från nyckelbindningarna DigitArgument. Om din bindning inte accepterar argument är det rimligt att ignorera det här argumentet.
Låt oss ta en titt på ett exempel som lägger till en kommandorad i historiken utan att köra den. Detta är användbart när du inser att du har glömt att göra något, men inte vill ange kommandoraden som du redan har angett igen.
$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
Du kan se många fler exempel i filen SamplePSReadLineProfile.ps1
som är installerad i modulmappen PSReadLine.
De flesta nyckelbindningar använder vissa hjälpfunktioner för att redigera kommandoraden. Dessa API:er dokumenteras i nästa avsnitt.
API:er för stöd för anpassad nyckelbindning
Följande funktioner är offentliga i Microsoft.PowerShell.PSConsoleReadLine, men kan inte bindas direkt 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 killringen. 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ändarnas ö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 din bindning gör något mer avancerat med Ast.
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(bool includeBound, bool includeUnbound)
Den här funktionen används av Get-PSReadLineKeyHandler och är förmodligen inte användbar i en anpassad nyckelbindning.
Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()
Den här funktionen används av Get-PSReadLineOption och är förmodligen inte särskilt användbar i en anpassad nyckelbindning.
void GetSelectionState([ref] int start, [ref] int length)
Om det inte finns något val på kommandoraden returneras -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 huvudstartpunkten 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ärskilt användbar i en anpassad nyckelbindning.
void Replace(int start, int length, string replacement)
Ersätt en del av 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 använder DigitArgument. Ett typiskt anrop ser ut så här
[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
[ref]$numericArg, 1)
Anteckning
Kommandohistorik
PSReadLine har en historikfil som innehåller alla kommandon och data som du har angett från kommandoraden. Detta kan innehålla känsliga data, inklusive lösenord. Om du till exempel använder cmdleten ConvertTo-SecureString
loggas lösenordet i historikfilen som oformaterad text. Historikfilerna är en fil med namnet $($host.Name)_history.txt
. På Windows-system lagras historikfilen på $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine
. I icke-Windows-system lagras historikfilerna på $env:XDG_DATA_HOME/powershell/PSReadLine
eller $env:HOME/.local/share/powershell/PSReadLine
.
Feedback & bidra till PSReadLine
Skicka gärna en pull-begäran eller skicka feedback på GitHub-sidan.
Se även
PSReadLine påverkas starkt av GNU-läslinjebiblioteket .