Pular para o conteúdo principal
Claude Code suporta atalhos de teclado personalizáveis. Execute /keybindings para criar ou abrir seu arquivo de configuração em ~/.claude/keybindings.json.

Arquivo de configuração

O arquivo de configuração de atalhos de teclado é um objeto com um array bindings. Cada bloco especifica um contexto e um mapa de combinações de teclas para ações.
As alterações no arquivo de atalhos de teclado são detectadas automaticamente e aplicadas sem reiniciar o Claude Code.
Este exemplo vincula Ctrl+E para abrir um editor externo no contexto do chat e remove o vínculo de Ctrl+S:

Contextos

Cada bloco de vinculação especifica um contexto onde as vinculações se aplicam: Antes da v2.1.205, um contexto Doctor e uma ação doctor:fix existiam para a tela de diagnósticos /doctor.

Ações disponíveis

As ações seguem um formato namespace:action, como chat:submit para enviar uma mensagem ou app:toggleTodos para mostrar a lista de tarefas. Cada contexto tem ações específicas disponíveis.

Ações do aplicativo

Ações disponíveis no contexto Global:

Ações de histórico

Ações para navegar no histórico de comandos:

Ações de chat

Ações disponíveis no contexto Chat: *No Windows sem modo VT (Node <24.2.0/<22.17.0, Bun <1.2.23), o padrão é Meta+M.

Ações de autocompletar

Ações disponíveis no contexto Autocomplete:

Ações de confirmação

Ações disponíveis no contexto Confirmation: *No Windows sem modo VT (Node <24.2.0/<22.17.0, Bun <1.2.23), o padrão é Meta+M. Antes da v2.1.257, uma ação confirm:toggleExplanation, vinculada a Ctrl+E por padrão, mostrava uma explicação gerada por modelo do comando em prompts de permissão Bash e PowerShell. Os diálogos usam confirm:yes e confirm:no para aceitar e cancelar mesmo quando não fazem uma pergunta sim-ou-não. Se você vincular uma letra simples como y ou n neste contexto, a letra também atua em diálogos que nunca a mostram como uma chave. Um diálogo que mostra y e n como suas chaves lê essas letras em si e não precisa de vinculação. Em muitos diálogos, pressionar Ctrl+C ou Ctrl+D duas vezes fecha o diálogo em vez de sair do Claude Code. A dica após o primeiro pressionamento diz se o segundo pressionamento fecha o diálogo ou sai. Ambas as chaves são reservadas e não podem ser rebindadas. Este exemplo vincula y a confirm:yes e n a confirm:no:
Com essas vinculações, y e n ainda digitam como letras enquanto um campo de texto tem foco. Antes da v2.1.280, y também estava vinculado a confirm:yes e n a confirm:no por padrão. Se você criou seu keybindings.json com /keybindings antes da v2.1.280, o arquivo lista ambas as vinculações e elas permanecem em vigor até que você delete essas duas linhas.

Ações de permissão

Ações disponíveis no contexto Confirmation para diálogos de permissão:

Ações de transcrição

Ações disponíveis no contexto Transcript: transcript:toggleShowAll se aplica apenas no renderizador clássico; na renderização em tela cheia, o visualizador de transcrição não oferece um toggle de mostrar tudo.

Ações de busca de histórico

Ações disponíveis no contexto HistorySearch: Os padrões historySearch:next, historySearch:accept, historySearch:cancel e historySearch:execute se aplicam à busca de histórico inline no renderizador clássico, que sempre busca prompts de todos os projetos. historySearch:cycleScope entra em vigor apenas na renderização em tela cheia, onde Ctrl+R abre um diálogo de busca em vez disso e Ctrl+S cicla seu escopo. As outras teclas do diálogo são fixas e não podem ser rebindadas: Enter ou Tab coloca a correspondência destacada na entrada do prompt e Esc cancela.

Ações de tarefa

Ações disponíveis no contexto Task:

Ações de tema

Ações disponíveis no contexto ThemePicker:

Ações de ajuda

Ações disponíveis no contexto Help:

