Skip to main content
Claude Code admite atajos de teclado personalizables. Ejecute /keybindings para crear o abrir su archivo de configuración en ~/.claude/keybindings.json.

Archivo de configuración

El archivo de configuración de atajos de teclado es un objeto con un array bindings. Cada bloque especifica un contexto y un mapa de pulsaciones de teclas a acciones.
Los cambios en el archivo de atajos de teclado se detectan y aplican automáticamente sin reiniciar Claude Code.
Este ejemplo vincula Ctrl+E para abrir un editor externo en el contexto de chat, y desvincula Ctrl+U:

Contextos

Cada bloque de vinculación especifica un contexto donde se aplican los atajos de teclado: Antes de v2.1.205, existían un contexto Doctor y una acción doctor:fix para la pantalla de diagnósticos /doctor.

Acciones disponibles

Las acciones siguen un formato namespace:action, como chat:submit para enviar un mensaje o app:toggleTodos para mostrar la lista de tareas. Cada contexto tiene acciones específicas disponibles.

Acciones de aplicación

Acciones disponibles en el contexto Global:

Acciones de historial

Acciones para navegar por el historial de comandos:

Acciones de chat

Acciones disponibles en el contexto Chat: *En Windows sin modo VT (Node <24.2.0/<22.17.0, Bun <1.2.23), el valor predeterminado es Meta+M.

Acciones de autocompletado

Acciones disponibles en el contexto Autocomplete:

Acciones de confirmación

Acciones disponibles en el contexto Confirmation: *En Windows sin modo VT (Node <24.2.0/<22.17.0, Bun <1.2.23), el valor predeterminado es Meta+M. Antes de v2.1.257, una acción confirm:toggleExplanation, vinculada a Ctrl+E de forma predeterminada, mostraba una explicación generada por el modelo del comando en avisos de permisos de Bash y PowerShell. Los diálogos utilizan confirm:yes y confirm:no para aceptar y cancelar incluso cuando no hacen una pregunta de sí o no. Si vincula una letra simple como y o n en este contexto, la letra también actúa sobre diálogos que nunca la muestran como una tecla. Un diálogo que muestra y y n como sus teclas las lee a sí mismo y no necesita vinculación. En la mayoría de diálogos, presionar Ctrl+C o Ctrl+D dos veces cierra el diálogo en lugar de salir de Claude Code. La sugerencia después del primer presionamiento dice si el segundo presionamiento cierra el diálogo o sale. Ambas teclas están reservadas y no se pueden reasignar. Este ejemplo vincula y a confirm:yes y n a confirm:no:
Con estos atajos de teclado, y y n aún escriben como letras mientras un campo de texto tiene el foco. Antes de v2.1.280, y también estaba vinculado a confirm:yes y n a confirm:no de forma predeterminada. Si creó su keybindings.json con /keybindings antes de v2.1.280, el archivo enumera ambas vinculaciones y permanecen en vigor hasta que elimine esas dos líneas.

Acciones de permisos

Acciones disponibles en el contexto Confirmation para diálogos de permisos:

Acciones de transcripción

Acciones disponibles en el contexto Transcript: transcript:toggleShowAll se aplica solo en el renderizador clásico; en renderizado de pantalla completa, el visor de transcripción no ofrece un alternar mostrar todo.

Acciones de búsqueda de historial

Acciones disponibles en el contexto HistorySearch: Los valores predeterminados de historySearch:next, historySearch:accept, historySearch:cancel y historySearch:execute se aplican a la búsqueda de historial en línea en el renderizador clásico, que siempre busca indicaciones de todos los proyectos. historySearch:cycleScope solo tiene efecto en renderizado de pantalla completa, donde Ctrl+R abre un diálogo de búsqueda en su lugar y Ctrl+S cicla su alcance. Las otras teclas del diálogo son fijas y no se pueden reasignar: Enter o Tab coloca la coincidencia resaltada en la entrada de indicación y Esc cancela.

Acciones de tarea

Acciones disponibles en el contexto Task:

Acciones de tema

Acciones disponibles en el contexto ThemePicker:

Acciones de ayuda

Acciones disponibles en el contexto Help:

Acciones de pestañas

