about_PSReadLine

Korte beschrijving

PSReadLine biedt een verbeterde bewerkingservaring voor opdrachtregel in de PowerShell-console.

Lange beschrijving

PSReadLine 2.1 biedt een krachtige bewerkingservaring op de opdrachtregel voor de PowerShell-console. De oplossing biedt het volgende:

  • Syntaxiskleuring van de opdrachtregel
  • Een visuele indicatie van syntaxisfouten
  • Een betere ervaring met meerdere lijnen (zowel bewerking als geschiedenis)
  • Aanpasbare sleutelbindingen
  • Cmd- en Emacs-modi
  • Veel configuratieopties
  • Voltooiing van Bash-stijl (optioneel in de cmd-modus, standaard in Emacs-modus)
  • Emacs emailk/kill-ring
  • Verplaatsing en verwijdering van 'word' op basis van PowerShell-token
  • Predictive IntelliSense

VOOR PSReadLine is PowerShell 3.0 of hoger vereist. 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. Deze kan worden geïnstalleerd vanaf de PowerShell Gallery. Voer de volgende opdracht uit om PSReadLine 2.1.0 te installeren in een ondersteunde versie van PowerShell.

PSReadLine 2.2.0 (bèta) heeft twee nieuwe voorspellende IntelliSense-functies toegevoegd:

  • De parameter PredictionViewStyle is toegevoegd om de selectie van de nieuwe toe te ListView staan.
  • PsReadLine is verbonden met de API's die zijn geïntroduceerd in PS 7.1, zodat een gebruiker een predictormodule kan importeren die de suggesties van een aangepaste CommandPrediction bron kan renderen.
Install-Module -Name PSReadLine -AllowPrerelease

Notitie

Vanaf PowerShell 7.0 slaat PowerShell automatisch laden van PSReadLine op Windows als er een schermlezerprogramma wordt gedetecteerd. PsReadLine werkt momenteel niet goed met de schermlezers. De standaardweergave en -opmaak van PowerShell 7.0 op Windows werkt goed. U kunt de module indien nodig handmatig laden.

Predictive IntelliSense

Predictive IntelliSense is een aanvulling op het concept van tab-voltooiing dat de gebruiker helpt bij het voltooien van opdrachten. Hiermee kunnen gebruikers volledige opdrachten ontdekken, bewerken en uitvoeren op basis van overeenkomende voorspellingen uit de geschiedenis van de gebruiker en aanvullende domeinspecifieke invoegingen.

Predictive IntelliSense inschakelen

Predictive IntelliSense is standaard uitgeschakeld. Als u voorspellingen wilt inschakelen, moet u de volgende opdracht uitvoeren:

Set-PSReadLineOption -PredictionSource History

De parameter PredictionSource kan ook invoegingen accepteren voor domeinspecifieke en aangepaste vereisten.

Als u Predictive IntelliSense wilt uitschakelen, moet u het volgende uitvoeren:

Set-PSReadLineOption -PredictionSource None

De volgende functies zijn beschikbaar in de klasse Microsoft.PowerShell.PSConsoleReadLine.

Basisbewerkingsfuncties

Afbreken

De huidige actie afbreken, bijvoorbeeld: incrementeel zoeken in de geschiedenis.

  • Emacs: <Ctrl+g>

AcceptAndGetNext

Probeer de huidige invoer uit te voeren. Als deze kan worden uitgevoerd (zoals AcceptLine), kunt u het volgende item uit de geschiedenis terughalen 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 prijsopgave ontbreekt), wordt de vervolgprompt weergegeven op de volgende regel en wacht PSReadLine op sleutels om de huidige invoer te bewerken.

  • Cmd: <Enter>
  • Emacs: <Enter>
  • Vi-invoegmodus: <Enter>

AddLine

De vervolgprompt wordt weergegeven op de volgende regel en PSReadLine wacht op sleutels om de huidige invoer te bewerken. Dit is handig om invoer van meerdere lijnen in te voeren als één opdracht, zelfs wanneer één regel de invoer zelf volledig is.

  • Cmd: <Shift+Enter>
  • Emacs: <Shift+Enter>
  • Vi-invoegmodus: <Shift+Enter>
  • Vi-opdrachtmodus: <Shift+Enter>

BackwardDeleteChar

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>

BackwardDeleteInput

Net als BackwardKillInput verwijdert u tekst vanaf het punt tot het begin van de invoer, maar wordt de verwijderde tekst niet in de kill-ring gezet.

  • Cmd: <Ctrl+Home>
  • Vi-invoegmodus: <Ctrl+u> , <Ctrl+Home>
  • Vi-opdrachtmodus: <Ctrl+u> , <Ctrl+Home>

