Freigeben über


Verwenden von PSReadLine-Tastenhandlern

Das PSReadLine-Modul stellt Schlüsselhandler bereit, die PSReadLine-Funktionen Tastaturakkords zuordnen. Tastaturakkorde sind eine Sequenz von einer oder mehreren Tastenanschlägen, die gleichzeitig gedrückt werden. Beispielsweise ist die Tastenkombination STRG+LEERTASTE die Kombination der STRG- und LEERTASTE-Tasten, die gleichzeitig gedrückt werden. Eine PSReadLine-Funktion ist eine vordefinierte Aktion, die in einer Befehlszeile ausgeführt werden kann. Zum Beispiel ermöglicht die MenuComplete-Funktion Ihnen, aus einer Liste von Optionen in einem Menü auszuwählen und die Eingabe in der Befehlszeile abzuschließen.

PSReadLine verfügt über mehrere vordefinierte Schlüsselhandler, die standardmäßig gebunden sind. Sie können auch eigene benutzerdefinierte Schlüsselhandler definieren. Führen Sie den folgenden Befehl aus, um die derzeit definierten Schlüsselhandler auflisten.

Get-PSReadLineKeyHandler

Sie können auch eine Liste aller ungebundenen PSReadLine-Funktionen abrufen, die für die Bindung an einen Tastenakkord verfügbar sind.

Get-PSReadLineKeyHandler -Unbound

Sie können das Set-PSReadLineKeyHandler Cmdlet verwenden, um eine Funktion an einen Schlüsselhandler zu binden. Mit dem folgenden Befehl wird die MenuComplete Funktion an die Tastenkombination Strg+Leertaste gebunden.

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

Suchen nach Schlüsselnamen und Akkordbindungen

Die Namen der Tasten im Akkord entsprechen den Namen in der [System.ConsoleKey] Aufzählung. Weitere Informationen finden Sie in der System.ConsoleKey-Dokumentation . Beispielsweise lautet der Name der [System.ConsoleKey] in D2 , während der Name der 2-Taste auf der Zehnertastatur lautetNumPad2. Sie können die [System.Console]::ReadKey() Methode verwenden, um den Namen der taste zu finden, die Sie gedrückt haben.

[System.Console]::ReadKey()

Die folgende Ausgabe zeigt die informationen, die von der ReadKey() Methode für den Strg+ 2-Tastenakkord zurückgegeben werden.

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

Für die Cmdlets des PSReadLine-Schlüsselhandlers wird dieser Akkord als Ctrl+D2dargestellt. Im folgenden Beispiel wird dieser Akkord an eine Funktion gebunden.

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

Sie können mehrere Kabel an eine einzelne Funktion binden. Standardmäßig ist die BackwardDeleteChar Funktion an zwei Akkorden gebunden.

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

Hinweis

Bei dem Parameter "Chord " wird die Groß-/Kleinschreibung beachtet. Das heißt, Sie können unterschiedliche Bindungen für STRG+X und STRG+X erstellen.

Unter Windows können Sie auch die Alt+-Taste verwenden, um die Funktion anzuzeigen, die mit der nächsten von Ihnen eingegebenen Tastenfolge verbunden ist. Wenn Sie Alt+ eingeben, wird die folgende Eingabeaufforderung angezeigt:

what-is-key:

Wenn Sie die RÜCKTASTE drücken, erhalten Sie die folgende Antwort:

Backspace: BackwardDeleteChar - Delete the character before the cursor

Schlüsselhandler auf Nicht-Windows-Computern

Die von der Tastatur generierten Tastencodes können je nach verwendeter Betriebssystem- und Terminalanwendung unterschiedlich sein.

macOS

Die Macintosh-Tastatur verfügt nicht über eine ALT-TASTE wie Windows- und Linux-Systeme. Stattdessen verfügt sie über die ⌥ Optionstaste. macOS verwendet diesen Schlüssel anders als die ALT-TASTE auf anderen Systemen. Sie können jedoch die Terminal- und iTerm2-Anwendungen unter macOS so konfigurieren, dass sie als ALT-TASTE behandelt werden.

Konfigurieren der Terminalanwendung

