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 cmdlet Set-PSReadLineKeyHandler 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 cmdlet Get-PSReadLineKeyHandler.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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 utilizza una lettera maiuscola, l'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.

Tipo:String[]
Alias:Key
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Description

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

Tipo:String
Alias:LongDescription
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:String
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:ScriptBlock
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ViMode

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

I valori validi sono:

  • Insert
  • Command
Tipo:ViMode
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

None

Questo cmdlet non restituisce alcun output.