BackwardDeleteLine

Net als BackwardKillLine verwijdert u tekst vanaf het punt tot het begin van de regel, maar wordt de verwijderde tekst niet in de kill-ring gezet.

  • Vi-opdrachtmodus: <d,0>

BackwardDeleteWord

Hiermee verwijdert u het vorige woord.

  • Vi-opdrachtmodus: <Ctrl+w> , <d,b>

BackwardKillInput

De tekst aan het begin van de invoer naar de cursor verwijderen. De gewende tekst wordt in de kill-ring geplaatst.

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

BackwardKillLine

De tekst vanaf het begin van de huidige logische regel naar de cursor verwijderen. De gewende tekst wordt in de kill-ring geplaatst.

  • De functie is niet-gebonden.

BackwardKillWord

De invoer van het begin van het huidige woord naar de cursor verwijderen. Als de cursor tussen woorden staat, wordt de invoer van het begin van het vorige woord naar de cursor geword. De gewende 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 en 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 klembord van het systeem. 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>

Knippen

Verwijder de geselecteerde regio door verwijderde tekst op het systeem klembord te plaatsen.

  • 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

Hiermee verwijdert u aan het einde van de buffer met meerderelijnen.

  • Vi-opdrachtmodus: <d,G>

DeleteEndOfWord

Verwijder tot het einde van het woord .

  • Vi-opdrachtmodus: <d,e>

DeleteLine

Hiermee verwijdert u de huidige logische lijn van een buffer met meerdere lijnen, waardoor ongedaan maken wordt inschakelen.

  • 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 vanaf het begin van de buffer naar de huidige logische lijn in een buffer met meerdere lijnen.

Zoals de meeste Vi-opdrachten kan de opdracht worden vooraf gegaan door een numeriek argument waarmee een absoluut regelnummer wordt opgegeven, dat samen met het huidige regelnummer een bereik van regels vormen die moeten worden <d,g,g> verwijderd. Als dit niet wordt opgegeven, wordt het numerieke argument standaard ingesteld op 1, wat verwijst naar de eerste logische regel in een buffer met meerdere lijnen.

Het werkelijke aantal regels dat van de meerdere regels moet worden verwijderd, wordt berekend als het verschil tussen het huidige logische regelnummer en het opgegeven numerieke argument, wat dus negatief kan zijn. Vandaar het relatieve deel van de naam van de methode.

  • Vi-opdrachtmodus: <d,g,g>

DeleteNextLines

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 uit het eerste niet-lege teken van de huidige logische regel in een buffer met meerdere lijnen.

  • Vi-opdrachtmodus: <d,^>

DeleteToEnd

Verwijder naar het einde van de regel.

  • Vi-opdrachtmodus: <D> , <d,$>

DeleteWord

Verwijder het volgende woord.

  • Vi-opdrachtmodus: <d,w>

ForwardDeleteInput

Net als KillLine verwijdert u tekst van het punt tot het einde van de invoer, maar wordt de verwijderde tekst niet in de kill-ring gezet.

  • Cmd: <Ctrl+End>
  • Vi-invoegmodus: <Ctrl+End>
  • Vi-opdrachtmodus: <Ctrl+End>

ForwardDeleteLine

Hiermee verwijdert u tekst van het punt tot het einde van de huidige logische regel, maar wordt de verwijderde tekst niet in de kill-ring gezet.

  • Functie is niet gebonden

InsertLineAbove

Er wordt een nieuwe lege regel gemaakt boven de huidige regel, ongeacht waar de cursor zich op de huidige regel staat. De cursor gaat 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 staat. De cursor gaat naar het begin van de nieuwe regel.

  • Cmd: <Shift+Ctrl+Enter>

InvertCase

Zet het hoofdteken om en ga naar het volgende teken.

  • Vi-opdrachtmodus: <~>

KillLine

De invoer van de cursor tot het einde van de invoer verwijderen. De gewende tekst wordt in de kill-ring geplaatst.

  • Emacs: <Ctrl+k>

KillRegion

De tekst tussen de cursor en het teken afsluiten.

  • De functie is niet-gebonden.

KillWord

Leeg de invoer van de cursor tot het einde van het huidige woord. Als de cursor tussen woorden staat, wordt de invoer van de cursor tot het einde van het volgende woord geword. De gewende 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 vanaf het systeem klembord.

  • Cmd: <Ctrl+v> , <Shift+Insert>
  • Vi-invoegmodus: <Ctrl+v>
  • Vi-opdrachtmodus: <Ctrl+v>

