Condividi tramite


Uso dei gestori di chiavi PSReadLine

Il modulo PSReadLine fornisce gestori di tasti che eseguono il mapping delle funzioni PSReadLine agli accordi da tastiera. Gli accordi della tastiera sono una sequenza di una o più sequenze di tasti premuti contemporaneamente. Ad esempio, la combinazione dei tasti CTRL+barra spaziatrice è la combinazione dei tasti CTRL e barra spaziatrice premuti contemporaneamente. Una funzione PSReadLine è un'azione predefinita che può essere eseguita su una riga di comando. Ad esempio, la MenuComplete funzione consente di scegliere da un elenco di opzioni da un menu completare l'input nella riga di comando.

PSReadLine include diversi gestori di chiavi predefiniti associati per impostazione predefinita. È anche possibile definire gestori di chiavi personalizzati. Eseguire il comando seguente per elencare i gestori di tasti attualmente definiti.

Get-PSReadLineKeyHandler

È anche possibile ottenere un elenco di tutte le funzioni PSReadLine non associate che sono disponibili per essere associate a un accordo chiave.

Get-PSReadLineKeyHandler -Unbound

È possibile usare il Set-PSReadLineKeyHandler cmdlet per associare una funzione a un gestore di chiavi. Il comando seguente associa la MenuComplete funzione alla combinazione dei tasti Ctrl+Spacebar.

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

Ricerca di nomi chiave e associazioni di accordi

I nomi delle chiavi nell'accordo corrispondono ai nomi nell'enumerazione [System.ConsoleKey] . Per altre informazioni, vedere la documentazione di System.ConsoleKey . Ad esempio, il nome del tasto 2 in [System.ConsoleKey] è D2, mentre il nome del tasto 2 nel tastierino numerico è NumPad2. È possibile usare il [System.Console]::ReadKey() metodo per trovare il nome del tasto premuto.

[System.Console]::ReadKey()

L'output seguente mostra le informazioni restituite dal ReadKey() metodo per la combinazione di tasti CTRL+2.

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

Per i cmdlet del gestore delle chiavi PSReadLine , questo accordo viene rappresentato come Ctrl+D2. L'esempio seguente associa questo accordo a una funzione.

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

È possibile associare più cavi a una singola funzione. Per impostazione predefinita, la BackwardDeleteChar funzione è associata a due accordi.

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

Annotazioni

Il parametro Chord fa distinzione tra maiuscole e minuscole. Ciò significa che è possibile creare associazioni diverse per CTRL+ e CTRL+X.

In Windows è anche possibile usare il tasto ALT+? per visualizzare la funzione associata al tasto successivo che si immette. Quando si digita ALT+?, viene visualizzato il prompt seguente:

what-is-key:

Quando si preme il tasto Backspace , si ottiene la risposta seguente:

Backspace: BackwardDeleteChar - Delete the character before the cursor

Gestori delle chiavi nei computer non Windows

I codici dei tasti generati dalla tastiera possono essere diversi a seconda del sistema operativo e dell'applicazione terminale in uso.

macOS

La tastiera Macintosh non ha un tasto ALT come i sistemi Windows e Linux. Ha invece il tasto di opzione ⌥ . macOS usa questa chiave in modo diverso rispetto al tasto ALT in altri sistemi. Tuttavia, è possibile configurare il terminale e le applicazioni iTerm2 in macOS per considerarlo come un tasto ALT .

Configurazione dell'applicazione Terminale

Aprire la finestra Impostazioni dalla barra dell'app in Terminal.app. Selezionare Profili e scegliere il profilo da configurare. Selezionare la scheda Tastiera delle opzioni di configurazione. Sotto l'elenco di chiavi, selezionare l'impostazione Usa Opzione come Meta Key. Questa impostazione consente al tasto di opzione ⌥ di agire come ALT nell'applicazione Terminale.

Screenshot delle impostazioni di Terminal.app.

Configurazione dell'applicazione iTerm2

Aprire la finestra Impostazioni dalla barra dell'app in iTerm.app. Selezionare Profili e scegliere il profilo da configurare. Selezionare la scheda Chiavi delle opzioni di configurazione. Selezionare l'opzione ESC+ per le impostazioni Chiave opzione sinistra e Tasto opzione destra . Questa impostazione consente al tasto di opzione ⌥ di fungere da ALT nell'applicazione iTerm.

Screenshot delle impostazioni di iTerm.app.

Annotazioni

I passaggi esatti variano a seconda delle versioni di macOS e delle applicazioni del terminale. Questi esempi sono stati acquisiti in macOS Ventura 13.2.1 e iTerm2 v3.4.16.

Linux

Nelle piattaforme Linux il codice chiave generato può essere diverso da altri sistemi. Per esempio:

  • Ctrl+[ è uguale a Escape

  • Ctrl+La barra spaziatrice genera i codici dei tasti per CTRL+D2. Se si desidera eseguire il mapping di una funzione allabarra spaziatrice +, è necessario usare l'accordo Ctrl+D2.

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

Usare il ReadKey() metodo per verificare i codici dei tasti generati dalla tastiera.

Gestori di chiavi di uso comune

Ecco alcuni gestori di chiavi comunemente usati associati per impostazione predefinita in Windows. Le combinazioni di tasti possono variare su piattaforme diverse da Windows.

Completare l'input selezionando da un menu di possibili valori di completamento.

Accordo predefinito: Ctrl+Spacebar

Nell'esempio seguente viene illustrato il menu dei possibili completamenti per i comandi che iniziano con select.

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

Usare i tasti di direzione per selezionare il completamento desiderato. Premere INVIO per completare l'input. Mentre ti sposti tra le opzioni nel menu, la guida per il comando selezionato viene visualizzata sotto.

SchermoChiaro

Questa funzione cancella la schermata in modo simile ai comandi cls o clear.

Accordo predefinito: Ctrl+l

SelezionareCommandArgument

Seleziona l'argomento successivo nella riga di comando.

Accordo predefinito: Alt+a

Potrebbe essere presente un comando nella cronologia che si vuole eseguire di nuovo con valori di parametro diversi. È possibile usare l'accordo per scorrere ogni parametro e modificare il valore in base alle esigenze.

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

Premendo Alt+si seleziona il parametro successivo: myRGName, eastus, myVM.

GotoBrace

Sposta il cursore sulla parentesi graffa abbinata.

Accordo predefinito: Ctrl+]

La GotoBrace funzione sposta il cursore sulla parentesi graffa di chiusura corrispondente alla parentesi graffa aperta nella posizione corrente del cursore sulla riga di comando. La funzione funziona per parentesi quadre ([]), parentesi graffe ({}) e parentesi tonde (()).

DigitArgument

Avviare o accumulare un argomento numerico usato per ripetere una sequenza di tasti per il numero di volte specificato.

Accordo predefinito: Alt+0 through Alt+9

Ad esempio, digitando ALT+4+# viene immesso #### nella riga di comando.

Vedere anche