- Shift+Enter envia em vez de inserir uma nova linha
- Atalhos de tecla Option não funcionam no macOS
- Sem som ou alerta quando Claude termina
- Você executa Claude Code dentro do tmux
- Backspace deleta uma palavra inteira no Windows
- A exibição cintila ou o scrollback salta
- Você quer teclas Vim no prompt
Inserir prompts multilinhas
Pressionar Enter envia sua mensagem. Para adicionar uma quebra de linha sem enviar, pressione Ctrl+J, ou digite\ e depois pressione Enter. Ambos funcionam em todo terminal sem necessidade de configuração.
Na maioria dos terminais você também pode pressionar Shift+Enter, mas o suporte varia de acordo com o emulador de terminal:
Para VS Code, Cursor, Devin Desktop, Alacritty anterior a 0.16 e Zed,
/terminal-setup escreve um atalho de teclado Shift+Enter no arquivo de configuração do terminal. Na primeira execução você vê uma confirmação como Installed VSCode terminal Shift+Enter key binding. Os bindings existentes são mantidos no lugar; se você vir uma mensagem como VSCode terminal Shift+Enter key binding already configured, nenhuma alteração foi feita. Execute /terminal-setup diretamente no terminal do host em vez de dentro de tmux ou screen, pois ele precisa escrever na configuração do terminal do host.
No VS Code, Cursor e Devin Desktop, /terminal-setup também atualiza duas configurações do editor: define terminal.integrated.gpuAcceleration para "off" para evitar texto distorcido no terminal integrado, e define terminal.integrated.mouseWheelScrollSensitivity para rolagem mais suave no modo tela cheia. Para desfazer a alteração de aceleração de GPU, defina-a de volta para "auto" e recarregue a janela do editor.
No Zed, /terminal-setup atualiza seu keymap.json no local:
- Se o keymap já tiver bindings e nenhum deles for um Terminal
shift-enter, Claude Code primeiro faz um backup para uma cópia no mesmo diretório, comokeymap.json.1a2b3c4d.bak, depois mescla o binding Shift+Enter em seu keymap, mantendo seus outros atalhos de teclado e comentários - Se Claude Code não conseguir ler ou analisar o keymap, não conseguir fazer backup, ou não conseguir verificar o resultado mesclado, ele deixa o arquivo inalterado e imprime o bloco de binding para você adicionar você mesmo
chat:newline e chat:submit em seu arquivo de atalhos de teclado.
Ativar atalhos de teclado Option no macOS
Alguns atalhos de teclado do Claude Code usam a tecla Option, como Option+Enter para uma nova linha ou Option+P para alternar modelos. No macOS, a maioria dos terminais não envia Option como um modificador por padrão, portanto esses atalhos não funcionam até que você o ative. A configuração do terminal para isso geralmente é rotulada como “Use Option as Meta Key”; Meta é o nome histórico do Unix para a tecla agora rotulada como Option ou Alt.- Apple Terminal
- iTerm2
- VS Code
Abra Configurações → Perfis → Teclado e marque “Use Option as Meta Key”.Se você aceitou o prompt de configuração do terminal na primeira execução do Claude Code, isso já foi feito. Esse prompt executa
/terminal-setup para você, que ativa Option como Meta e desativa o sino audível no seu perfil do Apple Terminal.No modo leitor de tela, /terminal-setup deixa a configuração do sino inalterada para que o sino do terminal permaneça audível. Antes da v2.1.211, /terminal-setup desativava o sino mesmo no modo leitor de tela. Se uma execução anterior desativou o sino, ative-o novamente em Configurações → Perfis → Avançado → “Audible bell”.Obtenha um sinal sonoro do terminal ou notificação
Quando Claude termina uma tarefa ou pausa para um prompt de permissão, e você parece estar longe do terminal, ele dispara um evento de notificação. Veja quando cada tipo de notificação é disparado para o tempo exato. Exibir isso como um sinal sonoro do terminal ou notificação de desktop permite que você mude para outro trabalho enquanto uma tarefa longa é executada. Por padrão, Claude Code envia uma notificação de desktop apenas em Ghostty, Kitty e iTerm2. Em outros terminais, definapreferredNotifChannel como "terminal_bell" para tocar o sinal sonoro do terminal, ou configure um hook de Notificação para um som personalizado ou comando. A seguinte entrada de configurações ativa o sinal sonoro do terminal:
~/.claude/settings.json
1
Abra as configurações de notificação do iTerm2
Vá para Configurações → Perfis → Terminal.
2
Ative alertas
Marque “Notification Center Alerts”, depois clique em “Filter Alerts” e ative “Send escape sequence-generated alerts”.
Reproduza um som com um hook de Notification
Em qualquer terminal, você pode configurar um hook de Notification para reproduzir um som ou executar um comando personalizado quando Claude precisar de sua atenção. Hooks são executados junto com a notificação integrada em vez de substituí-la, portanto terminais que não recebem uma notificação de desktop, como Warp ou o terminal integrado do VS Code, podem usar um hook ou definirpreferredNotifChannel como "terminal_bell" em vez disso.
O exemplo abaixo reproduz um som do sistema no macOS. O guia vinculado tem comandos de notificação de desktop para macOS, Linux e Windows.
~/.claude/settings.json
Configurar tmux
Quando Claude Code é executado dentro do tmux, por padrão Shift+Enter envia em vez de inserir uma nova linha, e notificações de desktop e a barra de progresso nunca chegam ao terminal externo. Adicione estas linhas a~/.tmux.conf, depois execute tmux source-file ~/.tmux.conf para aplicá-las ao servidor em execução:
~/.tmux.conf
allow-passthrough permite que notificações e atualizações de progresso cheguem ao terminal externo em vez de serem engolidas pelo tmux. As linhas extended-keys permitem que o tmux distinga Shift+Enter de Enter simples para que o atalho de nova linha funcione.
Corrigir Backspace deletando uma palavra inteira no Windows
No Windows, Claude Code lê um Backspace que chega como^H como Ctrl+Backspace, que deleta a palavra anterior, exceto quando TERM_PROGRAM é mintty ou TERM é cygwin. No macOS e Linux, Claude Code o lê como Backspace simples.
Se cada pressão de Backspace deleta uma palavra inteira, seu terminal envia ^H para Backspace simples. Defina CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0. Backspace e Ctrl+H então apagam um caractere cada. Se Ctrl+Backspace apaga apenas um caractere no macOS ou Linux porque seu terminal envia ^H para ele, defina a variável para 1 em vez disso.
Corresponder ao tema de cores
Use o comando/theme, ou o seletor de tema em /config, para escolher um tema Claude Code que corresponda ao seu terminal. Selecionar a opção automática detecta o fundo claro ou escuro do seu terminal, para que o tema siga as mudanças de aparência do SO sempre que seu terminal fizer. Claude Code não controla o esquema de cores do próprio terminal, que é definido pela aplicação do terminal.
Para personalizar o que aparece na parte inferior da interface, configure uma linha de status personalizada que mostra o modelo atual, diretório de trabalho, branch do git ou outro contexto.
Criar um tema personalizado
Além dos presets integrados,/theme lista todos os temas personalizados que você definiu e quaisquer temas contribuídos pelos plugins instalados. Selecione Novo tema personalizado… no final da lista para criar um interativamente: você nomeia o tema e depois escolhe tokens de cores individuais para substituir. Pressione Ctrl+E enquanto um tema personalizado está destacado para editá-lo.
Cada tema personalizado é um arquivo JSON em ~/.claude/themes/. O nome do arquivo sem a extensão .json é o slug do tema, e selecionar o tema armazena custom:<slug> como sua preferência de tema. O arquivo tem três campos opcionais:
Valores de cores aceitam
#rrggbb, #rgb, rgb(r,g,b), ansi256(n), ou ansi:<name> onde <name> é um dos 16 nomes de cores ANSI padrão, como red ou cyanBright. Tokens desconhecidos e valores de cores inválidos são ignorados, portanto um erro de digitação não pode quebrar a renderização.
O exemplo a seguir define um tema que mantém o preset escuro, mas recolore o acento do prompt, o texto de erro e o texto de sucesso:
~/.claude/themes/dracula.json
~/.claude/themes/ e recarrega quando um arquivo é adicionado ou alterado, portanto as edições feitas no seu editor se aplicam a uma sessão em execução sem uma reinicialização. Se a pasta ~/.claude/themes/ em si não existisse quando Claude Code foi iniciado, reinicie uma vez após criar seu primeiro arquivo de tema. Depois disso, as mudanças se aplicam sem uma reinicialização.
A referência abaixo cobre os tokens que você pode definir em overrides. O editor interativo em /theme mostra os mesmos tokens com uma visualização ao vivo, além de alguns acentos de propósito único, como cores de tela de integração, que são omitidas aqui.
Referência de token de cor
Referência de token de cor
O exemplo a seguir combina tokens de vários dos grupos abaixo: o acento da marca, a borda do modo de plano, os fundos de diff e o fundo da mensagem.
~/.claude/themes/midnight.json
Cores de texto e acento
Controle o acento da marca primária e as tonalidades de texto em primeiro plano usadas em toda a interface.Cores de status
Sinalize estados de sucesso, falha e aviso em mensagens e indicadores.Caixa de entrada e indicadores de modo
Defina a cor da borda da caixa de entrada e o acento mostrado enquanto um modo de permissão ou indicador está ativo.Renderização de diff
Colora código adicionado e removido em edições e revisões de arquivo.Modo tela cheia
Claude Code pintauserMessageBackground, bashMessageBackgroundColor e memoryBackgroundColor nos renderizadores padrão e tela cheia. Ele usa userMessageBackgroundHover e selectionBg apenas no modo de renderização tela cheia.Medidor de uso e rótulos de alto-falante
Ajuste a barra mostrada na visualização/usage e os rótulos que distinguem suas mensagens das de Claude.Variantes de shimmer e cores de subagente
Vários tokens têm uma variante de shimmer emparelhada que fornece a cor mais clara usada no gradiente animado do spinner. Substitua o shimmer junto com seu token base se a animação parecer incompatível.claudeeclaudeShimmerwarningewarningShimmerpermissionepermissionShimmerpromptBorderepromptBorderShimmerinactiveeinactiveShimmerfastModeefastModeShimmer
<color>_FOR_SUBAGENTS_ONLY, onde <color> é red, blue, green, yellow, purple, orange, pink ou cyan. Substitua estes para alterar a aparência de cada cor nomeada. Por exemplo, um subagente com color: blue em sua definição é desenhado usando o valor blue_FOR_SUBAGENTS_ONLY.Claude Code renderiza a palavra-chave ultrathink na entrada do prompt com um gradiente arco-íris de sete cores. Os nomes dos tokens seguem o padrão rainbow_<color> e rainbow_<color>_shimmer, onde <color> é red, orange, yellow, green, blue, indigo ou violet.Mudar para renderização em tela cheia
No modo leitor de tela, esta seção não se aplica. Claude Code sempre renderiza como texto simples com rolagem, exceto em sessões em segundo plano anexadas, e se você executar/tui fullscreen em qualquer outra sessão, Claude Code imprime uma explicação em vez de mudar.
Se a exibição piscar ou a posição de rolagem pular enquanto Claude está trabalhando, mude para o modo de renderização em tela cheia. Neste modo você rola com o mouse ou PageUp dentro de Claude Code em vez de usar a rolagem nativa do seu terminal; consulte a página de tela cheia para saber como pesquisar e copiar.
Se o piscar for o único problema e seu terminal suportar saída sincronizada, mas não for detectado automaticamente, como o Emacs eat, defina CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 para parar o piscar sem alterar renderizadores.
Execute /tui fullscreen para mudar e salvar a preferência. Sua conversa é relançada intacta e futuras sessões começam em tela cheia, a menos que uma falha de início em tela cheia ocorra. Você também pode definir a variável de ambiente CLAUDE_CODE_NO_FLICKER antes de iniciar Claude Code:
Limitar a largura da resposta em terminais amplos
Em um terminal amplo, cada linha de prosa nas respostas do Claude ocupa a largura total da janela. Para quebrar a prosa em um número definido de colunas, definamaxProseWidth nas suas configurações.
Colar conteúdo grande
Quando você cola mais de 800 caracteres ou mais de três linhas no prompt, Claude Code recolhe a entrada para um espaço reservado como[Pasted text #1 +120 lines] para que a caixa de entrada permaneça utilizável, e ainda envia o conteúdo completo quando você submete. Para entradas muito grandes, como arquivos inteiros ou logs longos, escreva o conteúdo em um arquivo e peça ao Claude para lê-lo em vez de colar. A transcrição da conversa permanece legível e Claude pode referenciar o arquivo por caminho em turnos posteriores. O terminal integrado do VS Code também pode descartar caracteres de colas muito grandes antes de chegarem ao Claude Code, então use um arquivo lá.
Se a colagem contiver caracteres Unicode invisíveis, Claude Code os remove quando você pressiona Enter e coloca o prompt limpo de volta na caixa de entrada para você enviar com outro Enter.
Como Claude trata texto colado
Quando você submete, Claude vê o conteúdo atrás de cada espaço reservado[Pasted text #N] marcado como texto que você colou de outro lugar em vez de digitar. Claude é informado que uma colagem pode conter instruções que você não escreveu, e deve seguir instruções dentro dela apenas onde a mensagem que você digitou pede. Em sessões que não buscam sinalizadores de recurso, colas não são marcadas.
Deletar e restaurar uma colagem recolhida
Quando você deleta com um atalho de palavra ou linha comoCtrl+W ou Ctrl+K, ou com uma exclusão vim através de um movimento f/t como df], e o intervalo deletado atinge dentro de um espaço reservado [Pasted text #N], Claude Code remove o espaço reservado inteiro. Para restaurá-lo, cole a exclusão de volta com Ctrl+Y após um atalho de palavra ou linha, ou com p em NORMAL mode após uma exclusão vim.
Recuperar um prompt que tinha texto colado
Claude Code mantém o conteúdo atrás de cada espaço reservado[Pasted text #N] em ~/.claude/paste-cache/, então quando você recupera um prompt do histórico de comandos e o resubmete, o conteúdo colado completo é enviado novamente, inclusive em uma sessão posterior.
Arquivos de cache com mais de cleanupPeriodDays de idade são deletados sob as regras de varredura de retenção, então um prompt recuperado pode referenciar texto colado que não existe mais. Quando você submete tal prompt, Claude Code nunca envia a string literal [Pasted text #N], e mostra uma notificação nomeando a colagem ausente:
- Em um prompt simples com texto restante, Claude Code remove o espaço reservado e envia o texto restante.
- Em um comando shell mode ou um comando
/, onde a remoção alteraria o que é executado, e em qualquer prompt cuja remoção deixa vazio, Claude Code cancela a submissão e mantém o texto original na entrada, com o espaço reservado ainda nele. Delete o espaço reservado ou edite o comando, depois resubmeta.
Editar prompts com atalhos de teclado Vim
Claude Code inclui um modo de edição estilo Vim para a entrada de prompt. Ative-o através de/config → Editor mode, ou definindo editorMode como "vim" em ~/.claude/settings.json. Defina Editor mode de volta para normal para desativá-lo.
O modo Vim suporta um subconjunto de motions e operadores dos modos NORMAL e VISUAL, como navegação hjkl, seleção v/V, e d/c/y com objetos de texto. Consulte a referência do modo editor Vim para a tabela de teclas completa.
Os motions do Vim não são remapeáveis através do arquivo de atalhos de teclado. Para mapear uma sequência de dois caracteres no modo INSERT, como jj para Escape, defina vimInsertModeRemaps nas suas configurações de usuário.
Pressionar Enter ainda envia seu prompt no modo INSERT, diferentemente do Vim padrão. Use o ou O no modo NORMAL, ou Ctrl+J, para inserir uma nova linha.
Recursos relacionados
- Interactive mode: referência completa de atalhos de teclado e a tabela de teclas Vim
- Keybindings: remapeie qualquer atalho do Claude Code, incluindo Enter e Shift+Enter
- Fullscreen rendering: detalhes sobre rolagem, pesquisa e cópia no modo tela cheia
- Hooks guide: mais exemplos de hook de Notificação para Linux e Windows
- Troubleshooting: correções para problemas fora da configuração do terminal