Belangrijk

Wanneer u de functie Paste gebruikt, wordt de volledige inhoud van de klembordbuffer in de invoerbuffer van PSReadLine plakken. De invoerbuffer wordt vervolgens doorgegeven aan de PowerShell-parser. Invoer die is plakt met behulp van de methode voor plakken met de rechtermuisknop van de consoletoepassing, wordt met één teken tegelijk naar de invoerbuffer gekopieerd. De invoerbuffer wordt doorgegeven aan de parser wanneer een nieuwe-lijnteken wordt gekopieerd. Daarom wordt de invoer regel voor regel geparseerd. Het verschil tussen plakmethoden resulteert in een ander uitvoeringsgedrag.

PasteAfter

Plak het klembord na de cursor en beweeg de cursor naar het einde van de plakte tekst.

  • Vi-opdrachtmodus: <p>

PasteBefore

Plak het klembord vóór de cursor en beweeg de cursor naar het einde van de plakkende tekst.

  • Vi-opdrachtmodus: <P>

PrependAndAccept

Maak een #-voorbereiding en accepteer de regel.

  • Vi-opdrachtmodus: <#>

Opnieuw uitvoeren

Maak een ongedaan maken ongedaan.

  • Cmd: <Ctrl+y>
  • Vi-invoegmodus: <Ctrl+y>
  • Vi-opdrachtmodus: <Ctrl+y>

RepeatLastCommand

Herhaal de laatste tekstwijziging.

  • Vi-opdrachtmodus: <.>

RevertLine

Alle invoer wordt terug naar de huidige invoer.

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

ShellBackwardKillWord

De invoer van het begin van het huidige woord naar de cursor verwijderen. Als de cursor tussen woorden staat, wordt de invoer van het begin van het vorige woord naar de cursor geword. De gewende tekst wordt in de kill-ring geplaatst.

Functie is niet-gebonden.

ShellKillWord

De invoer van de cursor naar het einde van het huidige woord verwijderen. Als de cursor tussen woorden staat, wordt de invoer van de cursor tot het einde van het volgende woord geweerd. De gewende tekst wordt in de kill-ring geplaatst.

Functie is niet-gebonden.

SwapCharacters

Verwissel het huidige teken en het teken ervoor.

  • Emacs: <Ctrl+t>
  • Vi-invoegmodus: <Ctrl+t>
  • Vi-opdrachtmodus: <Ctrl+t>

Ongedaan maken

Een eerdere bewerking ongedaan maken.

  • Cmd: <Ctrl+z>
  • Emacs: <Ctrl+_> , <Ctrl+x,Ctrl+u>
  • Vi-invoegmodus: <Ctrl+z>
  • Vi-opdrachtmodus: <Ctrl+z> , <u>

Ongedaan makenAlleen

Maak alle vorige bewerkingen voor regel ongedaan.

  • Vi-opdrachtmodus: <U>

UnixWordRubout

De invoer van het begin van het huidige woord naar de cursor verwijderen. Als de cursor tussen woorden staat, wordt de invoer van het begin van het vorige woord naar de cursor geword. De gewende 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 prijsopgave ontbreekt), wordt de vervolgprompt weergegeven op de volgende regel en wacht PSReadLine op sleutels om de huidige invoer te bewerken.

  • Emacs: <Ctrl+m>

ViAcceptLine

Accepteer de regel en schakel over naar de modus Invoegen.

  • Vi-opdrachtmodus: <Enter>

ViAcceptLineOrExit

Net als DeleteCharOrExit in de Emacs-modus, maar accepteert de regel in plaats van een teken te verwijderen.

  • Vi-invoegmodus: <Ctrl+d>
  • Vi-opdrachtmodus: <Ctrl+d>

ViAppendLine

Onder de huidige regel wordt een nieuwe regel ingevoegd.

  • Vi-opdrachtmodus: <o>

ViBackwardDeleteGlob

Hiermee verwijdert u het vorige woord, met alleen witruimte als het woord scheidingsteken.

  • Vi-opdrachtmodus: <d,B>

ViBackwardGlob

Verplaatst de cursor terug naar het begin van het vorige woord, met alleen witruimte als scheidingstekens.

  • Vi-opdrachtmodus: <B>

ViDeleteBrace

Zoek de overeenkomende accolade, haakje of vierkante haak en verwijder alle inhoud binnen, inclusief de accolade.

  • Vi-opdrachtmodus: <d,%>

ViDeleteEndOfGlob

