Skip to main content
Claude Code supporta scorciatoie da tastiera personalizzabili. Eseguire /keybindings per creare o aprire il file di configurazione in ~/.claude/keybindings.json.

File di configurazione

Il file di configurazione delle scorciatoie da tastiera è un oggetto con un array bindings. Ogni blocco specifica un contesto e una mappa di sequenze di tasti per le azioni.
Le modifiche al file keybindings vengono rilevate automaticamente e applicate senza riavviare Claude Code.
Questo esempio associa Ctrl+E per aprire un editor esterno nel contesto della chat e annulla l’associazione di Ctrl+S:

Contesti

Ogni blocco di binding specifica un contesto dove si applicano i binding: Prima della v2.1.205, un contesto Doctor e un’azione doctor:fix esistevano per la schermata diagnostica /doctor.

Azioni disponibili

Le azioni seguono un formato namespace:action, come chat:submit per inviare un messaggio o app:toggleTodos per mostrare l’elenco delle attività. Ogni contesto ha azioni specifiche disponibili.

Azioni dell’app

Azioni disponibili nel contesto Global:

Azioni della cronologia

Azioni per navigare nella cronologia dei comandi:

Azioni della chat

Azioni disponibili nel contesto Chat: *Su Windows senza modalità VT (Node <24.2.0/<22.17.0, Bun <1.2.23), il valore predefinito è Meta+M.

Azioni di completamento automatico

Azioni disponibili nel contesto Autocomplete:

Azioni di conferma

Azioni disponibili nel contesto Confirmation: *Su Windows senza modalità VT (Node <24.2.0/<22.17.0, Bun <1.2.23), il valore predefinito è Meta+M. Prima della v2.1.257, un’azione confirm:toggleExplanation, associata a Ctrl+E per impostazione predefinita, mostrava una spiegazione generata dal modello del comando su prompt di autorizzazione Bash e PowerShell. I dialoghi utilizzano confirm:yes e confirm:no per accettare e annullare anche quando non pongono una domanda sì-o-no. Se associ una lettera semplice come y o n in questo contesto, la lettera agisce anche su dialoghi che non la mostrano mai come tasto. Un dialogo che mostra y e n come suoi tasti legge quelle lettere stesso e non ha bisogno di alcuna associazione. Nella maggior parte dei dialoghi, premere Ctrl+C o Ctrl+D due volte chiude il dialogo invece di uscire da Claude Code. L’hint dopo il primo pressione dice se il secondo pressione chiude il dialogo o esce. Entrambi i tasti sono riservati e non possono essere riassociati. Questo esempio associa y a confirm:yes e n a confirm:no:
Con queste associazioni, y e n continuano a digitare come lettere mentre un campo di testo ha il focus. Prima della v2.1.280, y era anche associato a confirm:yes e n a confirm:no per impostazione predefinita. Se hai creato il tuo keybindings.json con /keybindings prima della v2.1.280, il file elenca entrambe le associazioni e rimangono in vigore finché non elimini quelle due righe.

Azioni di autorizzazione

Azioni disponibili nel contesto Confirmation per i dialoghi di autorizzazione:

Azioni del trascritto

Azioni disponibili nel contesto Transcript: transcript:toggleShowAll si applica solo nel renderer classico; nel rendering a schermo intero, il visualizzatore di trascritti non offre un’opzione di mostra tutto.

Azioni di ricerca nella cronologia

Azioni disponibili nel contesto HistorySearch: I valori predefiniti di historySearch:next, historySearch:accept, historySearch:cancel e historySearch:execute si applicano alla ricerca nella cronologia inline nel renderer classico, che ricerca sempre i prompt da tutti i progetti. historySearch:cycleScope ha effetto solo nel rendering a schermo intero, dove Ctrl+R apre una finestra di dialogo di ricerca e Ctrl+S cicla il suo ambito. I tasti della finestra di dialogo sono fissi e non possono essere riassociati: Invio o Tab posiziona la corrispondenza evidenziata nell’input del prompt e Esc annulla.

Azioni delle attività

Azioni disponibili nel contesto Task:

Azioni del tema

Azioni disponibili nel contesto ThemePicker:

Azioni della guida

Azioni disponibili nel contesto Help:

Azioni delle schede

