/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 arraybindings. 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 formatonamespace: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 contextoGlobal:
Acciones de historial
Acciones para navegar por el historial de comandos:Acciones de chat
Acciones disponibles en el contextoChat:
*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 contextoAutocomplete:
Acciones de confirmación
Acciones disponibles en el contextoConfirmation:
*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:
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 contextoConfirmation para diálogos de permisos:
Acciones de transcripción
Acciones disponibles en el contextoTranscript:
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 contextoHistorySearch:
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 contextoTask:
Acciones de tema
Acciones disponibles en el contextoThemePicker:
Acciones de ayuda
Acciones disponibles en el contextoHelp:
Acciones de pestañas
Acciones disponibles en el contextoTabs:
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 contextoAttachments:
Acciones de pie de página
Acciones disponibles en el contextoFooter:
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 deSelect 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:
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 contextoDiffDialog:
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 contextoModelPicker:
Acciones del control deslizante de esfuerzo
Acciones disponibles en el contextoEffortSlider, 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 contextoSelect:
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 contextoPlugin:
Acciones de configuración
Acciones disponibles en el contextoSettings. 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 contextoAgents, 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 contextoChat cuando dictado de voz está habilitado:
Acciones de desplazamiento
Acciones disponibles en el contextoScroll cuando renderizado de pantalla completa está habilitado:
Sintaxis de pulsación de tecla
Modificadores
Use teclas modificadoras con el separador+:
ctrlocontrol- Tecla Controlshift- Tecla Shiftalt,opt,option, ometa- Tecla Alt en Windows y Linux, tecla Opción en macOScmd,command,super, owin- Tecla Comando en macOS, tecla Windows en Windows, tecla Super en Linux
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 queK 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
Acordes
Los acordes son secuencias de pulsaciones de teclas separadas por espacios:Teclas especiales
escapeoesc- Tecla Escapeenteroreturn- Tecla Entertab- Tecla Tabspace- Barra espaciadoraup,down,left,right- Teclas de flechapageup,pagedown- Teclas Page Up y Page Downhome,end- Teclas Home y Endbackspace,delete- Teclas de eliminaciónwheelup,wheeldown- Eventos de desplazamiento de rueda del ratón
Desvinculación de atajos predeterminados
Establezca una acción ennull para desvinculación de un atajo predeterminado:
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:
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 respuestaOtro 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
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
jja Escape, use la configuraciónvimInsertModeRemaps - 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
--debug para ver los detalles.