Öffnen Sie das Fenster "Einstellungen" in der App-Leiste in Terminal.app. Wählen Sie "Profile" und dann das Profil aus, das Sie konfigurieren möchten. Wählen Sie die Registerkarte "Tastatur " der Konfigurationsoptionen aus. Wählen Sie unter der Liste der Schlüssel die Einstellung "Option als Metaschlüssel verwenden " aus. Mit dieser Einstellung kann die ⌥ Option in der Terminalanwendung als Alt dienen.

Screenshot der einstellungen für Terminal.app.

Konfigurieren der iTerm2-Anwendung

Öffnen Sie das Fenster "Einstellungen" in der App-Leiste in iTerm.app. Wählen Sie "Profile" und dann das Profil aus, das Sie konfigurieren möchten. Wählen Sie die Registerkarte "Schlüssel " der Konfigurationsoptionen aus. Wählen Sie die ESC+-Option sowohl für die Einstellungen der Linken Wahltaste als auch der Rechten Wahltaste aus. Diese Einstellung ermöglicht, dass die Taste ⌥ Option in der iTerm-App als Alt benutzt wird.

Screenshot der iTerm.app-Einstellungen.

Hinweis

Die genauen Schritte variieren je nach den Versionen von macOS und den Terminalanwendungen. Diese Beispiele wurden auf macOS Ventura 13.2.1 und iTerm2 v3.4.16 erfasst.

Linux

Auf Linux-Plattformen kann der generierte Schlüsselcode anders als andere Systeme sein. Beispiel:

  • Strg+[ ist identisch mit Escape

  • Strg+Die LEERTASTE generiert die Tastencodes für STRG+D2. Wenn Sie eine Funktion der+ zuordnen möchten, müssen Sie den Akkord Ctrl+D2verwenden.

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

Verwenden Sie die ReadKey() Methode, um die von der Tastatur generierten Tastencodes zu überprüfen.

Häufig verwendete Schlüsselhandler

Nachfolgend sind einige häufig verwendete Schlüsselhandler aufgeführt, die standardmäßig unter Windows gebunden sind. Keybindings können auf Nicht-Windows-Plattformen unterschiedlich sein.

Füllen Sie die Eingabe aus, indem Sie in einem Menü mit möglichen Abschlusswerten auswählen.

Standardakkord: Ctrl+Spacebar

Das folgende Beispiel zeigt Ihnen das Menü der möglichen Vervollständigungen für Befehle, die mit select beginnen.

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

Verwenden Sie die Pfeiltasten, um den gewünschten Abschluss auszuwählen. Drücken Sie die EINGABETASTE , um die Eingabe abzuschließen. Während Sie durch die Auswahl navigieren, wird die Hilfe für den ausgewählten Befehl unterhalb des Menüs angezeigt.

Bildschirm löschen

Diese Funktion löscht den Bildschirm ähnlich wie der cls-Befehl oder der clear-Befehl.

Standardakkord: Ctrl+l

AuswahlBefehlArgument

Wählt das nächste Argument in der Befehlszeile aus.

Standardakkord: Alt+a

Möglicherweise haben Sie einen Befehl in Ihrer Verlaufshistorie, den Sie erneut mit unterschiedlichen Parameterwerten ausführen möchten. Sie können den Akkord verwenden, um jeden Parameter zu durchlaufen und den Wert nach Bedarf zu ändern.

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

Durch Drücken von Alt+a werden die nächsten Parameterargumente nacheinander markiert: myRGName, eastus, myVM.

GotoBrace

Verschiebt den Cursor zur passenden Klammer.

Standardakkord: Ctrl+]

Die GotoBrace-Funktion bewegt den Cursor zur schließenden Klammer, die der Klammer an der aktuellen Cursorposition in der Befehlszeile entspricht. Die Funktion funktioniert für eckige Klammern ([]), geschweifte Klammern ({}) und runde Klammern (()).

Zahlenargument

Starten oder sammeln Sie ein numerisches Argument, um einen Tastenanschlag die angegebene Anzahl von Malen zu wiederholen.

Standardakkord: Alt+0 bis Alt+9

Bei Eingabe von Alt+4+# wird #### in der Befehlszeile eingegeben.

Siehe auch