Personalizar atajos de teclado
Personaliza atajos de teclado en Claude Code con un archivo de configuración de keybindings.
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.
| Campo | Descripción |
|---|---|
$schema |
URL de esquema JSON opcional para autocompletado del editor |
$docs |
URL de documentación opcional |
bindings |
Array de bloques de vinculación por contexto |
Este ejemplo vincula Ctrl+E para abrir un editor externo en el contexto de chat, y desvincula Ctrl+U:
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/es/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}
Contextos
Cada bloque de vinculación especifica un contexto donde se aplican los atajos de teclado:
| Contexto | Descripción |
|---|---|
Global |
Se aplica en todas partes de la aplicación |
Chat |
Área principal de entrada de chat |
Autocomplete |
Menú de autocompletado está abierto |
Settings |
Menú de configuración |
Confirmation |
Diálogos de permiso y confirmación |
Tabs |
Componentes de navegación de pestañas |
Help |
Menú de ayuda es visible |
Transcript |
Visor de transcripción |
HistorySearch |
Modo de búsqueda de historial (Ctrl+R) |
Task |
Tarea de fondo está en ejecución |
ThemePicker |
Diálogo de selector de tema |
Attachments |
Navegación de adjunto de imagen en diálogos de selección |
Footer |
Navegación de indicador de pie de página (tareas, equipos, diff, artefactos) |
MessageSelector |
Selección de mensaje de diálogo de rebobinado y resumen |
DiffDialog |
Navegación del visor de diff |
DiffPanel |
El panel de diff está abierto |
ModelPicker |
Nivel de esfuerzo del selector de modelo |
EffortSlider |
Deslizador de esfuerzo abierto por /effort |
Select |
Componentes genéricos de selección/lista |
Plugin |
Diálogo de plugin (examinar, descubrir, administrar) |
Agents |
Vista de agente (claude agents) |
Scroll |
Desplazamiento de conversación y selección de texto en modo pantalla completa |
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:
| Acción | Predeterminado | Descripción |
|---|---|---|
app:interrupt |
Ctrl+C | Cancelar operación actual |
app:exit |
Ctrl+D | Salir de Claude Code. Presione dos veces dentro de 800ms para confirmar |
app:redraw |
(sin asignar) | Forzar redibujado de terminal |
app:toggleTodos |
Ctrl+T | Alternar visibilidad de la lista de verificación de tareas de Claude. Esta no es la vista de tarea en segundo plano /tasks |
app:toggleTranscript |
Ctrl+O | Alternar transcripción detallada |
Acciones de historial
Acciones para navegar por el historial de comandos:
| Acción | Predeterminado | Descripción |
|---|---|---|
history:search |
Ctrl+R | Abrir búsqueda de historial |
history:previous |
Arriba | Elemento de historial anterior |
history:next |
Abajo | Siguiente elemento de historial |
Acciones de chat
Acciones disponibles en el contexto Chat:
| Acción | Predeterminado | Descripción |
|---|---|---|
chat:cancel |
Escape | Cancelar entrada actual |
chat:clearInput |
Ctrl+L | Forzar un redibujado de pantalla completa, preservando la entrada y la conversación |
chat:clearScreen |
Cmd+K | Igual que chat:clearInput. Consulte Limpiar la conversación para ver cómo se comporta Cmd+K en iTerm2 y Terminal.app |
chat:killAgents |
Ctrl+X Ctrl+K | Detener todos los subagentes en segundo plano en esta sesión y desactivar respuestas automáticas de artefactos para el resto de ella |
chat:cycleMode |
Shift+Tab* | Ciclar modos de permisos |
chat:modelPicker |
Meta+P | Abrir selector de modelo |
chat:fastMode |
Meta+O | Alternar modo rápido |
chat:thinkingToggle |
Meta+T | Alternar pensamiento extendido |
chat:submit |
Enter | Enviar mensaje |
chat:queueSubmit |
Ctrl+X Enter | Enviar el mensaje, marcado para esperar su turno: mientras Claude está trabajando, Claude Code lo pone en cola y nunca interrumpe el turno. A diferencia de chat:submit, envía el borrador incluso mientras se resalta una sugerencia de autocompletado. Requiere v2.1.247 o posterior |
chat:sendNow |
Ctrl+Enter, Ctrl+X Ctrl+S | Interrumpir el turno en ejecución para que sus mensajes en cola y su borrador con ellos se envíen de inmediato. Cuando nada se está ejecutando, envía el borrador, y en modo shell pone en cola el comando sin interrumpir. Las terminales que no informan de teclas extendidas entregan Ctrl+Enter como Enter simple, por lo que Ctrl+X Ctrl+S es el atajo que funciona en cualquier terminal. Requiere v2.1.275 o posterior |
chat:newline |
Ctrl+J | Insertar una nueva línea sin enviar |
chat:undo |
Ctrl+_, Ctrl+Shift+- | Deshacer última acción |
chat:externalEditor |
Ctrl+G, Ctrl+X Ctrl+E | Abrir en editor externo. El envío de entrada de vista de agente también sigue los atajos de teclado de una sola pulsación de esta acción |
chat:stash |
Ctrl+S | Guardar indicación actual |
chat:imagePaste |
Ctrl+V (Alt+V en Windows y WSL) | Pegar imagen desde el portapapeles. En WSL, ambos atajos están vinculados de forma predeterminada |
*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:
| Acción | Predeterminado | Descripción |
|---|---|---|
autocomplete:accept |
Tab | Aceptar sugerencia |
autocomplete:dismiss |
Escape | Descartar menú |
autocomplete:previous |
Arriba | Sugerencia anterior |
autocomplete:next |
Abajo | Siguiente sugerencia |
Acciones de confirmación
Acciones disponibles en el contexto Confirmation:
| Acción | Predeterminado | Descripción |
|---|---|---|
confirm:yes |
Enter | Confirmar acción |
confirm:no |
Escape | Rechazar acción |
confirm:previous |
Arriba | Opción anterior |
confirm:next |
Abajo | Siguiente opción |
confirm:nextField |
Tab | Siguiente campo |
confirm:previousField |
(sin asignar) | Campo anterior |
confirm:toggle |
Space | Alternar selección |
confirm:cycleMode |
Shift+Tab* | Ciclar modos de permisos. En un aviso de permiso de archivo, cierra un campo de comentario abierto; sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |
*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.
Este ejemplo vincula y a confirm:yes y n a confirm:no:
{
"bindings": [
{
"context": "Confirmation",
"bindings": {
"y": "confirm:yes",
"n": "confirm:no"
}
}
]
}
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:
| Acción | Predeterminado | Descripción |
|---|---|---|
permission:toggleDebug |
(sin asignar) | Alternar información de depuración de permisos. El valor predeterminado anterior de Ctrl+D se eliminó en v2.1.146 porque sombreaba app:exit |
Acciones de transcripción
Acciones disponibles en el contexto Transcript:
| Acción | Predeterminado | Descripción |
|---|---|---|
transcript:toggleShowAll |
Ctrl+E | Alternar mostrar todo el contenido |
transcript:exit |
q, Ctrl+C, Escape | Salir de la vista de transcripción |
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:
| Acción | Predeterminado | Descripción |
|---|---|---|
historySearch:next |
Ctrl+R | Siguiente coincidencia |
historySearch:accept |
Escape, Tab | Aceptar selección |
historySearch:cancel |
Ctrl+C | Cancelar búsqueda |
historySearch:execute |
Enter | Ejecutar comando seleccionado |
historySearch:cycleScope |
Ctrl+S | Ciclar alcance: sesión, proyecto, en todas partes |
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:
| Acción | Predeterminado | Descripción |
|---|---|---|
task:background |
Ctrl+B, Ctrl+X Ctrl+B | Poner tarea actual en segundo plano. El acorde Ctrl+X Ctrl+B evita el conflicto de prefijo de tmux |
Acciones de tema
Acciones disponibles en el contexto ThemePicker:
| Acción | Predeterminado | Descripción |
|---|---|---|
theme:toggleSyntaxHighlighting |
Ctrl+T | Alternar resaltado de sintaxis |
Acciones de ayuda
Acciones disponibles en el contexto Help:
| Acción | Predeterminado | Descripción |
|---|---|---|
help:dismiss |
Escape | Cerrar menú de ayuda |
Acciones de pestañas
Acciones disponibles en el contexto Tabs:
| Acción | Predeterminado | Descripción |
|---|---|---|
tabs:next |
Tab, Right | Siguiente pestaña |
tabs:previous |
Shift+Tab, Left | Pestaña anterior |
Acciones de adjuntos
Acciones disponibles en el contexto Attachments:
| Acción | Predeterminado | Descripción |
|---|---|---|
attachments:next |
Right | Siguiente adjunto |
attachments:previous |
Left | Adjunto anterior |
attachments:remove |
Backspace, Delete | Eliminar adjunto seleccionado |
attachments:exit |
Down, Escape | Salir de la navegación de adjuntos |
Acciones de pie de página
Acciones disponibles en el contexto Footer:
| Acción | Predeterminado | Descripción |
|---|---|---|
footer:next |
Right | Siguiente elemento de pie de página |
footer:previous |
Left | Elemento de pie de página anterior |
footer:up |
Up | Navegar hacia arriba en el pie de página (deselecciona en la parte superior) |
footer:down |
Down | Navegar hacia abajo en el pie de página |
footer:openSelected |
Enter | Abrir elemento de pie de página seleccionado |
footer:clearSelection |
Escape | Borrar selección de pie de página |
footer:dismiss |
Backspace, Delete | Descartar el enlace de artefacto seleccionado del pie de página; el artefacto publicado en sí no se ve afectado. En otras filas de pie de página, estas teclas no tienen efecto. Requiere v2.1.217 o posterior |
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
Acciones disponibles en el contexto MessageSelector:
| Acción | Predeterminado | Descripción |
|---|---|---|
messageSelector:up |
Up, K, Ctrl+P | Mover hacia arriba en la lista |
messageSelector:down |
Down, J, Ctrl+N | Mover hacia abajo en la lista |
messageSelector:top |
Ctrl+Up, Shift+Up, Meta+Up, Shift+K | Saltar al principio |
messageSelector:bottom |
Ctrl+Down, Shift+Down, Meta+Down, Shift+J | Saltar al final |
messageSelector:select |
Enter | Seleccionar mensaje |
Acciones de diferencias
Acciones disponibles en el contexto DiffDialog:
| Acción | Predeterminado | Descripción |
|---|---|---|
diff:dismiss |
Escape | Cerrar visor de diferencias; desde la vista de detalle, vuelve a la lista de archivos en su lugar |
diff:previousSource |
Left | Fuente de diferencia anterior |
diff:nextSource |
Right | Siguiente fuente de diferencia |
diff:previousFile |
Up, K | Archivo anterior en la lista de archivos; desplazarse hacia arriba una línea en la vista de detalle |
diff:nextFile |
Down, J | Siguiente archivo en la lista de archivos; desplazarse hacia abajo una línea en la vista de detalle |
diff:viewDetails |
Enter | Ver detalles de diferencias |
diff:back |
(sin asignar) | Retroceder en el visor de diferencias. Escape realiza la acción de retroceso a través de diff:dismiss. El valor predeterminado anterior de Left en la vista de detalle se eliminó en v2.1.203 |
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.
| Acción | Predeterminado | Descripción |
|---|---|---|
scroll:pageUp |
PageUp | Desplazarse hacia arriba media ventana gráfica |
scroll:pageDown |
PageDown | Desplazarse hacia abajo media ventana gráfica |
scroll:fullPageUp |
Shift+Space, B | Desplazarse hacia arriba una ventana gráfica completa |
scroll:fullPageDown |
Space | Desplazarse hacia abajo una ventana gráfica completa |
scroll:top |
G, Home | Saltar al principio |
scroll:bottom |
Shift+G, End | Saltar al final |
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.
| Acción | Predeterminado | Descripción |
|---|---|---|
app:toggleReplTab |
(sin asignar) | Abrir o cerrar el panel de diferencias, igual que ejecutar /diff |
app:cycleDiffBase |
Ctrl+X B | Ciclar la base de comparación del panel: esta sesión, sin confirmar, luego rama |
app:diffFileListUp |
Ctrl+Up, Meta+Up | Desplazarse hacia arriba en la lista de archivos del panel cuando se desborda |
app:diffFileListDown |
Ctrl+Down, Meta+Down | Desplazarse hacia abajo en la lista de archivos del panel cuando se desborda |
app:toggleDiffNoiseFilter |
(sin asignar) | Mostrar u ocultar archivos de prueba y generados en el panel |
app:toggleDiffPreSession |
(sin asignar) | Expandir o contraer los cambios de antes de esta sesión |
Acciones del selector de modelo
Acciones disponibles en el contexto ModelPicker:
| Acción | Predeterminado | Descripción |
|---|---|---|
modelPicker:decreaseEffort |
Left | Disminuir nivel de esfuerzo |
modelPicker:increaseEffort |
Right | Aumentar nivel de esfuerzo |
modelPicker:thisSessionOnly |
s | Aplicar modelo resaltado solo a esta sesión |
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 Left, Right, Enter y Escape del control deslizante no se pueden reasignar.
| Acción | Predeterminado | Descripción |
|---|---|---|
effortSlider:thisSessionOnly |
s | Aplicar el nivel de esfuerzo enfocado solo a esta sesión. Requiere v2.1.257 o posterior |
Acciones de selección
Acciones disponibles en el contexto Select:
| Acción | Predeterminado | Descripción |
|---|---|---|
select:next |
Down, J, Ctrl+N | Siguiente opción |
select:previous |
Up, K, Ctrl+P | Opción anterior |
select:pageUp |
PageUp | Mover hacia arriba una página de opciones |
select:pageDown |
PageDown | Mover hacia abajo una página de opciones |
select:first |
Home | Primera opción |
select:last |
End | Última opción |
select:accept |
Enter | Aceptar selección |
select:cancel |
Escape | Cancelar selección |
Claude Code aplica sus vinculaciones de select:pageUp, select:pageDown, select:first y select:last en el menú /skills. 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:
| Acción | Predeterminado | Descripción |
|---|---|---|
plugin:toggle |
Space | Alternar selección de plugin |
plugin:install |
I | Instalar plugins seleccionados |
plugin:favorite |
F | Marcar el plugin seleccionado como favorito para que se ordene cerca de la parte superior de la pestaña Instalado |
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.
| Acción | Predeterminado | Descripción |
|---|---|---|
settings:search |
/ | Entrar en modo de búsqueda |
settings:retry |
R | Reintentar cargar datos de uso en caso de error |
select:accept |
Enter, Space | Cambiar la configuración seleccionada o abrir su submenú |
confirm:no |
Escape | Cerrar el panel. Los cambios ya están guardados |
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.
| Acción | Predeterminado | Descripción |
|---|---|---|
agents:switchView |
Ctrl+S | Cambiar agrupación de sesión entre estado y directorio |
agents:togglePin |
Ctrl+T | Fijar o desfijar la sesión seleccionada |
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:
| Acción | Predeterminado | Descripción |
|---|---|---|
voice:pushToTalk |
Space | Dictar una indicación. Mantenga presionado o toque según el modo /voice |
Acciones de desplazamiento
Acciones disponibles en el contexto Scroll cuando renderizado de pantalla completa está habilitado:
| Acción | Predeterminado | Descripción |
|---|---|---|
scroll:lineUp |
wheelup |
Desplazarse hacia arriba una línea. El desplazamiento de la rueda del ratón activa esta acción |
scroll:lineDown |
wheeldown |
Desplazarse hacia abajo una línea. El desplazamiento de la rueda del ratón activa esta acción |
scroll:pageUp |
PageUp | Desplazarse hacia arriba media altura de ventana gráfica |
scroll:pageDown |
PageDown | Desplazarse hacia abajo media altura de ventana gráfica |
scroll:top |
Ctrl+Home | Saltar al inicio de la conversación |
scroll:bottom |
Ctrl+End | Saltar al mensaje más reciente y reactivar el seguimiento automático |
scroll:halfPageUp |
(sin asignar) | Desplazarse hacia arriba media altura de ventana gráfica. Mismo comportamiento que scroll:pageUp, proporcionado para reasignaciones de estilo vi |
scroll:halfPageDown |
(sin asignar) | Desplazarse hacia abajo media altura de ventana gráfica. Mismo comportamiento que scroll:pageDown, proporcionado para reasignaciones de estilo vi |
scroll:fullPageUp |
(sin asignar) | Desplazarse hacia arriba la altura completa de la ventana gráfica |
scroll:fullPageDown |
(sin asignar) | Desplazarse hacia abajo la altura completa de la ventana gráfica |
selection:copy |
Ctrl+Shift+C / Cmd+C | Copiar el texto seleccionado al portapapeles |
selection:clear |
(sin asignar) | Borrar la selección de texto activa. Requiere v2.1.234 o posterior |
selection:extendLeft |
Shift+Left | Extender la selección activa una columna hacia la izquierda |
selection:extendRight |
Shift+Right | Extender la selección activa una columna hacia la derecha |
selection:extendUp |
Shift+Up | Extender la selección activa una fila hacia arriba. Desplaza la ventana gráfica cuando la selección alcanza el borde superior |
selection:extendDown |
Shift+Down | Extender la selección activa una fila hacia abajo. Desplaza la ventana gráfica cuando la selección alcanza el borde inferior |
selection:extendLineStart |
Shift+Home | Extender la selección activa al inicio de la línea |
selection:extendLineEnd |
Shift+End | Extender la selección activa al final de la línea |
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
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:
ctrl+k Ctrl + K
shift+tab Shift + Tab
meta+p Opción + P en macOS, Alt + P en otros lugares
ctrl+shift+c Múltiples modificadores
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:
ctrl+k ctrl+s Presione Ctrl+K, suelte, luego Ctrl+S
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
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 en null para desvinculación de un atajo predeterminado:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null
}
}
]
}
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:
{
"bindings": [
{
"context": "Task",
"bindings": {
"ctrl+x ctrl+b": null
}
},
{
"context": "DiffPanel",
"bindings": {
"ctrl+x b": null
}
},
{
"context": "Chat",
"bindings": {
"ctrl+x ctrl+k": null,
"ctrl+x ctrl+e": null,
"ctrl+x enter": null,
"ctrl+x ctrl+a": null,
"ctrl+x ctrl+s": null,
"ctrl+x tab": null,
"ctrl+x": "chat:newline"
}
}
]
}
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:
| Atajo | Razón |
|---|---|
| Ctrl+C | Interrupción/cancelación codificada |
| Ctrl+D | Salida codificada |
| Ctrl+M | Claude Code siempre lo recibe como Enter |
| Ctrl+[ | Claude Code siempre lo recibe como Escape. En terminales que utilizan el protocolo de teclado Kitty, esto requiere v2.1.242 o posterior |
| Ctrl+I | Claude Code siempre lo recibe como Tab |
| Ctrl+H | Envía el byte ASCII de retroceso. Cómo Claude Code lo lee en Windows depende de su terminal y de la variable de entorno CLAUDE_CODE_BS_AS_CTRL_BACKSPACE |
| Caps Lock | No se entrega a las aplicaciones de terminal |
Conflictos de terminal
Algunos atajos pueden entrar en conflicto con multiplexores de terminal:
| Atajo | Conflicto |
|---|---|
| Ctrl+B | Prefijo de tmux (presione dos veces para enviar) |
| Ctrl+A | Prefijo de GNU screen |
| Ctrl+Z | Suspensión de proceso Unix (SIGTSTP) |
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
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.