Ações de abas

Ações disponíveis no contexto Tabs: Em um diálogo com abas, tabs:next e tabs:previous alternam abas enquanto a linha de abas tem foco. Em alguns diálogos, como /help e /sandbox, as teclas de alternância de abas também funcionam de dentro do conteúdo da aba. Up e Down movem o foco entre a linha de abas e o conteúdo da aba, e uma lista no conteúdo responde às chaves apenas enquanto tem foco.

Ações de anexos

Ações disponíveis no contexto Attachments: Ações disponíveis no contexto Footer: Enquanto um item do rodapé está selecionado, como uma linha no painel do agente abaixo do prompt, Enter o abre mesmo quando você rebinda Enter no contexto Chat para chat:queueSubmit ou chat:newline. As vinculações Chat em teclas que o contexto Footer não vincula, como Shift+Tab para chat:cycleMode, continuam funcionando enquanto um item está selecionado.

Ações do seletor de mensagem

Na lista de mensagens do menu de retrocesso, você se move através de mensagens e escolhe uma com as ações de Seleção e suas chaves padrão. Suas vinculações Select para essas ações também se aplicam lá. O contexto MessageSelector não tem ações ou vinculações padrão próprias. Use-o para alterar uma chave apenas para esta lista, vinculando uma ação Select como select:accept em um bloco MessageSelector. Este exemplo vincula o para escolher a mensagem destacada no menu de retrocesso, sem alterar nenhuma outra lista:
Antes da v2.1.283, esta lista ignorava vinculações Select e tinha suas próprias ações: messageSelector:up, messageSelector:down, messageSelector:top, messageSelector:bottom e messageSelector:select. Se seu keybindings.json vincula um desses nomes, a vinculação continua funcionando nesta lista como a ação Select que faz a mesma coisa. Home e End pulam para qualquer extremidade da lista; antes da v2.1.283, teclas como Shift+K e Shift+J faziam isso por padrão.

Ações de diff

Essas ações alcançam apenas o visualizador de diff anterior do Claude Code, que /diff abre fora da renderização em tela cheia depois que você desativa o mod cc-plugin-diff em /plugin. Enquanto esse mod está ativado, /diff abre o diálogo de diff em vez disso. Ações disponíveis no contexto DiffDialog: A lista de arquivos também responde às ações de Seleção, através de suas chaves padrão e suas vinculações Select. select:previous e select:next movem para o arquivo anterior e próximo, e Enter abre o diff do arquivo selecionado através de select:accept. Para alterar uma dessas chaves apenas para a lista de arquivos, vincule a ação Select em um bloco DiffDialog. Antes da v2.1.283, a lista de arquivos ignorava vinculações Select, e Enter abria o diff do arquivo selecionado através de uma ação diff:viewDetails separada. Se seu keybindings.json vincula diff:viewDetails, a vinculação continua funcionando na lista de arquivos como select:accept. A visualização de detalhes do diff também vincula atalhos de teclado no estilo pager às ações de rolagem padrão. Essas vinculações fazem parte do contexto DiffDialog e se aplicam apenas na visualização de detalhes; os padrões do contexto Scroll listados em Ações de rolagem permanecem inalterados.

Ações do painel de diff

Ações para o painel de diff que /diff abre na renderização em tela cheia. app:cycleDiffBase está no contexto DiffPanel, que está ativo enquanto o painel está aberto; os outros estão em Global. O mod cc-plugin-diff integrado desenha este painel e trata app:cycleDiffBase, app:diffFileListUp e app:diffFileListDown. app:toggleReplTab, app:toggleDiffNoiseFilter e app:toggleDiffPreSession alcançam apenas o painel anterior do Claude Code, que /diff abre depois que você desativa cc-plugin-diff em /plugin.

Ações do seletor de modelo

Ações disponíveis no contexto ModelPicker:

Ações do controle deslizante de esforço

Ações disponíveis no contexto EffortSlider, o controle deslizante que abre quando você executa /effort sem argumentos. As teclas Enter e Escape do controle deslizante não podem ser rebindadas.