Azioni disponibili nel contesto Tabs: In una finestra di dialogo con schede, tabs:next e tabs:previous cambiano le schede mentre la riga delle schede ha il focus. In alcuni dialoghi, come /help e /sandbox, i tasti di cambio scheda funzionano anche dall’interno del contenuto della scheda. Su e Giù spostano il focus tra la riga delle schede e il contenuto della scheda, e un elenco nel contenuto risponde ai tasti solo mentre ha il focus.

Azioni degli allegati

Azioni disponibili nel contesto Attachments: Azioni disponibili nel contesto Footer: Mentre un elemento del piè di pagina è selezionato, come una riga nel pannello dell’agente sotto il prompt, Invio lo apre anche quando riassoci Invio nel contesto Chat a chat:queueSubmit o chat:newline. Le associazioni Chat sui tasti che il contesto Footer non associa, come Shift+Tab per chat:cycleMode, continuano a funzionare mentre un elemento è selezionato.

Azioni del selezionatore di messaggi

Nel messaggio elenco del menu di rewind, ti muovi attraverso i messaggi e ne scegli uno con le azioni di selezione e i loro tasti predefiniti. Le tue associazioni Select per quelle azioni si applicano anche lì. Il contesto MessageSelector non ha azioni o associazioni predefinite proprie. Usalo per cambiare un tasto per questo elenco solo, associando un’azione Select come select:accept in un blocco MessageSelector. Questo esempio associa o per scegliere il messaggio evidenziato nel menu di rewind, senza cambiare nessun altro elenco:
Prima della v2.1.283, questo elenco ignorava le associazioni Select e aveva le sue azioni: messageSelector:up, messageSelector:down, messageSelector:top, messageSelector:bottom e messageSelector:select. Se il tuo keybindings.json associa uno di quei nomi, l’associazione continua a funzionare in questo elenco come l’azione Select che fa la stessa cosa. Home e End saltano a entrambe le estremità dell’elenco; prima della v2.1.283, tasti come Shift+K e Shift+J lo facevano per impostazione predefinita.

Azioni diff

Azioni disponibili nel contesto DiffDialog: L’elenco dei file risponde anche alle azioni di selezione, attraverso i loro tasti predefiniti e le tue associazioni Select. select:previous e select:next si spostano al file precedente e successivo, e Invio apre il diff del file selezionato tramite select:accept. Per cambiare uno di quei tasti per l’elenco dei file solo, associa l’azione Select in un blocco DiffDialog. Prima della v2.1.283, l’elenco dei file ignorava le associazioni Select, e Invio apriva il diff del file selezionato tramite un’azione diff:viewDetails separata. Se il tuo keybindings.json associa diff:viewDetails, l’associazione continua a funzionare nell’elenco dei file come select:accept. La vista dettagli diff associa anche i tasti in stile pager alle azioni di scorrimento standard. Queste associazioni fanno parte del contesto DiffDialog e si applicano solo nella vista dettagli; i valori predefiniti del contesto Scroll elencati in Azioni di scorrimento rimangono invariati.

Azioni del pannello diff

Azioni per il pannello diff che /diff apre nel rendering a schermo intero. app:cycleDiffBase è nel contesto DiffPanel, che è attivo mentre il pannello è aperto; gli altri sono Global. Il pannello richiede Claude Code v2.1.260 o successiva.

Azioni del selezionatore di modelli

Azioni disponibili nel contesto ModelPicker:

Azioni del cursore di sforzo

Azioni disponibili nel contesto EffortSlider, il cursore che si apre quando esegui /effort senza argomenti. I tasti Invio ed Escape del cursore non possono essere riassociati.

Azioni di selezione

Azioni disponibili nel contesto Select: Nei pannelli elenco come /skills, /mcp e /tasks, Claude Code applica le tue associazioni select:pageUp, select:pageDown, select:first e select:last. Nella maggior parte degli altri elenchi, come il selezionatore /model, si applicano le tue associazioni select:first e select:last. PagSu e PagGiù scorrono le opzioni in quegli elenchi indipendentemente dalle tue associazioni. Prima della v2.1.280, quegli altri elenchi ignoravano Home, Fine e le tue associazioni select:first e select:last. Prima della v2.1.283, l’elenco degli strumenti /mcp scorreva con tasti PageUp e PageDown fissi indipendentemente dalle tue associazioni.