Verwijder aan het einde van het woord.

  • Vi-opdrachtmodus: <d,E>

ViDeleteGlob

Verwijder de volgende glob (witruimte met scheidingstekens).

  • Vi-opdrachtmodus: <d,W>

ViDeleteToBeforeChar

Hiermee verwijdert u totdat het opgegeven teken.

  • Vi-opdrachtmodus: <d,t>

ViDeleteToBeforeCharBackward

Hiermee verwijdert u totdat het opgegeven teken.

  • Vi-opdrachtmodus: <d,T>

ViDeleteToChar

Hiermee verwijdert u totdat het opgegeven teken.

  • Vi-opdrachtmodus: <d,f>

ViDeleteToCharBackward

Hiermee verwijdert u naar achteren tot een bepaald teken.

  • Vi-opdrachtmodus: <d,F>

ViInsertAtBegining

Schakel over naar de modus Invoegen 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

Boven de huidige regel wordt een nieuwe regel ingevoegd.

  • Vi-opdrachtmodus: <O>

ViInsertWithAppend

Plaats vanaf de huidige lijnpositie.

  • Vi-opdrachtmodus: <a>

ViInsertWithDelete

Verwijder het huidige teken en schakel over naar de modus Invoegen.

  • Vi-opdrachtmodus: <s>

ViJoinLines

Voegt de huidige regel en de volgende regel samen.

  • Vi-opdrachtmodus: <J>

ViReplaceLine

Wis de volledige opdrachtregel.

  • Vi-opdrachtmodus: <S> , <c,c>

ViReplaceToBeforeChar

Vervangt totdat het opgegeven teken.

  • Vi-opdrachtmodus: <c,t>

ViReplaceToBeforeCharBackward

Vervangt totdat het opgegeven teken.

  • Vi-opdrachtmodus: <c,T>

ViReplaceToChar

Hiermee verwijdert u totdat het opgegeven teken.

  • Vi-opdrachtmodus: <c,f>

ViReplaceToCharBackward

Vervangt totdat het opgegeven teken.

  • Vi-opdrachtmodus: <c,F>

ViNovkBeginningOfLine

Vanaf het begin van de buffer naar de cursor.

  • Vi-opdrachtmodus: <y,0>

ViNovkEndOfGlob

Balkk van de cursor naar het einde van de WORD(s).

  • Vi-opdrachtmodus: <y,E>

ViNovkEndOfWord

Balkk van de cursor naar het einde van het woord(en).

  • Vi-opdrachtmodus: <y,e>

ViNovkLeft

Een of meer tekens aan de linkerkant van de cursor.

  • Vi-opdrachtmodus: <y,h>

ViNovkLine

De hele buffer af te ronden.

  • Vi-opdrachtmodus: <y,y>

ViGlokNextGlob

Vanaf de cursor naar het begin van de volgende WORD(s) gaan.

  • Vi-opdrachtmodus: <y,W>

ViNovkNextWord

Plaats het woord(en) achter de cursor.

  • Vi-opdrachtmodus: <y,w>

ViNovkPercent

Moet naar/van overeenkomende accolades gaan.

  • Vi-opdrachtmodus: <y,%>

ViNovkPreviousGlob

Vanaf het begin van de WORD(s) naar de cursor.

  • Vi-opdrachtmodus: <y,B>

ViNovkPreviousWord

Plaats het woord(en) vóór de cursor.

  • Vi-opdrachtmodus: <y,b>

ViNovkRight

Een of meer tekens onder en rechts van de cursor.

  • Vi-opdrachtmodus: <y,l> , <y,Spacebar>

ViNovkToEndOfLine

Balkk van de cursor naar het einde van de buffer.

  • Vi-opdrachtmodus: <y,$>

ViNovkToFirstChar

Vanaf het eerste teken zonder witruimte naar de cursor.

  • Vi-opdrachtmodus: <y,^>

Yank

Voeg de laatst omkaderde tekst toe aan de invoer.

  • Emacs: <Ctrl+y>

MoetkLastArg

Het laatste argument van de vorige geschiedenisregel. Met een argument gedraagt de eerste keer dat het wordt aangeroepen zich net als BijkNthArg. Als deze meerdere keren wordt aangeroepen, wordt in plaats daarvan de geschiedenis doorge itereerd en wordt de richting van arg (negatief keert de richting om.)

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

MoetkNthArg

Het eerste argument (na de opdracht) van de vorige geschiedenisregel. Met een argument kunt u het nde-argument (beginnend bij 0) uit het laatste argument laten beginnen als het argument negatief is.

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

HadkPop