Ações de seleção

Ações disponíveis no contexto Select: Claude Code aplica suas vinculações select:pageUp, select:pageDown, select:first e select:last em painéis de lista como /skills, /mcp e /tasks. Na maioria das outras listas, como o seletor /model, suas vinculações select:first e select:last se aplicam. PageUp e PageDown pagina através das opções nessas listas independentemente de suas vinculações. Antes da v2.1.280, essas outras listas ignoravam Home, End e suas vinculações select:first e select:last. Antes da v2.1.283, a lista de ferramentas /mcp paginava com teclas PageUp e PageDown fixas independentemente de suas vinculações.

Ações de plugin

Ações disponíveis no contexto Plugin:

Ações acima do prompt

Ações para a faixa acima do prompt, a área compartilhada onde mods desenham botões, campos de entrada e seletores. abovePrompt:toggle e abovePrompt:focus se aplicam no contexto Chat. As outras ações se aplicam no contexto do que quer que tenha o foco do teclado na faixa ou em um painel. No contexto AbovePrompt, Right e Left também executam abovePrompt:next e abovePrompt:previous por padrão, e Space também executa abovePrompt:press. O contexto AbovePrompt também vincula Up, Down, PageUp, PageDown, Home e End às ações de rolagem de painel de pane:scrollUp a pane:bottom, portanto, para alterar uma dessas teclas para a faixa, vincule a ação de rolagem em um bloco AbovePrompt.

Ações de painel

Ações para um painel desenhado por um mod. As ações de rolagem, redimensionamento e fechamento se aplicam no contexto Pane. pane:close também se aplica no contexto PaneField, portanto funciona enquanto um dos campos do painel tem foco. pane:next e pane:previous se aplicam no contexto Global enquanto mais de um painel está aberto. O contexto Pane também vincula Tab, Shift+Tab, Enter e Escape às mesmas ações acima do prompt que a faixa, e os campos de entrada e seletores de um painel usam os contextos AbovePromptInput e AbovePromptSelect. Foco do teclado e teclas de atalho lista o que cada tecla faz em um painel.

Ações de configurações

Ações disponíveis no contexto Settings. As ações select:accept e confirm:no são reutilizadas dos contextos Select e Confirmation com comportamento específico de Configurações: as alterações se aplicam a cada configuração assim que você a altera, portanto Escape fecha o painel com suas alterações salvas em vez de recusar.

Ações de agentes

Ações disponíveis no contexto Agents, que se aplica na visualização do agente, aberta com claude agents. Requer v2.1.257 ou posterior. Enquanto a visualização do agente está aberta, Claude Code usa a vinculação Agents para qualquer tecla que o contexto Agents vincula, e ignora uma vinculação Chat ou Global na mesma tecla. Por exemplo, pressionar Ctrl+S na visualização do agente alterna o agrupamento de sessão em vez de disparar o padrão chat:stash. O atalho de editor externo da entrada de despacho não é uma ação Agents. A visualização do agente segue a vinculação chat:externalEditor do contexto Chat, Ctrl+G por padrão. As vinculações disparam em pressionamentos de tecla únicos na visualização do agente, portanto o acorde Ctrl+X Ctrl+E vinculado a chat:externalEditor não abre o editor lá.

Ações de voz

Ações disponíveis no contexto Chat quando a ditação por voz está ativada:

Ações de rolagem

Ações disponíveis no contexto Scroll quando a renderização em tela cheia está ativada:

Sintaxe de sequência de teclas

Modificadores

Use teclas modificadoras com o separador +:
  • ctrl ou control - Tecla Control
  • shift - Tecla Shift
  • alt, opt, option, ou meta - Tecla Alt no Windows e Linux, tecla Option no macOS
  • cmd, command, super, ou win - Tecla Command no macOS, tecla Windows no Windows, tecla Super no Linux
O grupo cmd é detectado apenas em terminais que relatam o modificador Super, como aqueles que suportam o protocolo de teclado Kitty ou o modo modifyOtherKeys do xterm. A maioria dos terminais não o envia, portanto use ctrl ou meta para atalhos de teclado que você deseja que funcionem em qualquer lugar. Por exemplo:

