about_PSReadLine
Korte beschrijving
PSReadLine biedt een verbeterde bewerkingservaring voor opdrachtregels in de PowerShell-console.
Lange beschrijving
PSReadLine 2.0 biedt een krachtige opdrachtregelbewerkingservaring voor de PowerShell-console. Het biedt:
- Syntaxiskleuring van de opdrachtregel
- Een visuele indicatie van syntaxisfouten
- Een betere ervaring met meerdere regels (zowel bewerken als geschiedenis)
- Aanpasbare sleutelbindingen
- Cmd- en Emacs-modi
- Veel configuratieopties
- Voltooiing van Bash-stijl (optioneel in cmd-modus, standaard in emacs-modus)
- Emacs yank/kill-ring
- PowerShell-token op basis van woordverplaatsing en -verwijdering
PSReadLine vereist PowerShell 3.0 of hoger. PSReadLine werkt met de standaardconsolehost, Visual Studio Code en Window Terminal. Het werkt niet in PowerShell ISE.
PSReadLine 2.1.0 wordt geleverd met PowerShell 7.2 en wordt ondersteund in alle ondersteunde versies van PowerShell. Het is beschikbaar om te installeren vanuit de PowerShell Gallery. Voer de volgende opdracht uit om PSReadLine 2.1.0 te installeren in een ondersteunde versie van PowerShell.
Install-Module -Name PSReadLine -RequiredVersion 2.1.0
Notitie
Vanaf PowerShell 7.0 slaat PowerShell PSReadLine automatisch laden in Windows over als er een schermlezerprogramma wordt gedetecteerd. Momenteel werkt PSReadLine niet goed met de schermlezers. De standaardweergave en -opmaak van PowerShell 7.0 in Windows werken goed. U kunt de module indien nodig handmatig laden.
De volgende functies zijn beschikbaar in de klasse Microsoft.PowerShell.PSConsoleReadLine.
Basisbewerkingsfuncties
Aborteren
Huidige actie afbreken, bijvoorbeeld: incrementeel zoeken in geschiedenis.
- Emacs:
<Ctrl+g>
AcceptAndGetNext
Probeer de huidige invoer uit te voeren. Als het kan worden uitgevoerd (zoals AcceptLine), kunt u het volgende item uit de geschiedenis intrekken wanneer ReadLine de volgende keer wordt aangeroepen.
- Emacs:
<Ctrl+o>
AcceptLine
Probeer de huidige invoer uit te voeren. Als de huidige invoer onvolledig is (bijvoorbeeld als er een haakje sluiten, haakje of aanhalingsteken ontbreekt), wordt de vervolgprompt weergegeven op de volgende regel en wacht PSReadLine tot de sleutels de huidige invoer bewerken.
- Cmd:
<Enter>
- Emacs:
<Enter>
- Vi-invoegmodus:
<Enter>
AddLine
De vervolgprompt wordt weergegeven op de volgende regel en PSReadLine wacht totdat de huidige invoer is bewerkt. Dit is handig om invoer met meerdere regels in te voeren als één opdracht, zelfs wanneer één regel de invoer zelf voltooit.
- Cmd:
<Shift+Enter>
- Emacs:
<Shift+Enter>
- Vi-invoegmodus:
<Shift+Enter>
- Vi-opdrachtmodus:
<Shift+Enter>
AchterwaartseDeleteChar
Verwijder het teken vóór de cursor.
- Cmd:
<Backspace>
,<Ctrl+h>
- Emacs:
<Backspace>
,<Ctrl+Backspace>
,<Ctrl+h>
- Vi-invoegmodus:
<Backspace>
- Vi-opdrachtmodus:
<X>
,<d,h>
AchterwaartsedeleteLine
Net als AchterwaartsEKillLine verwijdert u tekst van het punt naar het begin van de regel, maar wordt de verwijderde tekst niet in de kill-ring geplaatst.
- Cmd:
<Ctrl+Home>
- Vi-invoegmodus:
<Ctrl+u>
,<Ctrl+Home>
- Vi-opdrachtmodus:
<Ctrl+u>
,<Ctrl+Home>
,<d,0>
AchterwaartseDeleteWord
Hiermee verwijdert u het vorige woord.
- Vi-opdrachtmodus:
<Ctrl+w>
,<d,b>
Achterwaartse KillLine
Wis de invoer vanaf het begin van de invoer naar de cursor. De gewiste tekst wordt in de kill-ring geplaatst.
- Emacs:
<Ctrl+u>
,<Ctrl+x,Backspace>
AchterwaartsEKillWord
Wis de invoer vanaf het begin van het huidige woord naar de cursor. Als de cursor tussen woorden staat, wordt de invoer vanaf het begin van het vorige woord naar de cursor gewist. De gewiste tekst wordt in de kill-ring geplaatst.
- Cmd:
<Ctrl+Backspace>
,<Ctrl+w>
- Emacs:
<Alt+Backspace>
,<Escape,Backspace>
- Vi-invoegmodus:
<Ctrl+Backspace>
- Vi-opdrachtmodus:
<Ctrl+Backspace>
CancelLine
Annuleer de huidige invoer, laat de invoer op het scherm staan, maar keert terug naar de host, zodat de prompt opnieuw wordt geëvalueerd.
- Vi-invoegmodus:
<Ctrl+c>
- Vi-opdrachtmodus:
<Ctrl+c>
Kopiëren
Kopieer de geselecteerde regio naar het systeem klembord. Als er geen regio is geselecteerd, kopieert u de hele regel.
- Cmd:
<Ctrl+C>
CopyOrCancelLine
Als tekst is geselecteerd, kopieert u naar het klembord, anders annuleert u de regel.
- Cmd:
<Ctrl+c>
- Emacs:
<Ctrl+c>
Snijden
Geselecteerde regio verwijderen waarin verwijderde tekst op het systeem klembord wordt geplaatst.
- Cmd:
<Ctrl+x>
DeleteChar
Verwijder het teken onder de cursor.
- Cmd:
<Delete>
- Emacs:
<Delete>
- Vi-invoegmodus:
<Delete>
- Vi-opdrachtmodus:
<Delete>
,<x>
,<d,l>
,<d,Spacebar>
DeleteCharOrExit
Verwijder het teken onder de cursor of sluit het proces af als de regel leeg is.
- Emacs:
<Ctrl+d>
DeleteEndOfBuffer
Wordt verwijderd aan het einde van de buffer met meerdere regels.
- Vi-opdrachtmodus:
<d,G>
DeleteEndOfWord
Verwijderen tot het einde van het woord.
- Vi-opdrachtmodus:
<d,e>
DeleteLine
Hiermee verwijdert u de huidige logische lijn van een buffer met meerdere regels en schakelt u ongedaan maken in.
- Vi-opdrachtmodus:
<d,d>
,<d,_>
DeletePreviousLines
Hiermee verwijdert u de eerder aangevraagde logische lijnen en de huidige logische lijn in een buffer met meerdere regels.
- Vi-opdrachtmodus:
<d,k>
DeleteRelativeLines
Hiermee verwijdert u van het begin van de buffer naar de huidige logische lijn in een buffer met meerdere regels.
Net als de meeste Vi-opdrachten kan de opdracht <d,g,g>
worden voorafgegaan door een numeriek argument dat een absoluut regelnummer aangeeft, dat samen met het huidige regelnummer een bereik van regels vormt dat moet worden verwijderd.
Als dit niet is opgegeven, wordt het numerieke argument standaard ingesteld op 1, wat verwijst naar de eerste logische regel in een buffer met meerdere regels.
Het werkelijke aantal regels dat uit de multiline moet worden verwijderd, wordt berekend als het verschil tussen het huidige logische regelnummer en het opgegeven numerieke argument, wat dus negatief kan zijn. Vandaar dat het relatieve deel van de methodenaam.
- Vi-opdrachtmodus:
<d,g,g>
NextLines verwijderen
Hiermee verwijdert u de huidige logische lijn en de volgende aangevraagde logische lijnen in een buffer met meerdere regels.
- Vi-opdrachtmodus:
<d,j>
DeleteLineToFirstChar
Hiermee verwijdert u tekst van de cursor naar het eerste niet-lege teken van de regel.
- Vi-opdrachtmodus:
<d,^>
DeleteToEnd
Verwijderen tot het einde van de regel.
- Vi-opdrachtmodus:
<D>
,<d,$>
DeleteWord
Het volgende woord verwijderen.
- Vi-opdrachtmodus:
<d,w>
ForwardDeleteLine
Net als ForwardKillLine verwijdert u tekst van het punt naar het einde van de regel, maar wordt de verwijderde tekst niet in de kill-ring geplaatst.
- Cmd:
<Ctrl+End>
- Vi-invoegmodus:
<Ctrl+End>
- Vi-opdrachtmodus:
<Ctrl+End>
InsertLineAbove
Er wordt een nieuwe lege regel gemaakt boven de huidige regel, ongeacht waar de cursor zich op de huidige regel bevindt. De cursor wordt verplaatst naar het begin van de nieuwe regel.
- Cmd:
<Ctrl+Enter>
InsertLineBelow
Er wordt een nieuwe lege regel gemaakt onder de huidige regel, ongeacht waar de cursor zich op de huidige regel bevindt. De cursor wordt verplaatst naar het begin van de nieuwe regel.
- Cmd:
<Shift+Ctrl+Enter>
InvertCase
Zet het hoofdlettergebruik van het huidige teken om en ga naar de volgende teken.
- Vi-opdrachtmodus:
<~>
KillLine
Wis de invoer van de cursor tot het einde van de invoer. De gewiste tekst wordt in de kill-ring geplaatst.
- Emacs:
<Ctrl+k>
KillRegion
De tekst tussen de cursor en de markering beëindigen.
- Functie is niet afhankelijk.
KillWord
Wis de invoer van de cursor tot het einde van het huidige woord. Als de cursor zich tussen woorden bevindt, wordt de invoer gewist van de cursor naar het einde van het volgende woord. De gewiste tekst wordt in de kill-ring geplaatst.
- Cmd:
<Alt+d>
,<Ctrl+Delete>
- Emacs:
<Alt+d>
,<Escape,d>
- Vi-invoegmodus:
<Ctrl+Delete>
- Vi-opdrachtmodus:
<Ctrl+Delete>
Plakken
Plak tekst van het klembord van het systeem.
- Cmd:
<Ctrl+v>
,<Shift+Insert>
- Vi-invoegmodus:
<Ctrl+v>
- Vi-opdrachtmodus:
<Ctrl+v>
Belangrijk
Wanneer u de functie Plakken gebruikt, wordt de volledige inhoud van de klembordbuffer geplakt in de invoerbuffer van PSReadLine. De invoerbuffer wordt vervolgens doorgegeven aan de PowerShell-parser. Invoer die is geplakt met behulp van de met de rechtermuisknop op plakmethode wordt gekopieerd naar de invoerbuffer één teken tegelijk. De invoerbuffer wordt doorgegeven aan de parser wanneer een nieuw regelteken wordt gekopieerd. Daarom wordt de invoer één regel tegelijk geparseerd. Het verschil tussen plakmethoden resulteert in een ander uitvoeringsgedrag.
Plakkenna
Plak het klembord na de cursor en verplaats de cursor naar het einde van de geplakte tekst.
- Vi-opdrachtmodus:
<p>
PasteBefore
Plak het klembord vóór de cursor en verplaats de cursor naar het einde van de geplakte tekst.
- Vi-opdrachtmodus:
<P>
PrependAndAccept
Prepend a '#' en accepteer de regel.
- Vi-opdrachtmodus:
<#>
Opnieuw
Ongedaan maken.
- Cmd:
<Ctrl+y>
- Vi-invoegmodus:
<Ctrl+y>
- Vi-opdrachtmodus:
<Ctrl+y>
RepeatLastCommand
Herhaal de laatste tekstwijziging.
- Vi-opdrachtmodus:
<.>
RevertLine
Hiermee wordt alle invoer teruggezet naar de huidige invoer.
- Cmd:
<Escape>
- Emacs:
<Alt+r>
,<Escape,r>
ShellBackwardKillWord
Wis de invoer vanaf het begin van het huidige woord naar de cursor. Als de cursor tussen woorden staat, wordt de invoer vanaf het begin van het vorige woord naar de cursor gewist. De gewiste tekst wordt in de kill-ring geplaatst.
Functie is niet afhankelijk.
ShellKillWord
Wis de invoer van de cursor tot het einde van het huidige woord. Als de cursor zich tussen woorden bevindt, wordt de invoer gewist van de cursor naar het einde van het volgende woord. De gewiste tekst wordt in de kill-ring geplaatst.
Functie is niet afhankelijk.
SwapCharacters
Verwissel het huidige teken en het teken ervoor.
- Emacs:
<Ctrl+t>
- Vi-invoegmodus:
<Ctrl+t>
- Vi-opdrachtmodus:
<Ctrl+t>
Ongedaan maken
Een vorige bewerking ongedaan maken.
- Cmd:
<Ctrl+z>
- Emacs:
<Ctrl+_>
,<Ctrl+x,Ctrl+u>
- Vi-invoegmodus:
<Ctrl+z>
- Vi-opdrachtmodus:
<Ctrl+z>
,<u>
Ongedaan maken
Alle vorige bewerkingen voor regel ongedaan maken.
- Vi-opdrachtmodus:
<U>
UnixWordRubout
Wis de invoer vanaf het begin van het huidige woord naar de cursor. Als de cursor tussen woorden staat, wordt de invoer vanaf het begin van het vorige woord naar de cursor gewist. De gewiste tekst wordt in de kill-ring geplaatst.
- Emacs:
<Ctrl+w>
ValidateAndAcceptLine
Probeer de huidige invoer uit te voeren. Als de huidige invoer onvolledig is (bijvoorbeeld als er een haakje sluiten, haakje of aanhalingsteken ontbreekt), wordt de vervolgprompt weergegeven op de volgende regel en wacht PSReadLine tot de sleutels de huidige invoer bewerken.
- Emacs:
<Ctrl+m>
ViAcceptLine
Accepteer de lijn en schakel over naar de modus Invoegen.
- Vi-opdrachtmodus:
<Enter>
ViAcceptLineOrExit
Net als DeleteCharOrExit in de emacs-modus, maar de regel wordt geaccepteerd in plaats van een teken te verwijderen.
- Vi-invoegmodus:
<Ctrl+d>
- Vi-opdrachtmodus:
<Ctrl+d>
ViAppendLine
Er wordt een nieuwe regel ingevoegd onder de huidige regel.
- Vi-opdrachtmodus:
<o>
ViBackwardDeleteGlob
Hiermee verwijdert u het vorige woord, waarbij alleen witruimte wordt gebruikt als scheidingsteken voor woorden.
- Vi-opdrachtmodus:
<d,B>
ViBackwardGlob
Hiermee verplaatst u de cursor terug naar het begin van het vorige woord, waarbij u alleen witruimte als scheidingstekens gebruikt.
- Vi-opdrachtmodus:
<B>
ViDeleteBrace
Zoek de overeenkomende accolade, haakje of vierkante haak en verwijder alle inhoud binnen, inclusief de accolade.
- Vi-opdrachtmodus:
<d,%>
ViDeleteEndOfGlob
Verwijderen tot het einde van het woord.
- Vi-opdrachtmodus:
<d,E>
ViDeleteGlob
Verwijder de volgende glob (witruimte gescheiden woord).
- Vi-opdrachtmodus:
<d,W>
ViDeleteToBeforeChar
Wordt verwijderd tot het opgegeven teken.
- Vi-opdrachtmodus:
<d,t>
ViDeleteToBeforeCharBackward
Wordt verwijderd tot het opgegeven teken.
- Vi-opdrachtmodus:
<d,T>
ViDeleteToChar
Wordt verwijderd tot het opgegeven teken.
- Vi-opdrachtmodus:
<d,f>
ViDeleteToCharBackward
Hiermee verwijdert u achteruit totdat het opgegeven teken is opgegeven.
- Vi-opdrachtmodus:
<d,F>
ViInsertAtBegining
Schakel over naar de invoegmodus en plaats de cursor aan het begin van de regel.
- Vi-opdrachtmodus:
<I>
ViInsertAtEnd
Schakel over naar de modus Invoegen en plaats de cursor aan het einde van de regel.
- Vi-opdrachtmodus:
<A>
ViInsertLine
Er wordt een nieuwe regel ingevoegd boven de huidige regel.
- Vi-opdrachtmodus:
<O>
ViInsertWithAppend
Toevoegen vanaf de huidige regelpositie.
- Vi-opdrachtmodus:
<a>
ViInsertWithDelete
Verwijder het huidige teken en schakel over naar de modus Invoegen.
- Vi-opdrachtmodus:
<s>
ViJoinLines
Hiermee worden de huidige regel en de volgende regel samengevoegd.
- Vi-opdrachtmodus:
<J>
ViReplaceLine
Wis de hele opdrachtregel.
- Vi-opdrachtmodus:
<S>
,<c,c>
ViReplaceToBeforeChar
Vervangt tot het gegeven teken.
- Vi-opdrachtmodus:
<c,t>
ViReplaceToBeforeCharBackward
Vervangt tot het gegeven teken.
- Vi-opdrachtmodus:
<c,T>
ViReplaceToChar
Wordt verwijderd tot het opgegeven teken.
- Vi-opdrachtmodus:
<c,f>
ViReplaceToCharBackward
Vervangt tot het gegeven teken.
- Vi-opdrachtmodus:
<c,F>
ViYankBeginningOfLine
Yank vanaf het begin van de buffer naar de cursor.
- Vi-opdrachtmodus:
<y,0>
ViYankEndOfGlob
Yank van de cursor naar het einde van de WORD(s).
- Vi-opdrachtmodus:
<y,E>
ViYankEndOfWord
Yank van de cursor tot het einde van het woord(en).
- Vi-opdrachtmodus:
<y,e>
ViYankLeft
Yank character(s) links van de cursor.
- Vi-opdrachtmodus:
<y,h>
ViYankLine
Yank de hele buffer.
- Vi-opdrachtmodus:
<y,y>
ViYankNextGlob
Yank van cursor naar het begin van de volgende WORD(s).
- Vi-opdrachtmodus:
<y,W>
ViYankNextWord
Het woord(en) na de cursor verknakken.
- Vi-opdrachtmodus:
<y,w>
ViYankPercent
Yank naar/van overeenkomende accolade.
- Vi-opdrachtmodus:
<y,%>
ViYankPreviousGlob
Yank vanaf het begin van de WORD(s) naar cursor.
- Vi-opdrachtmodus:
<y,B>
ViYankPreviousWord
Geef het woord(en) voor de cursor een of meer woorden.
- Vi-opdrachtmodus:
<y,b>
ViYankRight
Yank karakter(s) onder en rechts van de cursor.
- Vi-opdrachtmodus:
<y,l>
,<y,Spacebar>
ViYankToEndOfLine
Yank van de cursor naar het einde van de buffer.
- Vi-opdrachtmodus:
<y,$>
ViYankToFirstChar
Yank van het eerste teken zonder witruimte naar de cursor.
- Vi-opdrachtmodus:
<y,^>
Rukken
Voeg de laatst vermoorde tekst toe aan de invoer.
- Emacs:
<Ctrl+y>
YankLastArg
Yank het laatste argument van de vorige geschiedenisregel. Met een argument gedraagt de eerste keer dat het wordt aangeroepen, zich net als YankNthArg. Als deze meerdere keren wordt aangeroepen, wordt in plaats daarvan de geschiedenis herhaald en wordt de richting ingesteld (negatief keert de richting om.)
- Cmd:
<Alt+.>
- Emacs:
<Alt+.>
,<Alt+_>
,<Escape,.>
,<Escape,_>
YankNthArg
Yank het eerste argument (na de opdracht) van de vorige geschiedenisregel. Met een argument kunt u het nde argument (beginnend vanaf 0), als het argument negatief is, beginnen met het laatste argument.
- Emacs:
<Ctrl+Alt+y>
,<Escape,Ctrl+y>
YankPop
Als de vorige bewerking Yank of YankPop was, vervangt u de eerder ge yankte tekst door de volgende vermoorde tekst uit de kill-ring.
- Emacs:
<Alt+y>
,<Escape,y>
Functies voor cursorverplaatsing
Achterwaartsechar
Verplaats de cursor één teken naar links. Hierdoor kan de cursor naar de vorige regel met invoer met meerdere regels worden verplaatst.
- Cmd:
<LeftArrow>
- Emacs:
<LeftArrow>
,<Ctrl+b>
- Vi-invoegmodus:
<LeftArrow>
- Vi-opdrachtmodus:
<LeftArrow>
,<Backspace>
,<h>
Achterwaartse woord
Verplaats de cursor terug naar het begin van het huidige woord of tussen woorden, het begin van het vorige woord. Woordgrenzen worden gedefinieerd door een configureerbare set tekens.
- Cmd:
<Ctrl+LeftArrow>
- Emacs:
<Alt+b>
,<Escape,b>
- Vi-invoegmodus:
<Ctrl+LeftArrow>
- Vi-opdrachtmodus:
<Ctrl+LeftArrow>
De tekens die woordgrenzen definiëren, worden geconfigureerd in de eigenschap WordDelimiters van het object PSConsoleReadLineOptions. Zie Get-PSReadLineOption- en Set-PSReadLineOptionom de eigenschap WordDelimiters weer te geven of te wijzigen.
BeginningOfLine
Als de invoer meerdere regels heeft, gaat u naar het begin van de huidige regel of als deze al aan het begin van de regel staat, naar het begin van de invoer. Als de invoer één regel heeft, gaat u naar het begin van de invoer.
- Cmd:
<Home>
- Emacs:
<Home>
,<Ctrl+a>
- Vi-invoegmodus:
<Home>
- Vi-opdrachtmodus:
<Home>
EndOfLine
Als de invoer meerdere regels heeft, gaat u naar het einde van de huidige regel of als deze al aan het einde van de regel staat, naar het einde van de invoer. Als de invoer één regel heeft, gaat u naar het einde van de invoer.
- Cmd:
<End>
- Emacs:
<End>
,<Ctrl+e>
- Vi-invoegmodus:
<End>
ForwardChar
De cursor één teken naar rechts verplaatsen. Hierdoor wordt de cursor mogelijk verplaatst naar de volgende regel met invoer met meerdere regels.
- Cmd:
<RightArrow>
- Emacs:
<RightArrow>
,<Ctrl+f>
- Vi-invoegmodus:
<RightArrow>
- Vi-opdrachtmodus:
<RightArrow>
,<Space>
,<l>
ForwardWord
Verplaats de cursor naar het einde van het huidige woord, of tussen woorden, naar het einde van het volgende woord. Woordgrenzen worden gedefinieerd door een configureerbare set tekens.
- Emacs:
<Alt+f>
,<Escape,f>
De tekens die woordgrenzen definiëren, worden geconfigureerd in de eigenschap WordDelimiters van het object PSConsoleReadLineOptions. Zie Get-PSReadLineOption- en Set-PSReadLineOptionom de eigenschap WordDelimiters weer te geven of te wijzigen.
GotoBrace
Ga naar de overeenkomende accolade, haakje of vierkante haak.
- Cmd:
<Ctrl+]>
- Vi-invoegmodus:
<Ctrl+]>
- Vi-opdrachtmodus:
<Ctrl+]>
GotoColumn
Naar de kolom gaan die wordt aangegeven met arg.
- Vi-opdrachtmodus:
<|>
GotoFirstNonBlankOfLine
Verplaats de cursor naar het eerste niet-lege teken in de regel.
- Vi-opdrachtmodus:
<^>
,<_>
MoveToEndOfLine
Verplaats de cursor naar het einde van de invoer.
- Vi-opdrachtmodus:
<End>
,<$>
NextLine
Verplaats de cursor naar de volgende regel.
- Functie is niet afhankelijk.
NextWord
Verplaats de cursor naar het begin van het volgende woord. Woordgrenzen worden gedefinieerd door een configureerbare set tekens.
- Cmd:
<Ctrl+RightArrow>
- Vi-invoegmodus:
<Ctrl+RightArrow>
- Vi-opdrachtmodus:
<Ctrl+RightArrow>
De tekens die woordgrenzen definiëren, worden geconfigureerd in de eigenschap WordDelimiters van het object PSConsoleReadLineOptions. Zie Get-PSReadLineOption- en Set-PSReadLineOptionom de eigenschap WordDelimiters weer te geven of te wijzigen.
NextWordEnd
Verplaats de cursor naar het einde van het huidige woord, of tussen woorden, naar het einde van het volgende woord. Woordgrenzen worden gedefinieerd door een configureerbare set tekens.
- Vi-opdrachtmodus:
<e>
De tekens die woordgrenzen definiëren, worden geconfigureerd in de eigenschap WordDelimiters van het object PSConsoleReadLineOptions. Zie Get-PSReadLineOption- en Set-PSReadLineOptionom de eigenschap WordDelimiters weer te geven of te wijzigen.
PreviousLine
Verplaats de cursor naar de vorige regel.
- Functie is niet afhankelijk.
ShellBackwardWord
Verplaats de cursor terug naar het begin van het huidige woord of tussen woorden, het begin van het vorige woord. Word-grenzen worden gedefinieerd door PowerShell-tokens.
- Functie is niet afhankelijk.
ShellForwardWord
Verplaats de cursor naar het begin van het volgende woord. Word-grenzen worden gedefinieerd door PowerShell-tokens.
- Functie is niet afhankelijk.
ShellNextWord
Verplaats de cursor naar het einde van het huidige woord, of tussen woorden, naar het einde van het volgende woord. Word-grenzen worden gedefinieerd door PowerShell-tokens.
- Functie is niet afhankelijk.
ViBackwardChar
Verplaats de cursor één teken naar links in de bewerkingsmodus Vi. Hierdoor kan de cursor naar de vorige regel met invoer met meerdere regels worden verplaatst.
- Vi-invoegmodus:
<LeftArrow>
- Vi-opdrachtmodus:
<LeftArrow>
,<Backspace>
,<h>
ViBackwardWord
Verplaats de cursor terug naar het begin van het huidige woord of tussen woorden, het begin van het vorige woord. Woordgrenzen worden gedefinieerd door een configureerbare set tekens.
- Vi-opdrachtmodus:
<b>
De tekens die woordgrenzen definiëren, worden geconfigureerd in de eigenschap WordDelimiters van het object PSConsoleReadLineOptions. Zie Get-PSReadLineOption- en Set-PSReadLineOptionom de eigenschap WordDelimiters weer te geven of te wijzigen.
ViForwardChar
Verplaats de cursor één teken naar rechts in de bewerkingsmodus Vi. Hierdoor wordt de cursor mogelijk verplaatst naar de volgende regel met invoer met meerdere regels.
- Vi-invoegmodus:
<RightArrow>
- Vi-opdrachtmodus:
<RightArrow>
,<Spacebar>
,<l>
ViEndOfGlob
Hiermee verplaatst u de cursor naar het einde van het woord, waarbij u alleen witruimte als scheidingstekens gebruikt.
- Vi-opdrachtmodus:
<E>
ViEndOfPreviousGlob
Naar het einde van het vorige woord gaan, waarbij alleen witruimte wordt gebruikt als scheidingsteken voor woorden.
- Functie is niet afhankelijk.
ViGotoBrace
Vergelijkbaar met GotoBrace, maar is gebaseerd op tekens in plaats van op tokens.
- Vi-opdrachtmodus:
<%>
ViNextGlob
Hiermee gaat u naar het volgende woord, waarbij alleen witruimte wordt gebruikt als scheidingsteken voor woorden.
- Vi-opdrachtmodus:
<W>
ViNextWord
Verplaats de cursor naar het begin van het volgende woord. Woordgrenzen worden gedefinieerd door een configureerbare set tekens.
- Vi-opdrachtmodus:
<w>
De tekens die woordgrenzen definiëren, worden geconfigureerd in de eigenschap WordDelimiters van het object PSConsoleReadLineOptions. Zie Get-PSReadLineOption- en Set-PSReadLineOptionom de eigenschap WordDelimiters weer te geven of te wijzigen.
Geschiedenisfuncties
BeginningOfHistory
Naar het eerste item in de geschiedenis gaan.
- Emacs:
<Alt+<>
ClearHistory
Wist de geschiedenis in PSReadLine. Dit heeft geen invloed op de Geschiedenis van PowerShell.
- Cmd:
<Alt+F7>
EndOfHistory
Naar het laatste item (de huidige invoer) in de geschiedenis gaan.
- Emacs:
<Alt+>>
ForwardSearchHistory
Voer stapsgewijze zoekopdrachten uit via de geschiedenis.
- Cmd:
<Ctrl+s>
- Emacs:
<Ctrl+s>
HistorySearchBackward
Vervang de huidige invoer door het vorige item uit de PSReadLine-geschiedenis die overeenkomt met de tekens tussen het begin en de invoer en de cursor.
- Cmd:
<F8>
HistorySearchForward
Vervang de huidige invoer door het 'volgende' item uit de PSReadLine-geschiedenis die overeenkomt met de tekens tussen het begin en de invoer en de cursor.
- Cmd:
<Shift+F8>
NextHistory
Vervang de huidige invoer door het 'volgende' item uit de geschiedenis van PSReadLine.
- Cmd:
<DownArrow>
- Emacs:
<DownArrow>
,<Ctrl+n>
- Vi-invoegmodus:
<DownArrow>
- Vi-opdrachtmodus:
<DownArrow>
,<j>
,<+>
PreviousHistory
Vervang de huidige invoer door het vorige item uit de geschiedenis van PSReadLine.
- Cmd:
<UpArrow>
- Emacs:
<UpArrow>
,<Ctrl+p>
- Vi-invoegmodus:
<UpArrow>
- Vi-opdrachtmodus:
<UpArrow>
,<k>
,<->
ReverseSearchHistory
Voer een incrementele achterwaartse zoekopdracht uit door de geschiedenis.
- Cmd:
<Ctrl+r>
- Emacs:
<Ctrl+r>
ViSearchHistoryBackward
Vraagt om een zoekreeks en start de zoekopdracht op AcceptLine.
- Vi-invoegmodus:
<Ctrl+r>
- Vi-opdrachtmodus:
</>
,<Ctrl+r>
Voltooiingsfuncties
Compleet
Probeer de tekst rond de cursor te voltooien. Als er meerdere mogelijke voltooiingen zijn, wordt het langste ondubbelzinnige voorvoegsel gebruikt voor voltooiing. Als u de langste ondubbelzinnige voltooiing probeert te voltooien, wordt een lijst met mogelijke voltooiingen weergegeven.
- Emacs:
<Tab>
MenuComplete
Probeer de tekst rond de cursor te voltooien. Als er meerdere mogelijke voltooiingen zijn, wordt het langste ondubbelzinnige voorvoegsel gebruikt voor voltooiing. Als u de langste ondubbelzinnige voltooiing probeert te voltooien, wordt een lijst met mogelijke voltooiingen weergegeven.
- Cmd:
<Ctrl+@>
,<Ctrl+Spacebar>
- Emacs:
<Ctrl+Spacebar>
PossibleCompletions
De lijst met mogelijke voltooiingen weergeven.
- Emacs:
<Alt+=>
- Vi-invoegmodus:
<Ctrl+Spacebar>
- Vi-opdrachtmodus:
<Ctrl+Spacebar>
TabCompleteNext
Probeer de tekst rond de cursor te voltooien met de volgende beschikbare voltooiing.
- Cmd:
<Tab>
- Vi-opdrachtmodus:
<Tab>
TabCompletePrevious
Probeer de tekst rond de cursor te voltooien met de vorige beschikbare voltooiing.
- Cmd:
<Shift+Tab>
- Vi-opdrachtmodus:
<Shift+Tab>
ViTabCompleteNext
Hiermee wordt de huidige bewerkingsgroep, indien nodig, beëindigd en wordt TabCompleteNext aangeroepen.
- Vi-invoegmodus:
<Tab>
ViTabCompletePrevious
Hiermee wordt de huidige bewerkingsgroep, indien nodig, beëindigd en wordt TabCompletePrevious aangeroepen.
- Vi-invoegmodus:
<Shift+Tab>
Diverse functies
AcceptNextSuggestionWord
Accepteer het volgende woord van de inline of geselecteerde suggestie.
- Functie is niet afhankelijk.
Suggesties accepteren
Accepteer de huidige inline of geselecteerde suggestie.
- Functie is niet afhankelijk.
CaptureScreen
Interactieve schermopname starten - pijl-omhoog/pijl-omlaag selecteert regels, kopieert geselecteerde tekst naar klembord als tekst en HTML.
- Functie is niet afhankelijk.
ClearScreen
Wis het scherm en teken de huidige lijn boven aan het scherm.
- Cmd:
<Ctrl+l>
- Emacs:
<Ctrl+l>
- Vi-invoegmodus:
<Ctrl+l>
- Vi-opdrachtmodus:
<Ctrl+l>
DigitArgument
Start een nieuw cijferargument om door te geven aan andere functies. U kunt dit gebruiken als een vermenigvuldiger voor de volgende functie die wordt aangeroepen door een toetsdruk. Als u bijvoorbeeld op <Alt+1>
<Alt+0>
drukt, wordt het cijferargument waarde ingesteld op 10. Als u vervolgens op de toets #
drukt, worden 10 #
tekens (##########
) naar de invoerregel verzonden.
Op dezelfde manier kunt u dit gebruiken met andere bewerkingen, zoals <Delete>
of 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-opdrachtmodus:
<0>
,<1>
,<2>
,<3>
,<4>
,<5>
,<6>
,<7>
,<8>
,<9>
InvokePrompt
Hiermee wist u de huidige prompt en roept u de promptfunctie aan om de prompt opnieuw weer te geven. Handig voor aangepaste sleutelhandlers die de status wijzigen. Wijzig bijvoorbeeld de huidige map.
- Functie is niet afhankelijk.
ScrollDisplayDown
Schuif één scherm omlaag op de weergave.
- Cmd:
<PageDown>
- Emacs:
<PageDown>
ScrollDisplayDownLine
Schuif één regel omlaag op de weergave.
- Cmd:
<Ctrl+PageDown>
- Emacs:
<Ctrl+PageDown>
ScrollDisplayToCursor
Schuif door de weergave naar de cursor.
- Emacs:
<Ctrl+End>
ScrollDisplayTop
Schuif naar de bovenkant van het scherm.
- Emacs:
<Ctrl+Home>
ScrollDisplayUp
Schuif één scherm omhoog in het scherm.
- Cmd:
<PageUp>
- Emacs:
<PageUp>
ScrollDisplayUpLine
Schuif één regel omhoog in het scherm.
- Cmd:
<Ctrl+PageUp>
- Emacs:
<Ctrl+PageUp>
SelfInsert
Voeg de sleutel in.
- Functie is niet afhankelijk.
ShowKeyBindings
Alle afhankelijke sleutels weergeven.
- Cmd:
<Ctrl+Alt+?>
- Emacs:
<Ctrl+Alt+?>
- Vi-invoegmodus:
<Ctrl+Alt+?>
ViCommandMode
Schakel de huidige bedrijfsmodus van Vi-Insert naar Vi-Command.
- Vi-invoegmodus:
<Escape>
ViDigitArgumentInChord
Begin een nieuw cijferargument om door te geven aan andere functies in een van vi's akkoorden.
- Functie is niet afhankelijk.
ViEditVisually
Bewerk de opdrachtregel in een teksteditor die is opgegeven door $env:EDITOR of $env:VISUAL.
- Emacs:
<Ctrl+x,Ctrl+e>
- Vi-opdrachtmodus:
<v>
ViExit
Hiermee wordt de shell afgesloten.
- Functie is niet afhankelijk.
ViInsertMode
Schakel over naar de modus Invoegen.
- Vi-opdrachtmodus:
<i>
WhatIsKey
Lees een sleutel en vertel me waar de sleutel aan is gebonden.
- Cmd:
<Alt+?>
- Emacs:
<Alt+?>
Selectiefuncties
ExchangePointAndMark
De cursor wordt op de locatie van de markering geplaatst en de markering wordt verplaatst naar de locatie van de cursor.
- Emacs:
<Ctrl+x,Ctrl+x>
SelectAll
Selecteer de hele regel.
- Cmd:
<Ctrl+a>
SelectBackwardChar
Pas de huidige selectie aan om het vorige teken op te nemen.
- Cmd:
<Shift+LeftArrow>
- Emacs:
<Shift+LeftArrow>
SelectBackwardsLine
Pas de huidige selectie aan om de cursor op te nemen aan het begin van de regel.
- Cmd:
<Shift+Home>
- Emacs:
<Shift+Home>
SelectBackwardWord
Pas de huidige selectie aan om het vorige woord op te nemen.
- Cmd:
<Shift+Ctrl+LeftArrow>
- Emacs:
<Alt+B>
SelectForwardChar
Pas de huidige selectie aan om het volgende teken op te nemen.
- Cmd:
<Shift+RightArrow>
- Emacs:
<Shift+RightArrow>
SelectForwardWord
Pas de huidige selectie aan om het volgende woord op te nemen met ForwardWord.
- Emacs:
<Alt+F>
SelectLine
Pas de huidige selectie aan van de cursor tot het einde van de regel.
- Cmd:
<Shift+End>
- Emacs:
<Shift+End>
SelectNextWord
Pas de huidige selectie aan om het volgende woord op te nemen.
- Cmd:
<Shift+Ctrl+RightArrow>
SelectShellBackwardWord
Pas de huidige selectie aan om het vorige woord op te nemen met ShellBackwardWord.
- Functie is niet afhankelijk.
SelectShellForwardWord
Pas de huidige selectie aan om het volgende woord op te nemen met ShellForwardWord.
- Functie is niet afhankelijk.
SelectShellNextWord
Pas de huidige selectie aan om het volgende woord op te nemen met ShellNextWord.
- Functie is niet afhankelijk.
SetMark
Markeer de huidige locatie van de cursor voor gebruik in een volgende bewerkingsopdracht.
- Emacs:
<Ctrl+@>
Voorspellende IntelliSense-functies
Notitie
Voorspellende IntelliSense moet zijn ingeschakeld om deze functies te kunnen gebruiken.
AcceptNextWordSuggestion
Accepteert het volgende woord van de inlinesuggesties van Predictive IntelliSense. Deze functie kan worden gebonden aan Ctrl+F door de volgende opdracht uit te voeren.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
Suggesties accepteren
Accepteert de huidige inlinesuggestie van Predictive IntelliSense door op RightArrow te drukken wanneer de cursor zich aan het einde van de huidige regel bevindt.
Zoekfuncties
CharacterSearch
Lees een teken en zoek vooruit naar het volgende exemplaar van dat teken. Als er een argument is opgegeven, zoekt u vooruit (of achteruit indien negatief) naar de nde instantie.
- Cmd:
<F3>
- Emacs:
<Ctrl+]>
- Vi-invoegmodus:
<F3>
- Vi-opdrachtmodus:
<F3>
CharacterSearchBackward
Lees een teken en zoek terug naar het volgende exemplaar van dat teken. Als er een argument is opgegeven, zoekt u naar achteren (of vooruit indien negatief) voor de nde instantie.
- Cmd:
<Shift+F3>
- Emacs:
<Ctrl+Alt+]>
- Vi-invoegmodus:
<Shift+F3>
- Vi-opdrachtmodus:
<Shift+F3>
RepeatLastCharSearch
Herhaal de laatst opgenomen tekenzoekopdracht.
- Vi-opdrachtmodus:
<;>
RepeatLastCharSearchBackwards
Herhaal de laatst opgenomen tekenzoekopdracht, maar in omgekeerde richting.
- Vi-opdrachtmodus:
<,>
RepeatSearch
Herhaal de laatste zoekopdracht in dezelfde richting als voorheen.
- Vi-opdrachtmodus:
<n>
RepeatSearchBackward
Herhaal de laatste zoekopdracht in dezelfde richting als voorheen.
- Vi-opdrachtmodus:
<N>
SearchChar
Lees het volgende teken en zoek het vervolgens, vooruit en vervolgens een teken terug. Dit is voor 't'-functionaliteit.
- Vi-opdrachtmodus:
<f>
SearchCharBackward
Lees het volgende teken en zoek het vervolgens terug, achteruit en vervolgens een teken terug. Dit is voor T-functionaliteit.
- Vi-opdrachtmodus:
<F>
SearchCharBackwardWithBackoff
Lees het volgende teken en zoek het vervolgens terug, achteruit en vervolgens een teken terug. Dit is voor T-functionaliteit.
- Vi-opdrachtmodus:
<T>
SearchCharWithBackoff
Lees het volgende teken en zoek het vervolgens, vooruit en vervolgens een teken terug. Dit is voor 't'-functionaliteit.
- Vi-opdrachtmodus:
<t>
SearchForward
Vraagt om een zoekreeks en start de zoekopdracht op AcceptLine.
- Vi-invoegmodus:
<Ctrl+s>
- Vi-opdrachtmodus:
<?>
,<Ctrl+s>
Aangepaste sleutelbindingen
PSReadLine ondersteunt aangepaste sleutelbindingen met behulp van de cmdlet Set-PSReadLineKeyHandler
. De meeste aangepaste sleutelbindingen roepen een van de bovenstaande functies aan, bijvoorbeeld
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
U kunt een ScriptBlock aan een sleutel binden. De ScriptBlock kan vrijwel alles doen wat u wilt. Enkele nuttige voorbeelden zijn
- de opdrachtregel bewerken
- een nieuw venster openen (bijvoorbeeld Help)
- mappen wijzigen zonder de opdrachtregel te wijzigen
ScriptBlock ontvangt twee argumenten:
$key
- Een [ConsoleKeyInfo] object dat de sleutel is die de aangepaste binding heeft geactiveerd. Als u hetzelfde ScriptBlock aan meerdere sleutels koppelt en verschillende acties moet uitvoeren, afhankelijk van de sleutel, kunt u $key controleren. Veel aangepaste bindingen negeren dit argument.$arg
- Een willekeurig argument. Meestal is dit een geheel getalargument dat de gebruiker doorgeeft uit de sleutelbindingen DigitArgument. Als uw binding geen argumenten accepteert, is het redelijk om dit argument te negeren.
Laten we eens kijken naar een voorbeeld waarmee een opdrachtregel aan de geschiedenis wordt toegevoegd zonder deze uit te voeren. Dit is handig wanneer u beseft dat u bent vergeten iets te doen, maar u niet opnieuw wilt invoeren van de opdrachtregel die u al hebt ingevoerd.
$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
U kunt nog veel meer voorbeelden zien in het bestand SamplePSReadLineProfile.ps1
dat is geïnstalleerd in de modulemap PSReadLine.
De meeste sleutelbindingen gebruiken enkele helperfuncties voor het bewerken van de opdrachtregel. Deze API's worden beschreven in de volgende sectie.
Ondersteunings-API's voor aangepaste sleutelbindingen
De volgende functies zijn openbaar in Microsoft.PowerShell.PSConsoleReadLine, maar kunnen niet rechtstreeks worden gebonden aan een sleutel. De meeste zijn handig in aangepaste sleutelbindingen.
void AddToHistory(string command)
Voeg een opdrachtregel toe aan de geschiedenis zonder deze uit te voeren.
void ClearKillRing()
Maak de kill-ring leeg. Dit wordt meestal gebruikt voor het testen.
void Delete(int start, int length)
Lengtetekens van begin verwijderen. Deze bewerking ondersteunt ongedaan maken/opnieuw uitvoeren.
void Ding()
Voer de ding-actie uit op basis van de gebruikersvoorkeur.
void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
[ref] ParseError[] parseErrors, [ref] int cursor)
Deze twee functies halen nuttige informatie op over de huidige status van de invoerbuffer. De eerste wordt vaker gebruikt voor eenvoudige gevallen. De tweede wordt gebruikt als uw binding iets geavanceerder doet met de Ast.
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(bool includeBound, bool includeUnbound)
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(string[] Chord)
Deze twee functies worden gebruikt door Get-PSReadLineKeyHandler
. De eerste wordt gebruikt om alle sleutelbindingen op te halen. De tweede wordt gebruikt om specifieke sleutelbindingen op te halen.
Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()
Deze functie wordt gebruikt door Get-PSReadLineOption en is waarschijnlijk niet te nuttig in een aangepaste sleutelbinding.
void GetSelectionState([ref] int start, [ref] int length)
Als er geen selectie op de opdrachtregel is, retourneert de functie -1 in zowel begin- als lengte. Als er een selectie op de opdrachtregel staat, worden het begin en de lengte van de selectie geretourneerd.
void Insert(char c)
void Insert(string s)
Een teken of tekenreeks invoegen bij de cursor. Deze bewerking ondersteunt ongedaan maken/opnieuw uitvoeren.
string ReadLine(runspace remoteRunspace,
System.Management.Automation.EngineIntrinsics engineIntrinsics)
Dit is het belangrijkste toegangspunt voor PSReadLine. Het biedt geen ondersteuning voor recursie, dus is niet nuttig in een aangepaste sleutelbinding.
void RemoveKeyHandler(string[] key)
Deze functie wordt gebruikt door Remove-PSReadLineKeyHandler en is waarschijnlijk niet te nuttig in een aangepaste sleutelbinding.
void Replace(int start, int length, string replacement)
Vervang een deel van de invoer. Deze bewerking ondersteunt ongedaan maken/opnieuw uitvoeren. Dit heeft de voorkeur boven Verwijderen gevolgd door Invoegen, omdat deze wordt behandeld als één actie voor ongedaan maken.
void SetCursorPosition(int cursor)
Verplaats de cursor naar de opgegeven verschuiving. Cursorverplaatsing wordt niet bijgehouden voor ongedaan maken.
void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)
Deze functie is een helpermethode die wordt gebruikt door de cmdlet Set-PSReadLineOption, maar kan handig zijn voor een aangepaste sleutelbinding die tijdelijk een instelling wil wijzigen.
bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
int defaultNumericArg)
Deze helpermethode wordt gebruikt voor aangepaste bindingen die aan DigitArgument worden gehouden. Een typische aanroep ziet eruit als
[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
[ref]$numericArg, 1)
Notities
Opdrachtgeschiedenis
PSReadLine onderhoudt een geschiedenisbestand met alle opdrachten en gegevens die u hebt ingevoerd vanaf de opdrachtregel. De geschiedenisbestanden is een bestand met de naam $($host.Name)_history.txt
. Op Windows-systemen wordt het geschiedenisbestand opgeslagen op $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine
. Op niet-Windows-systemen worden de geschiedenisbestanden opgeslagen op $env:XDG_DATA_HOME/powershell/PSReadLine
of $env:HOME/.local/share/powershell/PSReadLine
.
De geschiedenis kan gevoelige gegevens bevatten, inclusief wachtwoorden. PSReadLine probeert gevoelige informatie te filteren. Alle opdrachtregels met de volgende tekenreeksen worden niet naar het geschiedenisbestand geschreven.
- wachtwoord
- asplaintext
- teken
- apikey
- geheim
Feedback & bijdragen aan PSReadLine
U kunt gerust een pull-aanvraag indienen of feedback verzenden op de GitHub-pagina.
Zie ook
- PSReadLine wordt sterk beïnvloed door de GNU readline bibliotheek.