Delen via


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.

Schermopname van Terminal.app instellingen.

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.

Schermopname van iTerm.app instellingen.

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+D2gebruiken.

    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.

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.

Zie ook