Acciones disponibles en el contexto Tabs: En un diálogo con pestañas, tabs:next y tabs:previous cambian de pestaña mientras la fila de pestañas tiene el foco. En algunos diálogos, como /help y /sandbox, las teclas de cambio de pestaña también funcionan desde dentro del contenido de la pestaña. Up y Down mueven el foco entre la fila de pestañas y el contenido de la pestaña, y una lista en el contenido responde a las teclas solo mientras tiene el foco.

Acciones de adjuntos

Acciones disponibles en el contexto Attachments: Acciones disponibles en el contexto Footer: Mientras se selecciona un elemento de pie de página, como una fila en el panel de agente debajo de la indicación, Enter lo abre incluso cuando reasigna Enter en el contexto Chat a chat:queueSubmit o chat:newline. Los atajos de teclado de Chat en teclas que el contexto Footer no vincula, como Shift+Tab para chat:cycleMode, siguen funcionando mientras se selecciona un elemento.

Acciones del selector de mensajes

En la lista de mensajes del menú de rebobinado, se mueve a través de mensajes y elige uno con las acciones de selección y sus teclas predeterminadas. Sus vinculaciones de Select para esas acciones también se aplican allí. El contexto MessageSelector no tiene acciones ni vinculaciones predeterminadas propias. Úselo para cambiar una tecla solo para esta lista, vinculando una acción de selección como select:accept en un bloque MessageSelector. Este ejemplo vincula o para elegir el mensaje resaltado en el menú de rebobinado, sin cambiar ninguna otra lista:
Antes de v2.1.283, esta lista ignoraba las vinculaciones de Select y tenía sus propias acciones: messageSelector:up, messageSelector:down, messageSelector:top, messageSelector:bottom y messageSelector:select. Si su keybindings.json vincula uno de esos nombres, la vinculación sigue funcionando en esta lista como la acción de selección que hace lo mismo. Home y End saltan a cualquiera de los extremos de la lista; antes de v2.1.283, teclas como Shift+K y Shift+J hacían eso de forma predeterminada.

Acciones de diferencias

Acciones disponibles en el contexto DiffDialog: La lista de archivos también responde a las acciones de selección, a través de sus teclas predeterminadas y sus vinculaciones de Select. select:previous y select:next se mueven al archivo anterior y siguiente, y Enter abre el diff del archivo seleccionado a través de select:accept. Para cambiar una de esas teclas solo para la lista de archivos, vincule la acción de selección en un bloque DiffDialog. Antes de v2.1.283, la lista de archivos ignoraba las vinculaciones de Select, y Enter abría el diff del archivo seleccionado a través de una acción diff:viewDetails separada. Si su keybindings.json vincula diff:viewDetails, la vinculación sigue funcionando en la lista de archivos como select:accept. La vista de detalle de diferencias también vincula teclas de estilo paginador a las acciones de desplazamiento estándar. Estas vinculaciones son parte del contexto DiffDialog y se aplican solo en la vista de detalle; los valores predeterminados del contexto Scroll enumerados en Acciones de desplazamiento no cambian.

Acciones del panel de diferencias

Acciones para el panel de diferencias que /diff abre en renderizado de pantalla completa. app:cycleDiffBase está en el contexto DiffPanel, que está activo mientras el panel está abierto; los otros están en Global. El panel requiere Claude Code v2.1.260 o posterior.

Acciones del selector de modelo

Acciones disponibles en el contexto ModelPicker:

Acciones del control deslizante de esfuerzo

Acciones disponibles en el contexto EffortSlider, el control deslizante que se abre cuando ejecuta /effort sin argumentos. Las teclas Enter y Escape del control deslizante no se pueden reasignar.

Acciones de selección

Acciones disponibles en el contexto Select: En paneles de lista como /skills y /mcp, Claude Code aplica sus vinculaciones de select:pageUp, select:pageDown, select:first y select:last. En la mayoría de otras listas, como el selector /model, se aplican sus vinculaciones de select:first y select:last. PageUp y PageDown avanzan por las opciones en esas listas independientemente de sus vinculaciones. Antes de v2.1.280, esas otras listas ignoraban Home, End y sus vinculaciones de select:first y select:last.

Acciones de plugins

Acciones disponibles en el contexto Plugin:

Acciones de configuración