Als de vorige bewerking Hadk of HadkPop was, vervangt u de eerder geseede tekst door de volgende tekst die uit de kill-ring wordt vernietigd.

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

Functies voor cursorver movement

Achterwaartsechar

Verplaats de cursor één teken naar links. Hierdoor kan de cursor naar de vorige regel met invoer van meerdere lijnen worden verplaatst.

  • Cmd: <LeftArrow>
  • Emacs: <LeftArrow> , <Ctrl+b>
  • Vi-invoegmodus: <LeftArrow>
  • Vi-opdrachtmodus: <LeftArrow> , <Backspace> , <h>

BackwardWord

Verplaats de cursor terug naar het begin van het huidige woord, of, indien 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>

BeginningOfLine

Als de invoer meerdere regels heeft, gaat u naar het begin van de huidige regel. Als de invoer al aan het begin van de regel staat, gaat u 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. Als de invoer al aan het einde van de regel staat, gaat u 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

Verplaats de cursor één teken naar rechts. Hierdoor kan de cursor naar de volgende regel met invoer van meerdere lijnen worden verplaatst.

  • 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>

GotoBrace

Ga naar de overeenkomende accolade, haakje of vierkante haak.

  • Cmd: <Ctrl+]>
  • Vi-invoegmodus: <Ctrl+]>
  • Vi-opdrachtmodus: <Ctrl+]>

GotoColumn

Ga naar de kolom die wordt aangegeven door 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.

  • De functie is niet gebonden.

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>

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>

PreviousLine

Verplaats de cursor naar de vorige regel.

  • De functie is niet gebonden.

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.

  • De functie is niet gebonden.

ShellForwardWord

Verplaats de cursor naar het begin van het volgende woord. Word-grenzen worden gedefinieerd door PowerShell-tokens.

  • De functie is niet gebonden.

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.

  • De functie is niet gebonden.

ViBackwardChar

Verplaats de cursor één teken naar links in de bewerkingsmodus Vi. Hierdoor kan de cursor naar de vorige regel met invoer van meerdere lijnen 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>

ViForwardChar

Verplaats de cursor één teken naar rechts in de bewerkingsmodus Vi. Hierdoor kan de cursor naar de volgende regel met invoer van meerdere lijnen worden verplaatst.

  • Vi-invoegmodus: <RightArrow>
  • Vi-opdrachtmodus: <RightArrow> , <Spacebar> , <l>

ViEndOfGlob

Verplaatst de cursor naar het einde van het woord, met alleen witruimte als scheidingstekens.

  • Vi-opdrachtmodus: <E>

ViEndOfPreviousGlob

Gaat naar het einde van het vorige woord, met alleen witruimte als scheidingsteken voor woorden.

  • De functie is niet gebonden.

ViGotoBrace

Vergelijkbaar met GotoBrace, maar is gebaseerd op tekens in plaats van op token gebaseerd.

  • Vi-opdrachtmodus: <%>

ViNextGlob

Hiermee gaat u naar het volgende woord, met alleen witruimte 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>

Geschiedenisfuncties

BeginningOfHistory

Ga naar het eerste item in de geschiedenis.

  • Emacs: <Alt+<>

ClearHistory

De geschiedenis in PSReadLine wordt geweken. Dit heeft geen invloed op de Geschiedenis van PowerShell.

  • Cmd: <Alt+F7>

EndOfHistory

Ga naar het laatste item (de huidige invoer) in de geschiedenis.

  • Emacs: <Alt+>>

ForwardSearchHistory

Voer stapsgewijs een zoekopdracht door de geschiedenis uit.

  • 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 item 'volgende' 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 item 'volgende' uit de PSReadLine-geschiedenis.

  • Cmd: <DownArrow>
  • Emacs: <DownArrow> , <Ctrl+n>
  • Vi-invoegmodus: <DownArrow>
  • Vi-opdrachtmodus: <DownArrow> , <j> , <+>

PreviousHistory

Vervang de huidige invoer door het vorige item uit de PSReadLine-geschiedenis.

  • Cmd: <UpArrow>
  • Emacs: <UpArrow> , <Ctrl+p>
  • Vi-invoegmodus: <UpArrow>
  • Vi-opdrachtmodus: <UpArrow> , <k> , <->

ReverseSearchHistory

Voer een incrementeel achterwaartse zoekopdracht door de geschiedenis uit.

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

ViSearchHistoryBackward

Vraagt om een zoekreeks en initieert de zoekopdracht op AcceptLine.

  • Vi-invoegmodus: <Ctrl+r>
  • Vi-opdrachtmodus: </> , <Ctrl+r>

