PSReadLine-sleutelhandlers gebruiken
De PSReadLine-module biedt sleutelhandlers die PSReadLine-functies toewijzen aan toetsenbordklikken. Toetsenbordklikken zijn een reeks toetsaanslagen die tegelijkertijd worden ingedrukt.
De chord Ctrl-spatiebalk+ is bijvoorbeeld de combinatie van de Ctrl- en spatiebalktoetsen die tegelijkertijd zijn ingedrukt. Een PSReadLine-functie is een vooraf gedefinieerde actie die kan worden uitgevoerd op een opdrachtregel. Met de MenuComplete
functie kunt u bijvoorbeeld kiezen uit een lijst met opties in een menu om de invoer op de opdrachtregel te voltooien.
PSReadLine heeft verschillende vooraf gedefinieerde sleutelhandlers die standaard zijn gebonden. U kunt ook uw eigen aangepaste sleutelhandlers definiëren. Voer de volgende opdracht uit om de sleutelhandlers weer te geven die momenteel zijn gedefinieerd.
Get-PSReadLineKeyHandler
U kunt ook een lijst ophalen met alle niet-afhankelijke PSReadLine-functies die beschikbaar zijn om te worden gebonden aan een sleutelakkoord.
Get-PSReadLineKeyHandler -Unbound
U kunt de Set-PSReadLineKeyHandler
cmdlet gebruiken om een functie te binden aan een sleutelhandler. Met de volgende opdracht wordt de MenuComplete
functie gebonden aan de spatiebalk van Ctrl+.
Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete
Sleutelnamen en akkoordbindingen zoeken
De namen van de sleutels in het akkoord worden gedefinieerd door de [System.ConsoleKey]
opsomming. Zie de documentatie van System.ConsoleKey voor meer informatie. De naam van de 2-toets is D2
[System.ConsoleKey]
bijvoorbeeld, terwijl de naam van de 2-toets op het numerieke toetsenblok isNumPad2
. U kunt de [System.Console]::ReadKey()
methode gebruiken om de naam te vinden van de toets die u hebt ingedrukt.
[System.Console]::ReadKey()
In de volgende uitvoer ziet u de informatie die wordt geretourneerd door de ReadKey()
methode voor het Ctrl+2-sleutelakkoord.
KeyChar Key Modifiers
------- --- ---------
D2 Control
Voor de cmdlets van de PSReadLine-sleutelhandler wordt dit akkoord weergegeven als Ctrl+D2
. In het volgende voorbeeld wordt dit akkoord aan een functie gekoppeld.
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
U kunt meerdere snoeren aan één functie binden. De functie is standaard BackwardDeleteChar
gebonden aan twee akkoorden.
Get-PSReadLineKeyHandler -Chord Backspace, Ctrl+h
Key Function Description
--- -------- -----------
Backspace BackwardDeleteChar Delete the character before the cursor
Ctrl+h BackwardDeleteChar Delete the character before the cursor
Notitie
De parameter Chord is hoofdlettergevoelig. Dit betekent dat u verschillende bindingen kunt maken voor Ctrl+X en Ctrl+x.
In Windows kunt u ook het Alt+?-toetsakkoord gebruiken om de functie weer te geven die is gebonden aan het volgende toetsakkoord dat u invoert. Wanneer u Alt+ typt? ziet u de volgende prompt:
what-is-key:
Wanneer u de Backspace-toets bereikt, krijgt u het volgende antwoord:
Backspace: BackwardDeleteChar - Delete the character before the cursor
Sleutelhandlers op niet-Windows-computers
De sleutelcodes die door uw toetsenbord worden gegenereerd, kunnen verschillen, afhankelijk van het besturingssysteem en de terminaltoepassing die u gebruikt.
macOS
Het Macintosh-toetsenbord heeft geen Alt-toets zoals Windows- en Linux-systemen. In plaats daarvan heeft het de ⌥Option-toets . macOS gebruikt deze sleutel anders dan de Alt-toets op andere systemen. U kunt de terminal- en iTerm2-toepassingen op macOS echter configureren om deze te behandelen als een Alt-toets .
De Terminal-toepassing configureren
Open het Instellingen-venster vanuit de app-balk in Terminal.app. Selecteer Profielen en kies het profiel dat u wilt configureren. Selecteer het tabblad Toetsenbord van de configuratieopties. Selecteer onder de lijst met sleutels de optie Gebruiken als metasleutelinstelling . Met deze instelling kan de option-toets ⌥ fungeren als Alt in de Terminal-toepassing.
De iTerm2-toepassing configureren
Open het venster Instellingen vanuit de App-balk in iTerm.app. Selecteer Profielen en kies het profiel dat u wilt configureren. Selecteer het tabblad Sleutels van de configuratieopties. Selecteer de optie Esc+ voor zowel de instellingen voor de linkeroptietoets als de rechteroptietoets. Met deze instelling kan de option-toets ⌥ fungeren als Alt in de iTerm-toepassing.
Notitie
De exacte stappen kunnen variëren, afhankelijk van de versies van macOS en de terminaltoepassingen. Deze voorbeelden zijn vastgelegd op macOS Ventura 13.2.1 en iTerm2 v3.4.16.
Linux
Op Linux-platforms kan de gegenereerde sleutelcode afwijken van andere systemen. Voorbeeld:
Ctrl+[ is hetzelfde als Escape
Met ctrl-spatiebalk worden de sleutelcodes voor Ctrl+D2 gegenereerd.+ Als u een functie wilt toewijzen Ctrl-spatiebalk+, moet u het akkoord
Ctrl+D2
gebruiken.Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
Gebruik de ReadKey()
methode om de sleutelcodes te controleren die door het toetsenbord zijn gegenereerd.
Veelgebruikte sleutelhandlers
Hier volgen enkele veelgebruikte sleutelhandlers die standaard zijn gebonden in Windows. Houd er rekening mee dat de sleutelbinding mogelijk verschilt op niet-Windows-platforms.
MenuComplete
Voltooi de invoer door een keuze te maken in een menu met mogelijke voltooiingswaarden.
Standaard akkoord: Ctrl+Spacebar
In het volgende voorbeeld ziet u het menu met mogelijke voltooiingen voor opdrachten die beginnen met select
.
PS C:\> select<Ctrl+Spacebar>
select Select-Object Select-PSFPropertyValue Select-Xml
Select-AzContext Select-PSFConfig Select-PSMDBuildProject
Select-AzSubscription Select-PSFObject Select-String
Select-Object
Gebruik de pijltoetsen om de gewenste voltooiing te selecteren. Druk op Enter om de invoer te voltooien. Terwijl u door de selecties bladert, wordt help voor de geselecteerde opdracht weergegeven onder het menu.
ClearScreen
Met deze functie wordt het scherm gewist dat lijkt op de cls
of clear
opdrachten.
Standaard akkoord: Ctrl+l
SelectCommandArgument
Hiermee selecteert u het volgende argument op de opdrachtregel.
Standaard akkoord: Alt+a
Mogelijk hebt u de opdracht in uw geschiedenis die u opnieuw wilt uitvoeren met verschillende parameterwaarden. U kunt het akkoord gebruiken om elke parameter te doorlopen en de waarde zo nodig te wijzigen.
New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM
Als u op Alt+drukt, wordt het volgende parameterargument op zijn beurt geselecteerd: myRGName
, eastus
, . myVM
GotoBrace
Hiermee verplaatst u de cursor naar de overeenkomende accolade.
Standaard akkoord: Ctrl+]
Met deze functies wordt de cursor verplaatst naar de accolade sluiten die overeenkomt met de accolade op de huidige cursorpositie op de opdrachtregel. De functie werkt voor haakjes (), accolades ([]
{}
) en haakjes, (()
).
DigitArgument
Start of verzamel een numeriek argument om een toetsaanslag te herhalen op het opgegeven aantal keren.
Standaard akkoord: Alt+0
door Alt+9
Als u bijvoorbeeld Alt+4+# typt####
, wordt deze op de opdrachtregel ingevoerd.