Använda PSReadLine-nyckelhanterare

PSReadLine-modulen innehåller nyckelhanterare som mappar PSReadLine-funktioner till tangentbordsackord. Tangentbordsackord är en sekvens med en eller flera tangenttryckningar som trycks på samtidigt. Till exempel är ackordet Ctrl+Blankstegslist kombinationen av tangenterna Ctrl och Blanksteg samtidigt. En PSReadLine-funktion är en fördefinierad åtgärd som kan utföras på en kommandorad. Med funktionen kan du till exempel MenuComplete välja från en lista med alternativ från en meny och fylla i indata på kommandoraden.

PSReadLine har flera fördefinierade nyckelhanterare som är bundna som standard. Du kan också definiera dina egna anpassade nyckelhanterare. Kör följande kommando för att visa en lista över de nyckelhanterare som för närvarande är definierade.

Get-PSReadLineKeyHandler

Du kan också hämta en lista över alla obundna PSReadLine-funktioner som är tillgängliga för bindning till ett nyckelackord.

Get-PSReadLineKeyHandler -Unbound

Du kan använda cmdleten Set-PSReadLineKeyHandler för att binda en funktion till en nyckelhanterare. Följande kommando binder MenuComplete funktionen till ackordet Ctrl+Blanksteg.

Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete

Hitta nyckelnamn och ackordbindningar

Namnen på nycklarna i ackordet definieras av [System.ConsoleKey] uppräkningen. Mer information finns i Dokumentation om System.ConsoleKey . Namnet på 2-nyckeln i är till exempel , medan namnet på 2-nyckeln på den numeriska knappsatsen är NumPad2.D2[System.ConsoleKey] Du kan använda [System.Console]::ReadKey() metoden för att hitta namnet på den nyckel som du tryckte på.

[System.Console]::ReadKey()

Följande utdata visar den information som returneras av ReadKey() metoden för Ctrl+2-nyckelackordet.

KeyChar Key Modifiers
------- --- ---------
        D2   Control

För PSReadLine-nyckelhanterar-cmdletar representeras det här ackordet som Ctrl+D2. Följande exempel binder det här ackordet till en funktion.

Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete

Du kan binda flera sladdar till en enda funktion. Som standard BackwardDeleteChar är funktionen bunden till två ackord.

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

Kommentar

Chord-parametern är skiftlägeskänslig. Det innebär att du kan skapa olika bindningar för Ctrl+X och Ctrl+x.

I Windows kan du också använda Alt+?-nyckelackordet för att visa funktionen bunden till nästa nyckelackord som du anger. När du skriver Alt+? visas följande fråga:

what-is-key:

När du trycker på backstegsnyckeln får du följande svar:

Backspace: BackwardDeleteChar - Delete the character before the cursor

Nyckelhanterare på datorer som inte är Windows-datorer

De nyckelkoder som genereras av tangentbordet kan vara olika beroende på vilket operativsystem och terminalprogram du använder.

macOS

Macintosh-tangentbordet har ingen Alt-nyckel som Windows- och Linux-system. I stället har den nyckeln ⌥ Alternativ . macOS använder den här nyckeln på ett annat sätt än Alt-nyckeln i andra system. Du kan dock konfigurera terminal- och iTerm2-program på macOS för att behandla den som en Alt-nyckel .

Konfigurera Terminal-programmet

Öppna fönstret Inställningar från appfältet i Terminal.app. Välj Profiler och välj den profil som du vill konfigurera. Välj fliken Tangentbord för konfigurationsalternativen. Under listan med nycklar väljer du inställningen Använd alternativ som metanyckel . Med den här inställningen kan alternativnyckeln ⌥ fungera som Alt i terminalprogrammet.

Skärmbild av Terminal.app inställningar.

Konfigurera iTerm2-programmet

Öppna fönstret Inställningar från appfältet i iTerm.app. Välj Profiler och välj den profil som du vill konfigurera. Välj fliken Nycklar i konfigurationsalternativen. Välj alternativet Esc+ för både inställningarna Vänster alternativnyckel och Höger alternativnyckel. Med den här inställningen kan alternativnyckeln fungera som Alt i iTerm-programmet.

Skärmbild av iTerm.app inställningar.

Kommentar

De exakta stegen kan variera beroende på versionerna av macOS och terminalprogrammen. Dessa exempel fångades på macOS Ventura 13.2.1 och iTerm2 v3.4.16.

Linux

På Linux-plattformar kan nyckelkoden som genereras skilja sig från andra system. Till exempel:

  • Ctrl+[ är samma som Escape

  • Ctrl+Blanksteg genererar nyckelkoderna för Ctrl+D2. Om du vill mappa en funktion Ctrl-blanksteg+ måste du använda ackordet .Ctrl+D2

    Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
    

ReadKey() Använd metoden för att verifiera de nyckelkoder som genereras av tangentbordet.

Vanliga nyckelhanterare

Här är några vanliga nyckelhanterare som är bundna som standard i Windows. Observera att nyckelbindningen kan skilja sig på andra plattformar än Windows.

Slutför indata genom att välja från en meny med möjliga slutförandevärden.

Standardackord: Ctrl+Spacebar

I följande exempel visas menyn med möjliga slutföranden för kommandon som börjar med 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

Använd piltangenterna för att välja det slutförande du vill ha. Tryck på Retur för att slutföra indata. När du går igenom valen visas hjälpen för det valda kommandot under menyn.

ClearScreen

Den här funktionen rensar skärmen som liknar cls kommandona eller clear .

Standardackord: Ctrl+l

SelectCommandArgument

Väljer nästa argument på kommandoraden.

Standardackord: Alt+a

Du kan ha ett kommando i historiken som du vill köra igen med olika parametervärden. Du kan använda ackordet för att bläddra igenom varje parameter och ändra värdet efter behov.

New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM

Om du trycker på Alt+a väljs nästa parameterargument i tur och ordning: myRGName, eastus, . myVM

GotoBrace

Flyttar markören till matchande klammerparentes.

Standardackord: Ctrl+]

Den här funktionen flyttar markören till den avslutande klammerparentesen som matchar klammerparentesen vid den aktuella markörpositionen på kommandoraden. Funktionen fungerar för hakparenteser ([]), klammerparenteser ({}) och parenteser, (()).

DigitArgument

Starta eller ackumulera ett numeriskt argument som används för att upprepa ett tangenttryckning det angivna antalet gånger.

Standardackord: Alt+0 via Alt+9

Om du till exempel skriver Alt+4#+ anges #### på kommandoraden.

Se även