Letras maiúsculas

Claude Code analisa nomes de teclas sem distinção entre maiúsculas e minúsculas, portanto K é o mesmo atalho de teclado que k e ctrl+K é o mesmo que ctrl+k. Para vincular Shift e uma letra, escreva shift+k.

Layouts de teclado não-US

Escreva os nomes das teclas de atalhos Ctrl como caracteres latinos mesmo quando seu layout de teclado ativo digita outros caracteres. A forma como Claude Code corresponde à tecla que você pressiona a um atalho de teclado depende do tipo de layout:
  • Sob um layout não-latino, como Cirílico, Claude Code corresponde aos atalhos de teclado Ctrl pela posição da tecla no layout US quando o terminal usa o protocolo de teclado Kitty e relata essa posição. Em tal terminal, com um layout russo ativo, pressionar Ctrl e a tecla W física dispara ctrl+w. Em um terminal que não relata a posição, Claude Code corresponde ao que o terminal envia para o pressionamento de tecla: um código de controle ASCII dispara o atalho de teclado latino, e um pressionamento de tecla que chega como o caractere cirílico não corresponde a nenhum atalho de teclado
  • Sob layouts que reorganizam letras latinas, como AZERTY, Claude Code corresponde à letra que a tecla digita, portanto pressionar Ctrl e a tecla rotulada A dispara ctrl+a

Acordes

Acordes são sequências de sequências de teclas separadas por espaços:
Pressione cada sequência de teclas dentro de 3 segundos da anterior. Se você esperar mais tempo, Claude Code cancela o acorde e mostra um breve aviso dizendo isso.

Teclas especiais

  • escape ou esc - Tecla Escape
  • enter ou return - Tecla Enter
  • tab - Tecla Tab
  • space - Barra de espaço
  • up, down, left, right - Teclas de seta
  • pageup, pagedown - Teclas Page Up e Page Down
  • home, end - Teclas Home e End
  • backspace, delete - Teclas de exclusão
  • wheelup, wheeldown - Eventos de rolagem da roda do mouse

Desassociar atalhos de teclado padrão

Defina uma ação como null para desassociar um atalho de teclado padrão:
Isso também funciona para atalhos de teclado de acordes. Desassociar cada acorde que compartilha um prefixo libera esse prefixo para uso como um atalho de teclado de uma única tecla. Um acorde em qualquer contexto ativo mantém seu prefixo reservado, portanto você deve desassociar cada acorde no contexto que o define. Claude Code vincula esses acordes padrão no prefixo ctrl+x, por contexto:
  • Chat: ctrl+x ctrl+k, ctrl+x ctrl+e, ctrl+x enter, ctrl+x ctrl+a, ctrl+x ctrl+s, ctrl+x tab, ctrl+x ctrl+=, ctrl+x ctrl+-, ctrl+x ctrl+_, ctrl+x = e ctrl+x -
  • Task: ctrl+x ctrl+b
  • DiffPanel: ctrl+x b
  • Pane: ctrl+x left, ctrl+x right, ctrl+x up, ctrl+x down e ctrl+x x
  • PaneField: ctrl+x x
O acorde ctrl+x enter requer v2.1.247 ou posterior, ctrl+x b, ctrl+x ctrl+a e ctrl+x tab requerem v2.1.260 ou posterior, e ctrl+x ctrl+s requer v2.1.275 ou posterior. Para recuperar ctrl+x em si como um atalho de teclado de uma única tecla, desassocie todos eles:
Se você desassociar alguns, mas não todos os acordes em um prefixo, pressionar o prefixo ainda entra no modo de espera de acorde para as associações restantes.

Atalhos reservados

Estes atalhos não podem ser revinculados:

Conflitos de terminal

Alguns atalhos podem entrar em conflito com multiplexadores de terminal:

Campos de texto