Acciones disponibles en el contexto Settings. Las acciones select:accept y confirm:no se reutilizan de los contextos Select y Confirmation con comportamiento específico de Configuración: los cambios se aplican a cada configuración tan pronto como la cambia, por lo que Escape cierra el panel con sus cambios guardados en lugar de rechazarlos.

Acciones de agentes

Acciones disponibles en el contexto Agents, que se aplica en vista de agente, abierta con claude agents. Requiere v2.1.257 o posterior. Mientras la vista de agente está abierta, Claude Code utiliza la vinculación de Agents para cualquier tecla que el contexto Agents vincula, e ignora una vinculación de Chat o Global en la misma tecla. Por ejemplo, presionar Ctrl+S en la vista de agente cambia la agrupación de sesión en lugar de activar el chat:stash predeterminado. El atajo de editor externo de entrada de envío no es una acción de Agents. La vista de agente sigue la vinculación de chat:externalEditor del contexto Chat, Ctrl+G de forma predeterminada. Los atajos de teclado se activan en pulsaciones simples en la vista de agente, por lo que el acorde Ctrl+X Ctrl+E vinculado a chat:externalEditor no abre el editor allí.

Acciones de voz

Acciones disponibles en el contexto Chat cuando dictado de voz está habilitado:

Acciones de desplazamiento

Acciones disponibles en el contexto Scroll cuando renderizado de pantalla completa está habilitado:

Sintaxis de pulsación de tecla

Modificadores

Use teclas modificadoras con el separador +:
  • ctrl o control - Tecla Control
  • shift - Tecla Shift
  • alt, opt, option, o meta - Tecla Alt en Windows y Linux, tecla Opción en macOS
  • cmd, command, super, o win - Tecla Comando en macOS, tecla Windows en Windows, tecla Super en Linux
El grupo cmd solo se detecta en terminales que reportan el modificador Super, como aquellos que soportan el protocolo de teclado Kitty o el modo modifyOtherKeys de xterm. La mayoría de terminales no lo envían, así que use ctrl o meta para atajos de teclado que desee que funcionen en todas partes. Por ejemplo:

Letras mayúsculas

Claude Code analiza los nombres de teclas sin distinción de mayúsculas y minúsculas, por lo que K es el mismo atajo de teclado que k y ctrl+K es lo mismo que ctrl+k. Para vincular Shift y una letra, escriba shift+k.

Diseños de teclado no estadounidenses

Escriba los nombres de teclas de los atajos de teclado Ctrl como caracteres latinos incluso cuando su diseño de teclado activo escribe otros caracteres. La forma en que Claude Code coincide con la tecla que presiona con un atajo de teclado depende del tipo de diseño:
  • Bajo un diseño no latino como el cirílico, Claude Code coincide con los atajos de teclado Ctrl por la posición de la tecla en el diseño estadounidense cuando la terminal utiliza el protocolo de teclado Kitty e informa esa posición. En tal terminal, con un diseño ruso activo, presionar Ctrl y la tecla W física activa ctrl+w. En una terminal que no informa la posición, Claude Code coincide con lo que la terminal envía para la pulsación de tecla: un código de control ASCII activa el atajo latino, y una pulsación de tecla que llega como el carácter cirílico no coincide con ningún atajo de teclado
  • Bajo diseños que reorganizan letras latinas, como AZERTY, Claude Code coincide con la letra que escribe la tecla, por lo que presionar Ctrl y la tecla etiquetada A activa ctrl+a
Antes de v2.1.247, presionar un atajo de teclado Ctrl bajo un diseño no latino no activaba su atajo de teclado en terminales que utilizan el protocolo de teclado Kitty, como Ghostty, Kitty, WezTerm e iTerm2.

Acordes

Los acordes son secuencias de pulsaciones de teclas separadas por espacios:
Presione cada pulsación de tecla dentro de 3 segundos de la anterior. Si espera más tiempo, Claude Code cancela el acorde y muestra un breve aviso indicándolo.

Teclas especiales

  • escape o esc - Tecla Escape
  • enter o return - Tecla Enter
  • tab - Tecla Tab
  • space - Barra espaciadora
  • up, down, left, right - Teclas de flecha
  • pageup, pagedown - Teclas Page Up y Page Down
  • home, end - Teclas Home y End
  • backspace, delete - Teclas de eliminación
  • wheelup, wheeldown - Eventos de desplazamiento de rueda del ratón

