Udostępnij za pośrednictwem


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.

Zrzut ekranu przedstawiający ustawienia Terminal.app.

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.

Zrzut ekranu przedstawiający ustawienia iTerm.app.

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.

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, , . eastusmyVM

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.

Zobacz też