Se você vincular uma letra simples, dígito ou Espaço, ainda poderá digitar esse caractere em um campo de texto dentro de um diálogo ou painel. Um desses campos é a resposta Other para uma pergunta que Claude faz. Enquanto o campo tem foco, uma tecla imprimível que você pressiona sem Ctrl, Alt ou Cmd vai para o campo, e Claude Code não a compara com seus vínculos. Essas teclas ainda executam seus vínculos enquanto o campo tem foco:
  • Teclas que não digitam um caractere, como Enter, Escape, Tab e as teclas de seta
  • Qualquer tecla pressionada com Ctrl, Alt ou Cmd
  • O segundo pressionamento de uma chord já em progresso
No prompt principal, Claude Code compara cada tecla contra os contextos ativos, como Chat, e digita a tecla apenas quando nenhum vínculo a utiliza.

Interação com modo vim

Quando você ativa o modo vim com a configuração Editor mode em /config, atalhos de teclado e modo vim operam independentemente:
  • Modo vim manipula entrada no nível de entrada de texto: movimento do cursor, modos e motions
  • Atalhos de teclado manipulam ações no nível de componente, como alternar tarefas ou enviar uma mensagem
  • A tecla Escape no modo vim muda do modo INSERT para o modo NORMAL; ela não dispara chat:cancel
  • A maioria dos atalhos Ctrl+key passam pelo modo vim para o sistema de atalhos de teclado
  • As chaves vim não são remapeáveis através do arquivo de atalhos de teclado. Para mapear uma sequência de dois-key no modo INSERT como jj para Escape, use a configuração vimInsertModeRemaps
  • No modo NORMAL do vim, ? mostra o menu de ajuda (comportamento vim)
  • No modo NORMAL do vim, / abre a busca de histórico, o mesmo que Ctrl+R no modo padrão
Na linha Other de uma pergunta feita por Claude, Escape não cancela a pergunta imediatamente no modo vim. Exceto no modo de leitor de tela, a linha começa no modo INSERT cada vez que você a foca. Quando você pressiona Escape na linha Other, a linha muda para o modo NORMAL ou descarta um comando vim digitado pela metade, e a pergunta permanece aberta. Pressione Escape novamente no modo NORMAL para cancelar a pergunta.

Cancelar uma pergunta com um único pressionamento de tecla

Para cancelar uma pergunta com um único pressionamento de tecla no modo vim, vincule outra tecla a select:cancel no contexto Select. Você pode cancelar dessa forma a partir da linha Other de uma pergunta em que você seleciona uma opção. No modo de leitor de tela ou em uma pergunta em que você pode selecionar várias opções, a tecla vinculada não cancela, então cancele com Escape. Escolha uma tecla que você pressiona com Ctrl ou Alt. Uma letra ou dígito isolado vai para a linha Other e não chega aos seus atalhos de teclado. Por exemplo, para vincular Ctrl+Q, adicione isto a ~/.claude/keybindings.json:
Depois de salvar o arquivo, pressione Ctrl+Q na linha Other de uma pergunta em que você seleciona uma opção. A pergunta é fechada, esteja a linha no modo INSERT ou NORMAL.

Validação

Claude Code valida seus atalhos de teclado e escreve um aviso no log de depuração para:
  • Erros de análise (JSON inválido ou estrutura)
  • Modificadores com erro de digitação, como ctl+k. Claude Code descarta a parte que não reconhece e aplica a vinculação ao pressionamento de tecla que permanece, k neste exemplo.
  • Um espaço ao lado de + em uma string de tecla, como ctrl+ k. Claude Code lê a string como um acorde de ctrl+ seguido de k. Nenhum pressionamento de tecla corresponde a ctrl+ sozinho, então a vinculação nunca é acionada. Remova o espaço.
  • Nomes de contexto inválidos
  • Valores de ação inválidos, como uma ação que não é uma string ou null
  • Nomes de ação desconhecidos, como um erro de digitação de uma ação registrada. Claude Code pula a vinculação e mantém qualquer vinculação padrão para essa tecla em vigor.
  • Conflitos de atalho reservado
  • Vinculações duplicadas no mesmo contexto
Inicie Claude Code com --debug para ver os detalhes.