Korzystanie z procedur obsługi kluczy PSReadLine
Moduł PSReadLine zawiera programy obsługi klawiszy mapujące funkcje PSReadLine na akordy klawiaturowe. Akordy klawiaturowe są sekwencją co najmniej jednego naciśnięcia klawiszy w tym samym czasie.
Na przykład akord Ctrl+Spacja jest kombinacją klawiszy Ctrl i spacji naciśniętych w tym samym czasie. Funkcja PSReadLine to wstępnie zdefiniowana akcja, którą można wykonać w wierszu polecenia. Na przykład MenuComplete
funkcja pozwala wybrać jedną z listy opcji z menu, które uzupełnią dane wejściowe w wierszu polecenia.
Funkcja PSReadLine ma kilka wstępnie zdefiniowanych procedur obsługi kluczy, które są domyślnie powiązane. Możesz również zdefiniować własne niestandardowe procedury obsługi kluczy. Uruchom następujące polecenie, aby wyświetlić listę aktualnie zdefiniowanych procedur obsługi kluczy.
Get-PSReadLineKeyHandler
Możesz również uzyskać listę wszystkich niezwiązanych funkcji PSReadLine , które są dostępne do powiązania z akordem klucza.
Get-PSReadLineKeyHandler -Unbound
Możesz użyć Set-PSReadLineKeyHandler
polecenia cmdlet , aby powiązać funkcję z procedurą obsługi kluczy. Następujące polecenie wiąże MenuComplete
funkcję z akordem Ctrl+Spacja.
Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete
Znajdowanie nazw kluczy i powiązań akordowych
Nazwy kluczy w akord są definiowane przez [System.ConsoleKey]
wyliczenie. Aby uzyskać więcej informacji, zobacz dokumentację System.ConsoleKey . Na przykład nazwa 2 klucza w [System.ConsoleKey]
pliku to D2
, natomiast nazwa 2 klucza na klawiaturze liczbowej to NumPad2
. Możesz użyć [System.Console]::ReadKey()
metody , aby znaleźć nazwę naciśnięty klawisz.
[System.Console]::ReadKey()
W poniższych danych wyjściowych przedstawiono informacje zwrócone przez metodę ReadKey()
dla akordu klawisza Ctrl+2.
KeyChar Key Modifiers
------- --- ---------
D2 Control
W przypadku poleceń cmdlet programu obsługi kluczy PSReadLine ten akord jest reprezentowany jako Ctrl+D2
. Poniższy przykład wiąże ten akord z funkcją.
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
Można powiązać wiele przewodów z jedną funkcją. Domyślnie BackwardDeleteChar
funkcja jest powiązana z dwoma akordami.
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
Uwaga
W parametrze Chord jest uwzględniana wielkość liter. Oznacza to, że można tworzyć różne powiązania dla kombinacji klawiszy Ctrl+X i Ctrl+x.
W systemie Windows możesz również użyć akordu klawisza Alt+?, aby wyświetlić funkcję powiązaną z następnym akordem klawisza wprowadzonym. Po wpiseniu klawisza Alt+ zostanie wyświetlony następujący monit:
what-is-key:
Po naciśnięciu klucza Backspace otrzymasz następującą odpowiedź:
Backspace: BackwardDeleteChar - Delete the character before the cursor
Programy obsługi kluczy na komputerach spoza systemu Windows
Kody klawiszy generowane przez klawiaturę mogą być różne w zależności od używanego systemu operacyjnego i aplikacji terminalowej.
macOS
Klawiatura Macintosh nie ma klawisza Alt, takiego jak systemy Windows i Linux. Zamiast tego ma on klucz ⌥ Opcja . System macOS używa tego klucza inaczej niż klawisz Alt w innych systemach. Można jednak skonfigurować terminal i aplikacje iTerm2 w systemie macOS, aby traktować je jako klawisz Alt .
Konfigurowanie aplikacji terminalowej
Otwórz okno Ustawienia z paska aplikacji w Terminal.app. Wybierz pozycję Profile i wybierz profil, który chcesz skonfigurować. Wybierz kartę Klawiatura opcji konfiguracji. Poniżej listy kluczy wybierz ustawienie Użyj opcji jako metaklucze . To ustawienie umożliwia działanie klawisza Opcji ⌥ jako Alt w aplikacji terminalu.
Konfigurowanie aplikacji iTerm2
Otwórz okno Ustawienia z paska aplikacji w iTerm.app. Wybierz pozycję Profile i wybierz profil, który chcesz skonfigurować. Wybierz kartę Klucze opcji konfiguracji. Wybierz opcję Esc+ dla ustawień klawisza opcji po lewej i prawej opcji. To ustawienie umożliwia użycie klawisza ⌥ Option jako alt w aplikacji iTerm.
Uwaga
Dokładne kroki mogą się różnić w zależności od wersji systemu macOS i aplikacji terminalowych. Te przykłady zostały przechwycone w systemach macOS Ventura 13.2.1 i iTerm2 w wersji 3.4.16.
Linux
Na platformach Linux wygenerowany kod klucza może być inny niż w innych systemach. Na przykład:
Ctrl+[ jest taki sam jak Escape
Ctrl+Spacja generuje kody klawiszy ctrl +D2. Jeśli chcesz mapować funkcję Ctrl+Spacja, musisz użyć akordu .
Ctrl+D2
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
ReadKey()
Użyj metody , aby zweryfikować kody klawiszy wygenerowane przez klawiaturę.
Często używane programy obsługi kluczy
Poniżej przedstawiono kilka często używanych procedur obsługi kluczy, które są domyślnie powiązane w systemie Windows. Należy pamiętać, że powiązanie klucza może być inne na platformach innych niż Windows.
MenuUzupełnianie
Wypełnij dane wejściowe, wybierając z menu możliwych wartości uzupełniania.
Domyślny akord: Ctrl+Spacebar
W poniższym przykładzie przedstawiono menu możliwych uzupełniania poleceń rozpoczynających się od 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
Użyj klawiszy strzałek, aby wybrać żądane ukończenie. Naciśnij klawisz Enter, aby ukończyć dane wejściowe. Podczas przechodzenia przez wybrane opcje pomoc dla wybranego polecenia jest wyświetlana poniżej menu.
ClearScreen
Ta funkcja czyści ekran podobny do cls
poleceń lub clear
.
Domyślny akord: Ctrl+l
Wybierz pozycjęCommandArgument
Wybiera następny argument w wierszu polecenia.
Domyślny akord: Alt+a
Być może masz polecenie w historii, które chcesz uruchomić ponownie z różnymi wartościami parametrów. Możesz użyć akordu, aby przejść przez każdy parametr i zmienić wartość zgodnie z potrzebami.
New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM
Naciśnięcie klawisza Alt+powoduje wybranie następnego argumentu parametru z kolei: myRGName
, , . eastus
myVM
GotoBrace
Przenosi kursor do pasującego nawiasu klamrowego.
Domyślny akord: Ctrl+]
Ta funkcja przenosi kursor do zamykającego nawiasu klamrowego zgodnego z nawiasem klamrowym w bieżącym położeniu kursora w wierszu polecenia. Funkcja działa dla nawiasów kwadratowych ([]
), nawiasów klamrowych ({}
) i nawiasów (()
).
DigitArgument
Rozpocznij lub zakumuluj argument liczbowy, aby powtórzyć naciśnięcie klawisza określoną liczbę razy.
Domyślny akord: Alt+0
przez Alt+9
Na przykład wpisywanie klawisza ####
Alt+4+# powoduje wprowadzenie w wierszu polecenia.