Azioni dei plugin

Azioni disponibili nel contesto Plugin:

Azioni delle impostazioni

Azioni disponibili nel contesto Settings. Le azioni select:accept e confirm:no vengono riutilizzate dai contesti Select e Confirmation con comportamento specifico delle impostazioni: le modifiche si applicano a ogni impostazione non appena la modifichi, quindi Escape chiude il pannello con le tue modifiche salvate piuttosto che rifiutare.

Azioni degli agenti

Azioni disponibili nel contesto Agents, che si applica nella vista agente, aperta con claude agents. Richiede v2.1.257 o successiva. Mentre la vista agente è aperta, Claude Code utilizza l’associazione Agents per qualsiasi tasto che il contesto Agents associa, e ignora un’associazione Chat o Global sulla stessa chiave. Ad esempio, premere Ctrl+S nella vista agente cambia il raggruppamento della sessione piuttosto che attivare il valore predefinito chat:stash. La scorciatoia dell’editor esterno dell’input di dispatch non è un’azione Agents. La vista agente segue l’associazione chat:externalEditor del contesto Chat, Ctrl+G per impostazione predefinita. Le associazioni si attivano su singoli tasti nella vista agente, quindi l’accordo Ctrl+X Ctrl+E associato a chat:externalEditor non apre l’editor lì.

Azioni vocali

Azioni disponibili nel contesto Chat quando la dettatura vocale è abilitata:

Azioni di scorrimento

Azioni disponibili nel contesto Scroll quando il rendering a schermo intero è abilitato:

Sintassi delle sequenze di tasti

Modificatori

Utilizzare i tasti modificatori con il separatore +:
  • ctrl o control - Tasto Control
  • shift - Tasto Shift
  • alt, opt, option, o meta - Tasto Alt su Windows e Linux, tasto Option su macOS
  • cmd, command, super, o win - Tasto Command su macOS, tasto Windows su Windows, tasto Super su Linux
Il gruppo cmd viene rilevato solo nei terminali che segnalano il modificatore Super, come quelli che supportano il protocollo della tastiera Kitty o la modalità modifyOtherKeys di xterm. La maggior parte dei terminali non lo invia, quindi utilizzare ctrl o meta per i binding che si desidera funzionino ovunque. Ad esempio:

Lettere maiuscole

Claude Code analizza i nomi dei tasti in modo insensibile alle maiuscole, quindi K è lo stesso binding di k e ctrl+K è lo stesso di ctrl+k. Per associare Shift e una lettera, scrivere shift+k.

Layout di tastiera non US

Scrivere i nomi dei tasti dei scorciatoie Ctrl come caratteri latini anche quando il layout di tastiera attivo digita altri caratteri. Il modo in cui Claude Code associa il tasto premuto a un binding dipende dal tipo di layout:
  • Sotto un layout non latino come il cirillico, Claude Code associa i scorciatoie Ctrl in base alla posizione del tasto nel layout US quando il terminale utilizza il protocollo della tastiera Kitty e segnala quella posizione. In tale terminale, con un layout russo attivo, premendo Ctrl e il tasto fisico W si attiva ctrl+w. In un terminale che non segnala la posizione, Claude Code associa quello che il terminale invia per la pressione del tasto: un codice di controllo ASCII attiva il scorciatoio latino, e una pressione del tasto che arriva come carattere cirillico non corrisponde a nessun binding
  • Sotto layout che riorganizzano le lettere latine, come AZERTY, Claude Code associa la lettera che il tasto digita, quindi premendo Ctrl e il tasto etichettato A si attiva ctrl+a

Accordi

Gli accordi sono sequenze di tasti separate da spazi:
Premere ogni sequenza di tasti entro 3 secondi da quella precedente. Se si attende più a lungo, Claude Code annulla l’accordo e mostra un breve avviso che lo comunica.

Tasti speciali

  • escape o esc - Tasto Escape
  • enter o return - Tasto Invio
  • tab - Tasto Tab
  • space - Barra spaziatrice
  • up, down, left, right - Tasti freccia
  • pageup, pagedown - Tasti Pagina Su e Pagina Giù
  • home, end - Tasti Home e Fine
  • backspace, delete - Tasti Canc
  • wheelup, wheeldown - Eventi di scorrimento della rotella del mouse

