Delen via


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>

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

PSReadLine op GitHub

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.