Udostępnij za pośrednictwem


Set-PSReadLineKeyHandler

Wiąże klucze z funkcjami obsługi kluczy zdefiniowanymi przez użytkownika lub PSReadLine.

Składnia

Set-PSReadLineKeyHandler
   [-ScriptBlock] <ScriptBlock>
   [-BriefDescription <String>]
   [-Description <String>]
   [-Chord] <String[]>
   [-ViMode <ViMode>]
   [<CommonParameters>]
Set-PSReadLineKeyHandler
   [-Chord] <String[]>
   [-ViMode <ViMode>]
   [-Function] <String>
   [<CommonParameters>]

Opis

Polecenie Set-PSReadLineKeyHandler cmdlet dostosowuje wynik po naciśnięciu lub sekwencji. W przypadku powiązań kluczy zdefiniowanych przez użytkownika można wykonać niemal wszystko, co jest możliwe w skryscie programu PowerShell.

Przykłady

Przykład 1. Powiązanie strzałki z funkcją

To polecenie wiąże strzałki w górę z funkcją HistorySearchBackward . Ta funkcja wyszukuje historię poleceń wierszy polecenia rozpoczynających się od bieżącej zawartości wiersza polecenia.

Set-PSReadLineKeyHandler -Chord UpArrow -Function HistorySearchBackward

Przykład 2. Powiązanie klucza z blokiem skryptu

W tym przykładzie pokazano, jak można użyć pojedynczego klucza do uruchomienia polecenia. Polecenie wiąże klucz Ctrl+b z blokiem skryptu, który czyści wiersz, wstawia słowo "build", a następnie akceptuje wiersz.

Set-PSReadLineKeyHandler -Chord Ctrl+b -ScriptBlock {
    [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
    [Microsoft.PowerShell.PSConsoleReadLine]::Insert('build')
    [Microsoft.PowerShell.PSConsoleReadLine]::AcceptLine()
}

Parametry

-BriefDescription

Krótki opis powiązania klucza. Ten opis jest wyświetlany przez Get-PSReadLineKeyHandler polecenie cmdlet .

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Chord

Klucz lub sekwencja kluczy, które mają być powiązane z funkcją lub blokiem skryptu. Użyj jednego ciągu, aby określić pojedyncze powiązanie. Jeśli powiązanie jest sekwencją kluczy, należy oddzielić klucze przecinkami. Na przykład: Ctrl+x,Ctrl+l.

Odwołania do klucza litery są definiowane przy użyciu małych liter. Jeśli chcesz zdefiniować akord, który używa wielkiej litery, akord musi zawierać Shift . Na przykład Ctrl+Shift+x i Ctrl+x utwórz różne powiązania.

Ten parametr akceptuje tablicę ciągów. Każdy ciąg jest oddzielnym powiązaniem, a nie sekwencją kluczy dla pojedynczego powiązania.

Typ:String[]
Aliasy:Key
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Description

Określa bardziej szczegółowy opis powiązania klucza widocznego w danych wyjściowych Get-PSReadLineKeyHandler polecenia cmdlet.

Typ:String
Aliasy:LongDescription
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Function

Określa nazwę istniejącej procedury obsługi kluczy dostarczonej przez program PSReadLine. Ten parametr umożliwia ponowne powiązanie istniejących powiązań kluczy lub powiązanie procedury obsługi, która jest obecnie niezwiązana.

Typ:String
Position:1
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ScriptBlock

Określa wartość bloku skryptu do uruchomienia po wprowadzeniu akordu. Funkcja PSReadLine przekazuje jeden lub dwa parametry do tego bloku skryptu. Pierwszy parametr to obiekt ConsoleKeyInfo reprezentujący naciśnięty. Drugi argument może być dowolnym obiektem w zależności od kontekstu.

Typ:ScriptBlock
Position:1
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ViMode

Określ tryb vi, do którego ma zastosowanie powiązanie.

Prawidłowe wartości to:

  • Insert
  • Command
Typ:ViMode
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Nie można potokować obiektów do tego polecenia cmdlet.

Dane wyjściowe

None

To polecenie cmdlet nie zwraca żadnych danych wyjściowych.