Voltooiingsfuncties

Voltooid

Probeer de tekst rond de cursor af te ronden. Als er meerdere mogelijke voltooiingen zijn, wordt het langste ondubbelzinnige voorvoegsel gebruikt voor voltooiing. Als u probeert de langste ondubbelzinnige voltooiing te voltooien, wordt een lijst met mogelijke voltooiingen weergegeven.

  • Emacs: <Tab>

Probeer de tekst rond de cursor af te ronden. Als er meerdere mogelijke voltooiingen zijn, wordt het langste ondubbelzinnige voorvoegsel gebruikt voor voltooiing. Als u probeert de langste ondubbelzinnige voltooiing 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

Beëindigt de huidige bewerkingsgroep, indien nodig, en roept TabCompleteNext aan.

  • Vi-invoegmodus: <Tab>

ViTabCompletePrevious

De huidige bewerkingsgroep wordt, indien nodig, beëindigd en TabCompletePrevious aanroept.

  • Vi-invoegmodus: <Shift+Tab>

Voorspellingsfuncties

AcceptNextSuggestionWord

Wanneer u InlineView gebruikt als weergavestijl voor voorspelling, accepteert u het volgende woord van de inlinesuggestie.

  • Functie is niet-gebonden.

AcceptSuggestion

Wanneer u InlineView gebruikt als de weergavestijl voor voorspelling, accepteert u de huidige inlinesuggestie.

  • Functie is niet-gebonden.

NextSuggestion

Wanneer u ListView gebruikt als weergavestijl voor voorspelling, gaat u naar de volgende suggestie in de lijst.

  • Functie is niet-gebonden.

PreviousSuggestion

Wanneer u ListView gebruikt als weergavestijl voor voorspelling, navigeert u naar de vorige suggestie in de lijst.

  • Functie is niet-gebonden.

SwitchPredictionView

Schakel de weergavestijl voor voorspelling tussen InlineView en ListView .

  • Cmd: <F2>

Diverse functies

CaptureScreen

Interactieve schermopname starten: pijl-omhoog/omlaag om regels te selecteren en de geselecteerde tekst naar het klembord te kopiëren als tekst en HTML.

  • Functie is niet-gebonden.

ClearScreen

Maak het scherm leeg en teken de huidige lijn bovenaan 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.

  • 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

Wis de huidige prompt en roept de promptfunctie aan om de prompt opnieuw te afspelen. Handig voor aangepaste sleutel-handlers die de status wijzigen. Wijzig bijvoorbeeld de huidige map.

  • Functie is niet-gebonden.

ScrollDisplayDown

Schuif één scherm omlaag door de weergave.

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

ScrollDisplayDownLine

Schuif één regel omlaag door de weergave.

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

ScrollDisplayToCursor

Schuif door de weergave naar de cursor.

  • Emacs: <Ctrl+End>

ScrollDisplayTop

Schuif door de weergave naar boven.

  • Emacs: <Ctrl+Home>

ScrollDisplayUp

Schuif één scherm omhoog door het scherm.

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

ScrollDisplayUpLine

Schuif één regel omhoog door de weergave.

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

SelfInsert

Voeg de sleutel in.

  • Functie is niet-gebonden.

ShowCommandHelp

Biedt een weergave van de volledige help voor cmdlet. Wanneer de cursor zich aan het einde van een volledig uitvijfde parameter bevindt, wordt de help-weergave op de locatie van die parameter op de positie van de <F1> sleutelposities weergegeven.

De Help wordt weergegeven op een alternatieve schermbuffer met behulp van een pager van Microsoft.PowerShell.Pager. Wanneer u de pager sluit, keert u terug naar de oorspronkelijke cursorpositie op het oorspronkelijke scherm. Deze pager werkt alleen in moderne terminaltoepassingen zoals Windows Terminal.

  • Cmd: <F1>
  • Emacs: <F1>
  • Vi-invoegmodus: <F1>
  • Vi-opdrachtmodus: <F1>

ShowKeyBindings

Alle gebonden sleutels tonen.

  • Cmd: <Ctrl+Alt+?>
  • Emacs: <Ctrl+Alt+?>
  • Vi-invoegmodus: <Ctrl+Alt+?>

ShowParameterHelp

Biedt dynamische help voor parameters door deze onder de huidige opdrachtregel weer te geven, zoals MenuComplete . De cursor moet zich aan het einde van de volledig uit uitgebreide parameternaam wanneer u op de toets <Alt+h> drukt.

  • Cmd: <Alt+h>
  • Emacs: <Alt+h>
  • Vi-invoegmodus: <Alt+h>
  • Vi-opdrachtmodus: <Alt+h>

