Freigeben über


Set-PSReadLineKeyHandler

Bindet Schlüssel an benutzerdefinierte oder PSReadLine-Schlüsselhandlerfunktionen.

Syntax

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

Beschreibung

Das Set-PSReadLineKeyHandler Cmdlet passt das Ergebnis an, wenn eine Taste oder Abfolge von Tasten gedrückt wird. Mit benutzerdefinierten Schlüsselbindungen können Sie nahezu alles tun, was in einem PowerShell-Skript möglich ist.

Beispiele

Beispiel 1: Binden der Pfeiltaste an eine Funktion

Mit diesem Befehl wird die NACH-OBEN-TASTE an die HistorySearchBackward-Funktion gebunden. Diese Funktion durchsucht den Befehlsverlauf nach Befehlszeilen, die mit dem aktuellen Inhalt der Befehlszeile beginnen.

Set-PSReadLineKeyHandler -Chord UpArrow -Function HistorySearchBackward

Beispiel 2: Binden eines Schlüssels an einen Skriptblock

In diesem Beispiel wird gezeigt, wie ein einzelner Schlüssel zum Ausführen eines Befehls verwendet werden kann. Der Befehl bindet die Taste Ctrl+b an einen Skriptblock, der die Zeile löscht, das Wort "Build" einfügt und dann die Zeile akzeptiert.

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

Parameter

-BriefDescription

Eine kurze Beschreibung der Schlüsselbindung. Diese Beschreibung wird vom Get-PSReadLineKeyHandler Cmdlet angezeigt.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Chord

Der Schlüssel oder die Abfolge von Schlüsseln, die an eine Funktion oder einen Skriptblock gebunden werden sollen. Verwenden Sie eine einzelne Zeichenfolge, um eine einzelne Bindung anzugeben. Wenn es sich bei der Bindung um eine Sequenz von Schlüsseln handelt, trennen Sie die Schlüssel durch ein Komma. Beispiel: Ctrl+x,Ctrl+l

Buchstabenschlüsselverweise werden mit Kleinbuchstaben definiert. Wenn Sie einen Akkord definieren möchten, der einen Großbuchstaben verwendet, muss der Akkord die UMSCHALTTASTE enthalten. Erstellen Sie Ctrl+x beispielsweise Ctrl+Shift+x unterschiedliche Bindungen.

Dieser Parameter akzeptiert ein Array von Zeichenfolgen. Jede Zeichenfolge ist eine separate Bindung, keine Abfolge von Schlüsseln für eine einzelne Bindung.

Type:String[]
Aliases:Key
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Description

Gibt eine detailliertere Beschreibung der Schlüsselbindung an, die in der Ausgabe des Get-PSReadLineKeyHandler Cmdlets sichtbar ist.

Type:String
Aliases:LongDescription
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Function

Gibt den Namen eines vorhandenen Schlüsselhandlers an, der von PSReadLine bereitgestellt wird. Mit diesem Parameter können Sie vorhandene Schlüsselbindungen neu binden oder einen Handler binden, der derzeit ungebunden ist.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ScriptBlock

Gibt einen Skriptblockwert an, der ausgeführt werden soll, wenn der Chor eingegeben wird. PSReadLine übergibt einen oder zwei Parameter an diesen Skriptblock. Der erste Parameter ist ein ConsoleKeyInfo-Objekt , das die gedrückte Taste darstellt. Das zweite Argument kann je nach Kontext ein beliebiges Objekt sein.

Type:ScriptBlock
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ViMode

Geben Sie an, für welchen Modus die Bindung gilt.

Gültige Werte sind:

  • Insert
  • Command
Type:ViMode
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

None

Sie können keine Objekte an dieses Cmdlet weiterleiten.

Ausgaben

None

Dieses Cmdlet gibt keine Ausgabe zurück.