Annulla l’associazione delle scorciatoie predefinite

Impostare un’azione su null per annullare l’associazione di una scorciatoia predefinita:
Questo funziona anche per i binding degli accordi. Annullare l’associazione di ogni accordo che condivide un prefisso libera quel prefisso per l’uso come binding a tasto singolo. Un accordo in qualsiasi contesto attivo mantiene il suo prefisso riservato, quindi è necessario annullare l’associazione di ogni accordo nel contesto che lo definisce. Claude Code associa questi accordi predefiniti sul prefisso ctrl+x: ctrl+x ctrl+k, ctrl+x ctrl+e, ctrl+x enter, ctrl+x ctrl+a, ctrl+x ctrl+s, e ctrl+x tab in Chat, ctrl+x ctrl+b in Task, e ctrl+x b in DiffPanel. L’accordo ctrl+x enter richiede v2.1.247 o successivo, ctrl+x b, ctrl+x ctrl+a, e ctrl+x tab richiedono v2.1.260 o successivo, e ctrl+x ctrl+s richiede v2.1.275 o successivo. Per reclamare ctrl+x stesso come binding a tasto singolo, annullare l’associazione di tutti loro:
Se annulli l’associazione di alcuni ma non di tutti gli accordi su un prefisso, premere il prefisso entra comunque in modalità di attesa degli accordi per i binding rimanenti.

Scorciatoie riservate

Queste scorciatoie non possono essere riassociate:

Conflitti del terminale

Alcune scorciatoie potrebbero entrare in conflitto con i multiplexer di terminale:

Campi di testo

Se associate un carattere, una cifra o uno spazio semplice, potete comunque digitare quel carattere in un campo di testo all’interno di una finestra di dialogo o di un pannello. Uno di questi campi è la risposta Other a una domanda che Claude pone. Mentre il campo ha il focus, un tasto stampabile che premete senza Ctrl, Alt o Cmd va al campo, e Claude Code non lo confronta con le vostre associazioni. Questi tasti eseguono comunque le loro associazioni mentre il campo ha il focus:
  • Tasti che non digitano un carattere, come Enter, Escape, Tab e i tasti freccia
  • Qualsiasi tasto premuto con Ctrl, Alt o Cmd
  • Il secondo tasto di un accordo già in corso
Al prompt principale, Claude Code confronta ogni tasto rispetto ai contesti attivi, come Chat, e digita il tasto solo quando nessuna associazione lo cattura.

Interazione con la modalità Vim

Quando la modalità vim è abilitata tramite /config → Editor mode, le scorciatoie da tastiera e la modalità vim operano indipendentemente:
  • Modalità Vim gestisce l’input a livello di input di testo (movimento del cursore, modalità, movimenti)
  • Scorciatoie da tastiera gestiscono le azioni a livello di componente (attiva/disattiva attività, invia, ecc.)
  • Il tasto Escape in modalità vim passa da INSERT a NORMAL; non attiva chat:cancel
  • La maggior parte delle scorciatoie Ctrl+tasto passano attraverso la modalità vim al sistema di scorciatoie da tastiera
  • I tasti Vim non sono rimappabili tramite il file delle scorciatoie da tastiera. Per mappare una sequenza in modalità INSERT a due tasti come jj su Escape, utilizzare l’impostazione vimInsertModeRemaps
  • In modalità vim NORMAL, ? mostra il menu della guida (comportamento vim)
  • In modalità vim NORMAL, / apre la ricerca nella cronologia, lo stesso di Ctrl+R in modalità standard

Convalida

Claude Code convalida i tuoi scorciatoie da tastiera e scrive un avviso nel log di debug per:
  • Errori di analisi (JSON non valido o struttura non valida)
  • Modificatori scritti male, come ctl+k. Claude Code elimina la parte che non riconosce e applica il binding al tasto rimanente, k in questo esempio.
  • Nomi di contesto non validi
  • Valori di azione non validi, come un’azione che non è una stringa o null
  • Nomi di azione sconosciuti, come un errore di battitura di un’azione registrata. Claude Code salta il binding e mantiene in vigore qualsiasi binding predefinito per quel tasto.
  • Conflitti di scorciatoie riservate
  • Binding duplicati nello stesso contesto
Avvia Claude Code con --debug per visualizzare i dettagli.