ViCommandMode

Schakel de huidige besturingsmodus van Vi-Insert naar Vi-Command.

  • Vi-invoegmodus: <Escape>

ViDigitArgumentInChord

Begin een nieuw cijferargument om door te geven aan andere functies in een van de akkoorden van vi.

  • Functie is niet-gebonden.

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

Sluit de shell.

  • Functie is niet-gebonden.

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 geplaatst op de locatie van het teken en het teken 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 vanaf de cursor naar het begin van de regel op te nemen.

  • 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>

SelecteerCommandArgument

Maak visuele selectie van de opdrachtargumenten. De selectie van argumenten is binnen een scriptblok beperkt. Op basis van de cursorpositie wordt gezocht van het binnenste scriptblok naar het meest buitenste scriptblok en wordt gestopt wanneer er argumenten in een blokbereik van het script worden gevonden.

Deze functie respecteert DigitArgument. De waarden voor positieve of negatieve argumenten worden behandeld als de voor- of achterwaartse verschuivingen van het geselecteerde argument, of vanaf de huidige cursorpositie wanneer er geen argument is geselecteerd.

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

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 behulp van ForwardWord.

  • Emacs: <Alt+F>

SelectLine

Pas de huidige selectie aan om vanaf de cursor naar het einde van de regel op te nemen.

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

SelecteerNextWord

Pas de huidige selectie aan om het volgende woord op te nemen.

  • Cmd: <Shift+Ctrl+RightArrow>

SelecteerShellBackwardWord

Pas de huidige selectie aan om het vorige woord op te nemen met behulp van ShellBackwardWord.

  • De functie is niet gebonden.

SelecteerShellForwardWord

Pas de huidige selectie aan om het volgende woord op te nemen met behulp van ShellForwardWord.

  • De functie is niet gebonden.

SelecteerShellNextWord

Pas de huidige selectie aan om het volgende woord op te nemen met behulp van ShellNextWord.

  • De functie is niet gebonden.

SetMark

Markeer de huidige locatie van de cursor voor gebruik in een volgende bewerkingsopdracht.

  • Emacs: <Ctrl+@>

Voorspellende IntelliSense-functies

Notitie

Predictive IntelliSense moet zijn ingeschakeld om deze functies te kunnen gebruiken.

AcceptNextWordSuggestion

Accepteert het volgende woord van de inlinesuggestie van Predictive IntelliSense. Deze functie kan worden gebonden met Ctrl + F door de volgende opdracht uit te voeren.

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

AcceptSuggestion

Accepteert de huidige inlinesuggestie van Predictive IntelliSense door op RightArrow te drukken wanneer de cursor aan het einde van de huidige regel staat.

Zoekfuncties

CharacterSearch

Lees een teken en zoek door naar het volgende exemplaar van dat teken. Als er een argument is opgegeven, zoekt u vooruit (of naar achteren indien negatief) naar het eerste exemplaar.

  • 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) naar het eerste exemplaar.

  • Cmd: <Shift+F3>
  • Emacs: <Ctrl+Alt+]>
  • Vi-invoegmodus: <Shift+F3>
  • Vi-opdrachtmodus: <Shift+F3>

RepeatLastCharSearch

Herhaal de laatst vastgelegde tekenzoekactie.

  • Vi-opdrachtmodus: <;>

RepeatLastCharSearchBackwards

Herhaal de laatst vastgelegde tekenzoekactie, maar in de tegenovergestelde 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, in de toekomst, en weer af bij een teken. Dit is voor de functionaliteit 't'.

  • Vi-opdrachtmodus: <f>

SearchCharBackward

Lees het volgende teken en zoek het, ga terug en weer terug naar een teken. Dit is voor de functionaliteit 'T'.

  • Vi-opdrachtmodus: <F>

SearchCharBackwardWithBackoff

Lees het volgende teken en zoek het, ga terug en weer terug naar een teken. Dit is voor de functionaliteit 'T'.

  • Vi-opdrachtmodus: <T>

SearchCharWithBackoff

Lees het volgende teken en zoek het vervolgens, in de toekomst, en weer af bij een teken. Dit is voor de functionaliteit 't'.

  • Vi-opdrachtmodus: <t>

SearchForward