Desvinculación de atajos predeterminados

Establezca una acción en null para desvinculación de un atajo predeterminado:
Esto también funciona para vinculaciones de acordes. Desvinculación de cada acorde que comparte un prefijo libera ese prefijo para su uso como una vinculación de tecla única. Un acorde en cualquier contexto activo mantiene su prefijo reservado, por lo que debe desvinculación de cada acorde en el contexto que lo define. Claude Code vincula estos acordes predeterminados en el prefijo ctrl+x: ctrl+x ctrl+k, ctrl+x ctrl+e, ctrl+x enter, ctrl+x ctrl+a, ctrl+x ctrl+s, y ctrl+x tab en Chat, ctrl+x ctrl+b en Task, y ctrl+x b en DiffPanel. El acorde ctrl+x enter requiere v2.1.247 o posterior, ctrl+x b, ctrl+x ctrl+a, y ctrl+x tab requieren v2.1.260 o posterior, y ctrl+x ctrl+s requiere v2.1.275 o posterior. Para reclamar ctrl+x en sí mismo como una vinculación de tecla única, desvinculación de todos ellos:
Si desvincula algunos pero no todos los acordes en un prefijo, presionar el prefijo aún entra en modo de espera de acorde para las vinculaciones restantes.

Atajos reservados

Estos atajos no se pueden reasignar:

Conflictos de terminal

Algunos atajos pueden entrar en conflicto con multiplexores de terminal:

Campos de texto

Si vincula una letra, dígito o espacio sin modificadores, aún puede escribir ese carácter en un campo de texto dentro de un diálogo o panel. Uno de esos campos es la respuesta Otro a una pregunta que Claude le hace. Mientras el campo tiene el enfoque, una tecla imprimible que presiona sin Ctrl, Alt o Cmd va al campo, y Claude Code no la compara con sus atajos de teclado. Estas teclas aún ejecutan sus atajos de teclado mientras el campo tiene el enfoque:
  • Teclas que no escriben un carácter, como Enter, Escape, Tab y las teclas de flecha
  • Cualquier tecla presionada con Ctrl, Alt o Cmd
  • El segundo pulsación de una combinación ya en progreso
En el símbolo del sistema principal, Claude Code compara cada tecla con los contextos activos, como Chat, y escribe la tecla solo cuando ningún atajo de teclado la toma.

Interacción del modo Vim

Cuando el modo vim está habilitado mediante /config → Editor mode, los atajos de teclado y el modo vim funcionan de forma independiente:
  • Modo Vim maneja la entrada a nivel de entrada de texto (movimiento del cursor, modos, movimientos)
  • Atajos de teclado manejan acciones a nivel de componente (alternar tareas, enviar, etc.)
  • La tecla Escape en modo vim cambia de modo INSERT a NORMAL; no activa chat:cancel
  • La mayoría de los atajos Ctrl+tecla pasan a través del modo vim al sistema de atajos de teclado
  • Las teclas Vim no se pueden remapear a través del archivo de atajos de teclado. Para mapear una secuencia de dos teclas en modo INSERT como jj a Escape, use la configuración vimInsertModeRemaps
  • En modo NORMAL de vim, ? muestra el menú de ayuda (comportamiento de vim)
  • En modo NORMAL de vim, / abre la búsqueda de historial, lo mismo que Ctrl+R en modo estándar

Validación

Claude Code valida sus atajos de teclado y muestra advertencias para:
  • Errores de análisis (JSON o estructura inválida)
  • Nombres de contexto inválidos
  • Valores de acción inválidos, como una acción que no es una cadena o null
  • Nombres de acción desconocidos, como un error tipográfico de una acción registrada. Claude Code omite la vinculación y mantiene cualquier vinculación predeterminada para esa tecla en vigor. Antes de v2.1.246, una vinculación con un nombre de acción desconocido deshabilitaba silenciosamente esa tecla
  • Conflictos de atajos reservados
  • Vinculaciones duplicadas en el mismo contexto
Claude Code reporta advertencias cuando el archivo se carga y escribe cada una en el registro de depuración. Inicie Claude Code con --debug para ver los detalles.