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
ListViewstaan. - 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
CommandPredictionbron 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>
MenuComplete
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-SecretGet-SecretInfoGet-SecretVaultRegister-SecretVaultRemove-SecretSet-SecretInfoSet-SecretVaultDefaultTest-SecretVaultUnlock-SecretVaultUnregister-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
U kunt een pull-aanvraag indienen of feedback verzenden op GitHub pagina.
Zie ook
PSReadLine wordt sterk beïnvloed door de leeslijnbibliotheek van GNU.