Vraagt om een zoekreeks en initieert 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 binden aan een sleutel. Met ScriptBlock kunt u vrijwel alles doen wat u wilt. Enkele nuttige voorbeelden zijn

  • de opdrachtregel bewerken
  • een nieuw venster openen (bijvoorbeeld Help)
  • van directories 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 verbindt met meerdere sleutels en verschillende acties moet uitvoeren, afhankelijk van de sleutel, kunt u de $key. Veel aangepaste bindingen negeren dit argument.

  • $arg - Een willekeurig argument. Meestal is dit een geheel getal-argument dat de gebruiker door geeft vanuit de sleutelbindingen DigitArgument. Als uw binding geen argumenten accepteert, is het redelijk om dit argument te negeren.

Laten we eens kijken naar een voorbeeld dat een opdrachtregel toevoegt aan de geschiedenis zonder deze uit te voeren. Dit is handig wanneer u zich realiseert dat u bent vergeten iets te doen, maar de opdrachtregel die u al hebt ingevoerd niet opnieuw wilt invoeren.

$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 ziet veel meer voorbeelden 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 sleutelbinding

De volgende functies zijn openbaar in Microsoft.PowerShell.PSConsoleReadLine, maar kunnen niet rechtstreeks aan een sleutel worden gebonden. De meeste zijn handig bij aangepaste sleutelbindingen.

void AddToHistory(string command)

Voeg een opdrachtregel toe aan de geschiedenis zonder deze uit te voeren.

void ClearKillRing()

De kill-ring leeg maken. Dit wordt voornamelijk gebruikt voor het testen.

void Delete(int start, int length)

Lengtetekens vanaf het 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)

Met deze twee functies wordt nuttige informatie opgehaald 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 al te nuttig in een aangepaste sleutelbinding.

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

Als er geen selectie op de opdrachtregel staat, retourneert de functie -1 in zowel het begin als de 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)

Voeg een teken of tekenreeks toe aan 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. Recursie wordt niet ondersteund, dus is niet nuttig in een aangepaste sleutelbinding.

void RemoveKeyHandler(string[] key)

Deze functie wordt gebruikt door Remove-PSReadLineKeyHandler en is waarschijnlijk niet al 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 offset. Cursorver movement wordt niet bij te houden voor ongedaan maken.

void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)

Deze functie is een helpermethode die wordt gebruikt door de cmdlet Set-PSReadLineOption, maar kan nuttig zijn voor een aangepaste sleutelbinding die een instelling tijdelijk wil wijzigen.

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

Deze helpermethode wordt gebruikt voor aangepaste bindingen die aan DigitArgument houden. 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 zijn 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. Opdrachtregels met de volgende tekenreeksen worden niet naar het geschiedenisbestand geschreven.

  • wachtwoord
  • asplaintext
  • token
  • apikey
  • geheim

PSReadLine 2.2.0 verbetert het filteren van gevoelige gegevens op de volgende manieren:

  • Maakt gebruik van de Abstract Syntax Tree (AST) van PowerShell van de geparseerde opdrachtregel om te zoeken naar gevoelige gegevens.
  • Maakt gebruik van een lijst met veilige cmdlets uit de module SecretManagement om toe te staan dat deze opdrachten worden toegevoegd aan de geschiedenis. De allowlist bevat:
    • Get-Secret
    • Get-SecretInfo
    • Get-SecretVault
    • Register-SecretVault
    • Remove-Secret
    • Set-SecretInfo
    • Set-SecretVaultDefault
    • Test-SecretVault
    • Unlock-SecretVault
    • Unregister-SecretVault

De volgende opdrachten mogen bijvoorbeeld naar het geschiedenisbestand worden geschreven:

Get-Secret PSGalleryApiKey -AsPlainText # Get-Secret is in the allowlist
$token = Get-Secret -Name github-token -Vault MySecret
[MyType]::CallRestAPI($token, $url, $args)
$template -f $token

De volgende opdracht wordt niet naar het geschiedenisbestand geschreven:

$token = 'abcd' # Assign expr-value to sensitive variable name.
Set-Secret abc $mySecret # Set-Secret is not in the allowlist.
ConvertTo-SecureString stringValue -AsPlainText # '-AsPlainText' is an alert.
Invoke-WebRequest -Token xxx # Expr-value as argument to '-Token'.
Get-ResultFromTwo -Secret1 (Get-Secret -Name blah -AsPlainText) -Secret2 sdv87ysdfayf798hfasd8f7ha # '-Secret2' has expr-value argument.

Feedback & bijdragen aan PSReadLine

PSReadLine op GitHub

U kunt een pull-aanvraag indienen of feedback verzenden op GitHub pagina.

Zie ook

PSReadLine wordt sterk beïnvloed door de leeslijnbibliotheek van GNU.