Atalhos de Teclado
Configure o keybindings.json do Claude Code: 17 contextos, sintaxe de teclas, sequências de acordes, combinações de modificadores e como desvincular qualquer atalho padrão instantaneamente.
Pare de configurar. Comece a construir.
Templates SaaS com orquestração de IA.
Configure atalhos de teclado personalizados no Claude Code. Referência para todos os 17 contextos, sintaxe de teclas e exemplos de keybindings.json.
Sua memória muscular diz que Ctrl+K deveria abrir uma paleta de comandos. O Claude Code discorda. Cada vez que você alcança um atalho familiar e obtém a ação errada, você perde o foco e quebra o fluxo.
Essa fricção se acumula. Desenvolvedores que passam horas em sessões do Claude Code criam hábitos inconscientes em torno de atalhos de teclado. Quando os padrões não correspondem ao seu modelo mental, você está lutando contra a ferramenta em vez de usá-la. Se você vem do VS Code, Vim, Emacs, ou qualquer fluxo de trabalho com muito terminal, você já tem anos de padrões de atalho gravados nos seus dedos. Forçar-se a aprender novos é um desperdício de esforço cognitivo.
O Claude Code resolve isso com um sistema de keybinding totalmente personalizável. Você define cada atalho em um único arquivo JSON, organizado por contexto, com suporte para sequências de acordes, combinações de modificadores e a capacidade de desvincular qualquer padrão. As mudanças se aplicam instantaneamente sem reiniciar. Veja como configurar e fazer o Claude Code parecer uma extensão do seu fluxo de trabalho atual.
Começando com Keybindings Personalizados
Execute o comando slash /keybindings dentro do Claude Code. Isso cria (ou abre) seu arquivo de configuração em ~/.claude/keybindings.json. Se você é novo em configurar o Claude Code, este arquivo fica junto com suas outras configurações no diretório ~/.claude/.
A estrutura do arquivo é direta:
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}Três campos no nível raiz controlam tudo:
$schema- Opcional. Aponte para a URL do JSON Schema do Claude e seu editor te dá autocompletar e validação de graça. Vale adicionar.$docs- Opcional. URL de documentação para referência rápida.bindings- O array onde todos os seus atalhos personalizados ficam. Cada entrada mira em um contexto específico.
O campo $schema por si só torna a configuração muito mais fácil. Se você usa VS Code ou qualquer editor com suporte a JSON Schema, você recebe sugestões inline para cada ação e nome de contexto válido.
Mudanças em keybindings.json são detectadas e aplicadas automaticamente. Sem necessidade de reiniciar. Edite, salve e seus novos atalhos estão ativos imediatamente.
Entendendo Contextos
Cada binding pertence a um contexto, que diz ao Claude Code quando aquele atalho está ativo. Um atalho vinculado no contexto Chat só dispara quando você está digitando na entrada de chat principal. A mesma combinação de teclas pode fazer coisas diferentes em contextos diferentes.
O Claude Code tem 17 contextos:
| Contexto | Quando Está Ativo |
|---|---|
Global | Em todo o app |
Chat | Área de entrada do chat principal |
Autocomplete | Menu de autocompletar aberto |
Settings | Menu de configurações aberto |
Confirmation | Diálogos de permissão e confirmação |
Tabs | Componentes de navegação por abas |
Help | Menu de ajuda visível |
Transcript | Visualizador de transcrição |
HistorySearch | Modo de pesquisa no histórico (Ctrl+R) |
Task | Tarefa em segundo plano rodando |
ThemePicker | Diálogo do seletor de tema |
Attachments | Navegação na barra de imagens/anexos |
Footer | Navegação dos indicadores do rodapé |
MessageSelector | Seleção de mensagem no diálogo de rewind |
DiffDialog | Navegação no visualizador de diff |
ModelPicker | Nível de esforço do seletor de modelo |
Select | Componentes genéricos de seleção/lista |
Plugin | Diálogo de plugin (navegar, descobrir, gerenciar) |
O contexto Global é especial. Bindings aqui se aplicam em todo lugar, independentemente de qual diálogo ou visualização está ativa. Use com cautela. Se você vincular Ctrl+K globalmente, ele dispara esteja você no chat, navegando em sugestões de autocompletar ou revisando diffs.
Referência Completa de Ações
As ações seguem o formato de nomenclatura namespace:ação. Aqui está cada ação disponível em cada contexto, junto com seu binding padrão.
Ações Globais
Funcionam em todo o Claude Code:
| Ação | Padrão | O Que Faz |
|---|---|---|
app:interrupt | Ctrl+C | Cancela a operação atual |
app:exit | Ctrl+D | Sai do Claude Code |
app:toggleTodos | Ctrl+T | Alterna visibilidade da lista de tarefas |
app:toggleTranscript | Ctrl+O | Alterna transcrição detalhada |
Se você usa recursos de gerenciamento de tarefas, app:toggleTodos é um que você vai usar constantemente. Considere vincular a algo mais acessível se Ctrl+T conflitar com seu terminal.
Ações de Chat
A área de entrada principal onde você passa a maior parte do tempo:
| Ação | Padrão | O Que Faz |
|---|---|---|
chat:cancel | Escape | Cancela a entrada atual |
chat:cycleMode | Shift+Tab | Alterna modos de permissão |
chat:modelPicker | Cmd+P / Meta+P | Abre o seletor de modelo |
chat:thinkingToggle | Cmd+T / Meta+T | Alterna pensamento estendido |
chat:submit | Enter | Envia mensagem |
chat:undo | Ctrl+_ | Desfaz última ação |
chat:externalEditor | Ctrl+G | Abre em editor externo |
chat:stash | Ctrl+S | Guarda o prompt atual |
chat:imagePaste | Ctrl+V (Alt+V no Windows) | Cola imagem |
Observação: chat:cycleMode usa Meta+M no Windows sem modo VT (versões do Node anteriores a 24.2.0/22.17.0, ou Bun anterior a 1.2.23). Isso se conecta diretamente ao gerenciamento de permissões para controlar o que o Claude pode e não pode fazer.
Ações de Histórico
Navegue pelo histórico de comandos:
| Ação | Padrão | O Que Faz |
|---|---|---|
history:search | Ctrl+R | Abre pesquisa no histórico |
history:previous | Up | Item anterior do histórico |
history:next | Down | Próximo item do histórico |
Ações de Autocompletar
Quando o menu de autocompletar aparece:
| Ação | Padrão | O Que Faz |
|---|---|---|
autocomplete:accept | Tab | Aceita sugestão |
autocomplete:dismiss | Escape | Fecha o menu |
autocomplete:previous | Up | Sugestão anterior |
autocomplete:next | Down | Próxima sugestão |
Ações de Confirmação
Diálogos de permissão e confirmação:
| Ação | Padrão | O Que Faz |
|---|---|---|
confirm:yes | Y, Enter | Confirma ação |
confirm:no | N, Escape | Recusa ação |
confirm:previous | Up | Opção anterior |
confirm:next | Down | Próxima opção |
confirm:nextField | Tab | Próximo campo |
confirm:previousField | (não vinculado) | Campo anterior |
confirm:cycleMode | Shift+Tab | Alterna modos de permissão |
confirm:toggleExplanation | Ctrl+E | Alterna explicação de permissão |
permission:toggleDebug | Ctrl+D | Alterna informações de debug de permissão |
Ações de Transcrição
| Ação | Padrão | O Que Faz |
|---|---|---|
transcript:toggleShowAll | Ctrl+E | Alterna exibição de todo o conteúdo |
transcript:exit | Ctrl+C, Escape | Sai da visualização de transcrição |
Ações de Pesquisa no Histórico
| Ação | Padrão | O Que Faz |
|---|---|---|
historySearch:next | Ctrl+R | Próxima correspondência |
historySearch:accept | Escape, Tab | Aceita seleção |
historySearch:cancel | Ctrl+C | Cancela pesquisa |
historySearch:execute | Enter | Executa comando selecionado |
Ações de Tarefa
| Ação | Padrão | O Que Faz |
|---|---|---|
task:background | Ctrl+B | Coloca tarefa atual em segundo plano |
Ações de Tema, Ajuda e Configurações
| Ação | Contexto | Padrão | O Que Faz |
|---|---|---|---|
theme:toggleSyntaxHighlighting | ThemePicker | Ctrl+T | Alterna destaque de sintaxe |
help:dismiss | Help | Escape | Fecha menu de ajuda |
settings:search | Settings | / | Entra no modo de pesquisa |
settings:retry | Settings | R | Tenta recarregar dados de uso |
Ações de Navegação
Cobrindo abas, anexos, rodapé, diffs, seletor de modelo, seleções e seletor de mensagens:
| Ação | Contexto | Padrão | O Que Faz |
|---|---|---|---|
tabs:next | Tabs | Tab, Right | Próxima aba |
tabs:previous | Tabs | Shift+Tab, Left | Aba anterior |
attachments:next | Attachments | Right | Próximo anexo |
attachments:previous | Attachments | Left | Anexo anterior |
attachments:remove | Attachments | Backspace, Delete | Remove anexo |
attachments:exit | Attachments | Down, Escape | Sai da barra de anexos |
footer:next | Footer | Right | Próximo item do rodapé |
footer:previous | Footer | Left | Item anterior do rodapé |
footer:openSelected | Footer | Enter | Abre item selecionado |
footer:clearSelection | Footer | Escape | Limpa seleção |
messageSelector:up | MessageSelector | Up, K | Move para cima na lista |
messageSelector:down | MessageSelector | Down, J | Move para baixo na lista |
messageSelector:top | MessageSelector | Ctrl+Up, Shift+Up | Pula para o topo |
messageSelector:bottom | MessageSelector | Ctrl+Down, Shift+Down | Pula para o final |
messageSelector:select | MessageSelector | Enter | Seleciona mensagem |
diff:dismiss | DiffDialog | Escape | Fecha visualizador de diff |
diff:previousSource | DiffDialog | Left | Fonte de diff anterior |
diff:nextSource | DiffDialog | Right | Próxima fonte de diff |
diff:previousFile | DiffDialog | Up | Arquivo anterior |
diff:nextFile | DiffDialog | Down | Próximo arquivo |
diff:viewDetails | DiffDialog | Enter | Ver detalhes |
modelPicker:decreaseEffort | ModelPicker | Left | Diminui nível de esforço |
modelPicker:increaseEffort | ModelPicker | Right | Aumenta nível de esforço |
select:next | Select | Down, J, Ctrl+N | Próxima opção |
select:previous | Select | Up, K, Ctrl+P | Opção anterior |
select:accept | Select | Enter | Aceita seleção |
select:cancel | Select | Escape | Cancela seleção |
plugin:toggle | Plugin | Space | Alterna plugin |
plugin:install | Plugin | I | Instala plugins |
Sintaxe de Teclas
O Claude Code usa uma sintaxe legível para definir combinações de teclas.
Modificadores
Combine teclas modificadoras com +:
ctrloucontrolpara a tecla Controlalt,optouoptionpara Alt/Optionshiftpara Shiftmeta,cmdoucommandpara Meta/Command
Exemplos:
ctrl+k Modificador único + tecla
shift+tab Shift + Tab
meta+p Command/Meta + P
ctrl+shift+c Múltiplos modificadoresLetras Maiúsculas e Shift
Uma letra maiúscula sozinha implica Shift. Escrever K nos seus bindings é o mesmo que escrever shift+k. Isso é especialmente útil para bindings no estilo Vim onde j e J (ou k e K) fazem coisas diferentes.
Um detalhe importante: letras maiúsculas com modificadores NÃO implicam Shift. Então ctrl+K é idêntico a ctrl+k. A maiúscula é tratada como puramente estilística quando modificadores estão presentes.
Sequências de Acordes
Acordes permitem criar atalhos com múltiplas teclas. Separe as teclas com um espaço:
ctrl+k ctrl+s Pressione Ctrl+K, solte, depois pressione Ctrl+S
Isso te dá um namespace muito maior para atalhos. Se você está ficando sem combinações de tecla única, acordes abrem centenas de possibilidades sem conflitar com bindings existentes.
Teclas Especiais
Use estes nomes para teclas não-alfanuméricas:
escapeouescenteroureturntabspaceup,down,left,rightbackspace,delete
Desvinculando Atalhos Padrão
Defina qualquer ação como null para desativá-la:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null
}
}
]
}Útil quando um atalho padrão conflita com seu terminal, sistema operacional ou uma ferramenta que você usa junto com o Claude Code. Você também pode desvincular um padrão e depois revincular a mesma tecla a uma ação diferente.
Atalhos Reservados
Dois atalhos são fixos e não podem ser revinculados:
| Atalho | Motivo |
|---|---|
| Ctrl+C | Interrupção/cancelamento fixo |
| Ctrl+D | Saída fixa |
Não tente revincular estes. O Claude Code não vai aceitar, e com razão. Ctrl+C como interrupção e Ctrl+D como saída são convenções Unix que todo usuário de terminal espera.
Conflitos com Multiplexadores de Terminal
Se você roda o Claude Code dentro do tmux, GNU screen ou outro multiplexador, cuidado com conflitos de tecla de prefixo:
| Atalho | Conflito |
|---|---|
| Ctrl+B | Prefixo do tmux (pressione duas vezes para passar) |
| Ctrl+A | Prefixo do GNU screen |
| Ctrl+Z | Suspensão de processo Unix (SIGTSTP) |
A ação padrão task:background usa Ctrl+B, que conflita diretamente com o tmux. Se você é usuário de tmux, revincule imediatamente:
{
"bindings": [
{
"context": "Task",
"bindings": {
"ctrl+b": null,
"ctrl+shift+b": "task:background"
}
}
]
}Essa é uma das fontes mais comuns de confusão para desenvolvedores que rodam o Claude Code dentro de sessões de terminal com multiplexadores.
Interação com Modo Vim
Quando o modo vim está ativado (alterne com /vim), keybindings e modo vim operam em camadas diferentes:
- Modo vim controla a entrada de texto: movimento do cursor, modos (INSERT, NORMAL), movimentos e objetos de texto
- Keybindings controlam ações da aplicação: alternar a lista de tarefas, enviar mensagens, abrir o seletor de modelo
A distinção chave é a tecla Escape. No modo vim, Escape alterna de INSERT para NORMAL. Ela não aciona chat:cancel. A maioria dos atalhos Ctrl+tecla passa pelo modo vim para o sistema de keybinding, então Ctrl+T ainda alterna sua lista de tarefas mesmo quando você está em modo NORMAL.
No modo NORMAL, pressionar ? mostra o menu de ajuda (comportamento vim padrão), não a ajuda do Claude Code.
Se você usa modos de planejamento intensamente e usa modo vim, considere vincular chat:thinkingToggle a um acorde que não conflite com movimentos vim. Para uma visão geral completa de como modo vim, comandos slash e outros recursos interativos se encaixam, veja o guia de modo interativo.
Validação e Diagnósticos
O Claude Code valida seu arquivo keybindings automaticamente e avisa sobre:
- Erros de parse na sintaxe ou estrutura JSON
- Nomes de contexto inválidos que não correspondem aos 17 contextos suportados
- Conflitos com atalhos reservados se você tentar revincular Ctrl+C ou Ctrl+D
- Conflitos com multiplexadores de terminal para Ctrl+B, Ctrl+A e Ctrl+Z
- Bindings duplicados no mesmo contexto
Execute /doctor para ver todos os avisos de keybinding de uma vez. É a forma mais rápida de diagnosticar por que um atalho não está funcionando como esperado.
Exemplos Práticos de Configuração
Aqui estão configurações do mundo real que resolvem problemas comuns.
Configuração para Usuário do VS Code
Se você vem do VS Code e quer atalhos familiares:
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+k ctrl+s": "chat:stash",
"ctrl+shift+p": "chat:modelPicker",
"ctrl+g": "chat:externalEditor"
}
},
{
"context": "Global",
"bindings": {
"ctrl+shift+t": "app:toggleTodos"
}
}
]
}Configuração Amigável com tmux
Evita todos os conflitos de prefixo do tmux:
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"bindings": [
{
"context": "Task",
"bindings": {
"ctrl+b": null,
"ctrl+shift+b": "task:background"
}
}
]
}Configuração Mínima de Distrações
Desvincule atalhos que você fica pressionando por acidente:
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null,
"ctrl+u": null
}
}
]
}Power User com Acordes
Use acordes para acessar recursos menos usados sem gastar combos de tecla única:
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+k ctrl+t": "chat:thinkingToggle",
"ctrl+k ctrl+m": "chat:modelPicker",
"ctrl+k ctrl+e": "chat:externalEditor"
}
}
]
}Isso mantém seus atalhos de tecla única mais usados limpos e ainda dá acesso rápido a tudo mais.
Construindo Sua Própria Configuração
Comece pequeno. Não tente remapear tudo de uma vez. Uma abordagem prática:
- Execute
/keybindingspara criar o arquivo de configuração - Identifique seus 3 maiores problemas (atalhos conflitantes, atalhos ausentes, gatilhos acidentais)
- Corrija esses primeiro com bindings específicos
- Execute
/doctorpara validar - Use o Claude Code por uma sessão completa e note qualquer fricção restante
- Itere adicionando ou ajustando bindings conforme necessário
O objetivo não é personalizar cada atalho possível. É eliminar a fricção entre sua memória muscular e o comportamento do Claude Code. A maioria dos desenvolvedores precisa de apenas 5 a 10 bindings personalizados para se sentir completamente em casa. O Code Kit do ClaudeFast vem com um settings.json pré-ajustado que inclui padrões amigáveis a keybindings junto com seus comandos slash e hooks, então você começa com uma base sólida em vez de construir do zero.
Se você está construindo uma configuração mais abrangente do Claude Code, seus keybindings funcionam junto com a configuração do CLAUDE.md e comandos slash personalizados para criar um ambiente totalmente personalizado. Os keybindings cuidam da interface física. Os arquivos de configuração cuidam da interface comportamental. Juntos, fazem o Claude Code parecer que foi construído especificamente para o seu fluxo de trabalho.
Pare de configurar. Comece a construir.
Templates SaaS com orquestração de IA.