Použití obslužných rutin klíčů PSReadLine
Modul PSReadLine poskytuje klíčové obslužné rutiny, které mapuje funkce PSReadLine na klávesové zkratky. Klávesové zkratky jsou posloupností jednoho nebo více klávesových úhorů, které jsou současně stisknuty.
Mezerník s klávesami Ctrl +je například kombinací kláves Ctrl a mezerníku, které se stisknou současně. Funkce PSReadLine je předdefinovaná akce, kterou lze provést na příkazovém řádku. MenuComplete
Funkce například umožňuje vybrat si ze seznamu možností z nabídky dokončení vstupu na příkazovém řádku.
PSReadLine má několik předdefinovaných obslužných rutin klíčů, které jsou ve výchozím nastavení svázané. Můžete také definovat vlastní obslužné rutiny klíčů. Spuštěním následujícího příkazu zobrazte seznam popisovačů klíčů, které jsou aktuálně definované.
Get-PSReadLineKeyHandler
Můžete také získat seznam všech nevázaných funkcí PSReadLine , které jsou k dispozici pro vazbu s klíčovými chordy.
Get-PSReadLineKeyHandler -Unbound
Pomocí rutiny Set-PSReadLineKeyHandler
můžete svázat funkci s obslužnou rutinou klíče. Následující příkaz sváže MenuComplete
funkci s mezerníkem ctrl+.
Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete
Hledání názvů klíčů a vazeb s chordy
Názvy klíčů v chordu jsou definovány výčtem [System.ConsoleKey]
. Další informace naleznete v dokumentaci System.ConsoleKey . Například název klíče 2 je D2
[System.ConsoleKey]
, zatímco název 2 klávesy na numerické klávesnici je NumPad2
. Pomocí [System.Console]::ReadKey()
metody můžete najít název stisknuté klávesy.
[System.Console]::ReadKey()
Následující výstup ukazuje informace vrácené metodou ReadKey()
pro klávesu Ctrl+2 akord.
KeyChar Key Modifiers
------- --- ---------
D2 Control
Pro rutiny obslužné rutiny klíče PSReadLine je tento chord reprezentován jako Ctrl+D2
. Následující příklad sváže tento chord s funkcí.
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
Více kabelů můžete svázat s jednou funkcí. Ve výchozím nastavení BackwardDeleteChar
je funkce svázaná se dvěma chordy.
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
Poznámka:
Parametr Chord rozlišují malá a velká písmena. To znamená, že můžete vytvořit různé vazby pro Ctrl+X a Ctrl+x.
Ve Windows můžete také použít klávesu Alt+? a zobrazit funkci vázanou na další klávesový chord, který zadáte. Po zadání klávesy Alt+ se zobrazí následující výzva:
what-is-key:
Když stisknete klávesu Backspace , zobrazí se následující odpověď:
Backspace: BackwardDeleteChar - Delete the character before the cursor
Klíčové obslužné rutiny na počítačích s jiným systémem než Windows
Kódy kláves vygenerované klávesnicí se můžou lišit v závislosti na operačním systému a terminálové aplikaci, kterou používáte.
macOS
Klávesnice Macintosh nemá klávesu Alt , jako jsou systémy Windows a Linux. Místo toho má klávesu ⌥ Option . macOS používá tento klíč jinak než klávesu Alt v jiných systémech. V systému macOS však můžete nakonfigurovat terminálové aplikace a aplikace iTerm2 tak, aby se s nimi chovali jako s klávesou Alt .
Konfigurace terminálové aplikace
Otevřete okno Nastavení z panelu aplikace v Terminal.app. Vyberte Profily a zvolte profil, který chcete nakonfigurovat. V možnostech konfigurace vyberte kartu Klávesnice. Pod seznamem klíčů vyberte možnost Použít jako nastavení metaklíče . Toto nastavení umožňuje, aby klávesa ⌥ Option fungovala jako alt v aplikaci Terminál.
Konfigurace aplikace iTerm2
Otevřete okno Nastavení z panelu aplikací v iTerm.app. Vyberte Profily a zvolte profil, který chcete nakonfigurovat. Vyberte kartu Klíče v možnostech konfigurace. Vyberte možnost Esc+ pro nastavení klávesy Šipka vlevo i Klávesa vpravo. Toto nastavení umožňuje, aby klávesa ⌥ Option v aplikaci iTerm fungovala jako Alt .
Poznámka:
Přesný postup se může lišit v závislosti na verzích macOS a terminálových aplikacích. Tyto příklady byly zachyceny v macOS Ventura 13.2.1 a iTerm2 v3.4.16.
Linux
Na linuxových platformách může být kód vygenerovaný klíčem jiný než jiný systém. Příklad:
Ctrl+[ je stejná jako escape
Klávesová zkratka Ctrl D2+ vygeneruje kódy+ kláves. Pokud chcete namapovat funkci Ctrl+Mezerník, musíte použít chord .
Ctrl+D2
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
ReadKey()
Pomocí této metody ověřte kódy kláves vygenerované klávesnicí.
Běžně používané obslužné rutiny klíčů
Tady je několik běžně používaných obslužných rutin klíčů, které jsou ve Windows ve výchozím nastavení svázané. Mějte na paměti, že vazba klíče se může lišit na platformách jiných než Windows.
NabídkaComplete
Dokončete vstup výběrem z nabídky možných hodnot dokončení.
Výchozí chord: Ctrl+Spacebar
Následující příklad ukazuje nabídku možných dokončení příkazů začínajících .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
Pomocí kláves se šipkami vyberte požadované dokončení. Stisknutím klávesy Enter vstup dokončete. Při procházení výběrů se pod nabídkou zobrazí nápověda pro vybraný příkaz.
ClearScreen
Tato funkce vymaže obrazovku podobnou příkazům cls
nebo clear
příkazům.
Výchozí chord: Ctrl+l
SelectCommandArgument
Vybere další argument na příkazovém řádku.
Výchozí chord: Alt+a
V historii můžete mít příkaz, který chcete spustit znovu s různými hodnotami parametrů. Pomocí chordu můžete cyklicky procházet jednotlivé parametry a podle potřeby změnit hodnotu.
New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM
Stisknutím klávesy Alt+ vyberete další argument parametru: myRGName
, eastus
, . myVM
GotoBrace
Přesune kurzor na odpovídající složenou závorku.
Výchozí chord: Ctrl+]
Tato funkce přesune kurzor na pravou složenou závorku, která odpovídá složené závorce na aktuální pozici kurzoru na příkazovém řádku. Funkce funguje pro závorky ([]
), složené závorky ({}
) a závorky (()
).
DigitArgument
Začněte nebo nashromážděte číselný argument, který slouží k opakování stisknutí klávesy zadaného počtu opakování.
Výchozí chord: Alt+0
prostřednictvím Alt+9
Například zadáním Klávesy Alt+4+# zadáte ####
na příkazový řádek.