Condividi tramite


Set-PSReadLineKeyHandler

Associa le chiavi alle funzioni del gestore chiavi definite dall'utente o PSReadLine.

Sintassi

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

Descrizione

Il Set-PSReadLineKeyHandler cmdlet personalizza il risultato quando viene premuto un tasto o una sequenza di tasti. Con le associazioni di chiavi definite dall'utente, è possibile eseguire quasi tutte le operazioni possibili dall'interno di uno script di PowerShell.

Esempio

Esempio 1: Associare il tasto freccia a una funzione

Questo comando associa il tasto freccia su alla funzione HistorySearchBackward . Questa funzione cerca nella cronologia dei comandi le righe di comando che iniziano con il contenuto corrente della riga di comando.

Set-PSReadLineKeyHandler -Chord UpArrow -Function HistorySearchBackward

Esempio 2: Associare una chiave a un blocco di script

In questo esempio viene illustrato come usare una singola chiave per eseguire un comando. Il comando associa la chiave Ctrl+b a un blocco di script che cancella la riga, inserisce la parola "build" e quindi accetta la riga.

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

Parametri

-BriefDescription

Breve descrizione dell'associazione di tasti. Questa descrizione viene visualizzata dal Get-PSReadLineKeyHandler cmdlet .

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

-Chord

Chiave o sequenza di chiavi da associare a una funzione o a un blocco di script. Usare una singola stringa per specificare un'unica associazione. Se l'associazione è una sequenza di tasti, separare le chiavi in base a una virgola. Ad esempio: Ctrl+x,Ctrl+l

I riferimenti alle chiavi di lettera vengono definiti usando lettere minuscole. Se si desidera definire un accordo che usa una lettera maiuscola, il accordo deve includere il tasto MAIUSC . Ad esempio, Ctrl+Shift+x e Ctrl+x creare associazioni diverse.

Questo parametro accetta una matrice di stringhe. Ogni stringa è un'associazione separata, non una sequenza di chiavi per un'unica associazione.

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

-Description

Specifica una descrizione più dettagliata dell'associazione di tasti visibile nell'output del Get-PSReadLineKeyHandler cmdlet.

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

-Function

Specifica il nome di un gestore di chiavi esistente fornito da PSReadLine. Questo parametro consente di riassociare le associazioni di tasti esistenti o di associare un gestore attualmente non associato.

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

-ScriptBlock

Specifica un valore del blocco di script da eseguire quando viene immesso l'accordo. PSReadLine passa uno o due parametri a questo blocco di script. Il primo parametro è un oggetto ConsoleKeyInfo che rappresenta il tasto premuto. Il secondo argomento può essere qualsiasi oggetto a seconda del contesto.

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

-ViMode

Specificare la modalità vi a cui si applica l'associazione.

I valori validi sono:

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

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.