/keybindings pour créer ou ouvrir votre fichier de configuration à ~/.claude/keybindings.json.
Fichier de configuration
Le fichier de configuration des liaisons de touches est un objet avec un tableaubindings. Chaque bloc spécifie un contexte et une carte des séquences de touches aux actions.
Les modifications du fichier keybindings sont automatiquement détectées et appliquées sans redémarrer Claude Code.
Cet exemple lie
Ctrl+E pour ouvrir un éditeur externe dans le contexte de chat, et délié Ctrl+S :
Contextes
Chaque bloc de liaison spécifie un contexte où les liaisons s’appliquent :
Avant la v2.1.205, un contexte
Doctor et une action doctor:fix existaient pour l’écran de diagnostics /doctor.
Actions disponibles
Les actions suivent un formatnamespace:action, tel que chat:submit pour envoyer un message ou app:toggleTodos pour afficher la liste des tâches. Chaque contexte a des actions spécifiques disponibles.
Actions d’application
Actions disponibles dans le contexteGlobal :
Actions d’historique
Actions pour naviguer dans l’historique des commandes :Actions de chat
Actions disponibles dans le contexteChat :
*Sous Windows sans mode VT (Node <24.2.0/<22.17.0, Bun <1.2.23), la valeur par défaut est Meta+M.
Actions d’autocomplétion
Actions disponibles dans le contexteAutocomplete :
Actions de confirmation
Actions disponibles dans le contexteConfirmation :
*Sous Windows sans mode VT (Node <24.2.0/<22.17.0, Bun <1.2.23), la valeur par défaut est Meta+M.
Avant v2.1.257, une action
confirm:toggleExplanation, liée à Ctrl+E par défaut, affichait une explication générée par le modèle de la commande sur les invites de permission Bash et PowerShell.
Les dialogues utilisent confirm:yes et confirm:no pour accepter et annuler même lorsqu’ils ne posent pas une question oui ou non. Si vous liez une simple lettre telle que y ou n dans ce contexte, la lettre agit également sur les dialogues qui ne la montrent jamais comme clé. Un dialogue qui affiche y et n comme ses clés les lit lui-même et n’a besoin d’aucune liaison.
En général, appuyer sur Ctrl+C ou Ctrl+D deux fois ferme le dialogue au lieu de quitter Claude Code. L’indice après la première pression indique si la deuxième pression ferme le dialogue ou quitte. Les deux touches sont réservées et ne peuvent pas être reliées.
Cet exemple lie y à confirm:yes et n à confirm:no :
y et n tapent toujours comme des lettres pendant qu’un champ de texte a le focus.
Avant v2.1.280, y était également lié à confirm:yes et n à confirm:no par défaut. Si vous avez créé votre keybindings.json avec /keybindings avant v2.1.280, le fichier liste les deux liaisons et elles restent en vigueur jusqu’à ce que vous supprimiez ces deux lignes.
Actions de permission
Actions disponibles dans le contexteConfirmation pour les dialogues de permission :
Actions de transcription
Actions disponibles dans le contexteTranscript :
transcript:toggleShowAll s’applique uniquement dans le rendu classique ; dans le rendu plein écran, la visionneuse de transcription n’offre pas de basculement d’affichage complet.
Actions de recherche d’historique
Actions disponibles dans le contexteHistorySearch :
Les valeurs par défaut de
historySearch:next, historySearch:accept, historySearch:cancel et historySearch:execute s’appliquent à la recherche d’historique en ligne dans le rendu classique, qui recherche toujours les invites de tous les projets. historySearch:cycleScope prend effet uniquement dans le rendu plein écran, où Ctrl+R ouvre un dialogue de recherche à la place et Ctrl+S bascule sa portée. Les autres touches du dialogue sont fixes et ne peuvent pas être reliées : Entrée ou Tab place la correspondance en surbrillance dans l’entrée d’invite et Échap annule.
Actions de tâche
Actions disponibles dans le contexteTask :
Actions de thème
Actions disponibles dans le contexteThemePicker :
Actions d’aide
Actions disponibles dans le contexteHelp :
Actions d’onglets
Actions disponibles dans le contexteTabs :
Dans un dialogue avec onglets,
tabs:next et tabs:previous basculent les onglets pendant que la ligne d’onglets a le focus. Dans certains dialogues, tels que /help et /sandbox, les touches de basculement d’onglets fonctionnent également à partir du contenu de l’onglet.
Haut et Bas déplacent le focus entre la ligne d’onglets et le contenu de l’onglet, et une liste dans le contenu répond aux touches uniquement pendant qu’elle a le focus.
Actions de pièces jointes
Actions disponibles dans le contexteAttachments :
Actions de pied de page
Actions disponibles dans le contexteFooter :
Pendant qu’un élément de pied de page est sélectionné, tel qu’une ligne dans le panneau agent sous l’invite,
Entrée l’ouvre même lorsque vous reliez Entrée dans le contexte Chat à chat:queueSubmit ou chat:newline.
Les liaisons Chat sur les touches que le contexte Footer ne lie pas, telles que Maj+Tab pour chat:cycleMode, continuent de fonctionner pendant qu’un élément est sélectionné.
Actions du sélecteur de message
Dans la liste des messages du menu de rembobinage, vous vous déplacez dans les messages et en choisissez un avec les actions de sélection et leurs touches par défaut. Vos liaisonsSelect pour ces actions s’appliquent également là. Le contexte MessageSelector n’a pas d’actions ou de liaisons par défaut qui lui sont propres. Utilisez-le pour modifier une touche pour cette liste uniquement, en liant une action Select telle que select:accept dans un bloc MessageSelector.
Cet exemple lie o pour choisir le message en surbrillance dans le menu de rembobinage, sans modifier aucune autre liste :
Select et avait ses propres actions : messageSelector:up, messageSelector:down, messageSelector:top, messageSelector:bottom et messageSelector:select. Si votre keybindings.json lie l’un de ces noms, la liaison continue de fonctionner dans cette liste en tant que l’action Select qui fait la même chose. Home et End sautent à l’une ou l’autre extrémité de la liste ; avant v2.1.283, des touches telles que Maj+K et Maj+J le faisaient par défaut.
Actions de diff
Actions disponibles dans le contexteDiffDialog :
La liste des fichiers répond également aux actions de sélection, via leurs touches par défaut et vos liaisons
Select. select:previous et select:next se déplacent vers le fichier précédent et suivant, et Entrée ouvre le diff du fichier sélectionné via select:accept. Pour modifier l’une de ces touches pour la liste des fichiers uniquement, liez l’action Select dans un bloc DiffDialog.
Avant v2.1.283, la liste des fichiers ignorait les liaisons Select, et Entrée ouvrait le diff du fichier sélectionné via une action diff:viewDetails distincte. Si votre keybindings.json lie diff:viewDetails, la liaison continue de fonctionner dans la liste des fichiers en tant que select:accept.
La vue détaillée du diff lie également les touches de style paginateur aux actions de défilement standard. Ces liaisons font partie du contexte DiffDialog et s’appliquent uniquement dans la vue détaillée ; les valeurs par défaut du contexte Scroll listées sous Actions de défilement sont inchangées.
Actions du panneau de diff
Actions pour le panneau de diff que/diff ouvre dans le rendu plein écran. app:cycleDiffBase est dans le contexte DiffPanel, qui est actif pendant que le panneau est ouvert ; les autres sont Global. Le panneau nécessite Claude Code v2.1.260 ou ultérieure.
Actions du sélecteur de modèle
Actions disponibles dans le contexteModelPicker :
Actions du curseur d’effort
Actions disponibles dans le contexteEffortSlider, le curseur qui s’ouvre lorsque vous exécutez /effort sans arguments. Les touches Entrée et Échappement du curseur ne peuvent pas être reliées.
Actions de sélection
Actions disponibles dans le contexteSelect :
Dans les panneaux de liste tels que
/skills et /mcp, Claude Code applique vos liaisons select:pageUp, select:pageDown, select:first et select:last. Dans la plupart des autres listes, telles que le sélecteur /model, vos liaisons select:first et select:last s’appliquent. PageUp et PageDown parcourent les options dans ces listes indépendamment de vos liaisons.
Avant v2.1.280, ces autres listes ignoraient Home, End, et vos liaisons select:first et select:last.
Actions de plugin
Actions disponibles dans le contextePlugin :
Actions des paramètres
Actions disponibles dans le contexteSettings. Les actions select:accept et confirm:no sont réutilisées à partir des contextes Sélection et Confirmation avec un comportement spécifique aux paramètres : les modifications s’appliquent à chaque paramètre dès que vous le modifiez, donc Échappement ferme le panneau avec vos modifications enregistrées plutôt que de refuser.
Actions des agents
Actions disponibles dans le contexteAgents, qui s’applique dans la vue agent, ouverte avec claude agents. Nécessite v2.1.257 ou ultérieure.
Pendant que la vue agent est ouverte, Claude Code utilise la liaison
Agents pour toute touche que le contexte Agents lie, et il ignore une liaison Chat ou Global sur la même touche. Par exemple, appuyer sur Ctrl+S dans la vue agent bascule le regroupement de session plutôt que de déclencher la valeur par défaut chat:stash.
Le raccourci d’éditeur externe de la saisie de dispatch n’est pas une action Agents. La vue agent suit la liaison chat:externalEditor du contexte Chat, Ctrl+G par défaut.
Les liaisons se déclenchent sur des traits simples dans la vue agent, donc l’accord Ctrl+X Ctrl+E lié à chat:externalEditor n’ouvre pas l’éditeur là.
Actions vocales
Actions disponibles dans le contexteChat lorsque la dictée vocale est activée :
Actions de défilement
Actions disponibles dans le contexteScroll lorsque le rendu plein écran est activé :
Syntaxe des séquences de touches
Modificateurs
Utilisez les touches de modification avec le séparateur+ :
ctrloucontrol- Touche Contrôleshift- Touche Majalt,opt,option, oumeta- Touche Alt sur Windows et Linux, touche Option sur macOScmd,command,super, ouwin- Touche Commande sur macOS, touche Windows sur Windows, touche Super sur Linux
cmd n’est détecté que dans les terminaux qui signalent le modificateur Super, comme ceux prenant en charge le protocole clavier Kitty ou le mode modifyOtherKeys de xterm. La plupart des terminaux ne l’envoient pas, donc utilisez ctrl ou meta pour les liaisons que vous voulez que fonctionnent partout.
Par exemple :
Lettres majuscules
Claude Code analyse les noms de touches de manière insensible à la casse, doncK est la même liaison que k et ctrl+K est la même que ctrl+k. Pour lier Maj et une lettre, écrivez shift+k.
Dispositions de clavier non-US
Écrivez les noms de touches des raccourcis Ctrl en tant que caractères latins même lorsque votre disposition de clavier active tape d’autres caractères. La façon dont Claude Code fait correspondre la touche que vous appuyez à une liaison dépend du type de disposition :- Sous une disposition non-latine telle que le cyrillique, Claude Code fait correspondre les raccourcis Ctrl par la position de la touche en disposition US lorsque le terminal utilise le protocole clavier Kitty et signale cette position. Dans un tel terminal, avec une disposition russe active, appuyer sur Ctrl et la touche W physique déclenche
ctrl+w. Dans un terminal qui ne signale pas la position, Claude Code fait correspondre ce que le terminal envoie pour la frappe : un code de contrôle ASCII déclenche le raccourci latin, et une frappe qui arrive en tant que caractère cyrillique ne correspond à aucune liaison - Sous les dispositions qui réorganisent les lettres latines, telles que AZERTY, Claude Code fait correspondre la lettre que la touche tape, donc appuyer sur Ctrl et la touche étiquetée A déclenche
ctrl+a
Accords
Les accords sont des séquences de touches séparées par des espaces :Touches spéciales
escapeouesc- Touche Échappemententeroureturn- Touche Entréetab- Touche Tabspace- Barre d’espaceup,down,left,right- Touches fléchéespageup,pagedown- Touches Page Précédente et Page Suivantehome,end- Touches Accueil et Finbackspace,delete- Touches de suppressionwheelup,wheeldown- Événements de défilement de la molette de la souris
Délier les raccourcis par défaut
Définissez une action surnull pour délier un raccourci par défaut :
ctrl+x : ctrl+x ctrl+k, ctrl+x ctrl+e, ctrl+x enter, ctrl+x ctrl+a, ctrl+x ctrl+s, et ctrl+x tab dans Chat, ctrl+x ctrl+b dans Task, et ctrl+x b dans DiffPanel. L’accord ctrl+x enter nécessite la v2.1.247 ou une version ultérieure, ctrl+x b, ctrl+x ctrl+a, et ctrl+x tab nécessitent la v2.1.260 ou une version ultérieure, et ctrl+x ctrl+s nécessite la v2.1.275 ou une version ultérieure.
Pour récupérer ctrl+x lui-même comme liaison à touche unique, déliez tous les éléments suivants :
Raccourcis réservés
Ces raccourcis ne peuvent pas être reliés :Conflits de terminal
Certains raccourcis peuvent entrer en conflit avec les multiplexeurs de terminal :Champs de texte
Si vous liez une lettre, un chiffre ou une Espace nue, vous pouvez toujours taper ce caractère dans un champ de texte à l’intérieur d’une boîte de dialogue ou d’un panneau. L’un de ces champs est la réponse « Autre » à une question que Claude pose. Tant que le champ a le focus, une touche imprimable que vous appuyez sans Ctrl, Alt ou Cmd va au champ, et Claude Code ne la fait pas correspondre à vos liaisons. Ces touches exécutent toujours leurs liaisons tant que le champ a le focus :- Les touches qui ne tapent pas un caractère, telles que Entrée, Échap, Tab et les touches fléchées
- N’importe quelle touche appuyée avec Ctrl, Alt ou Cmd
- La deuxième frappe d’un accord déjà en cours
Chat, et tape la touche uniquement quand aucune liaison ne la prend.
Interaction du mode Vim
Lorsque le mode vim est activé via/config → Mode Éditeur, les liaisons de touches et le mode vim fonctionnent indépendamment :
- Mode Vim gère l’entrée au niveau de la saisie de texte (mouvement du curseur, modes, motions)
- Liaisons de touches gèrent les actions au niveau du composant (basculer les tâches, soumettre, etc.)
- La touche Échappement en mode vim bascule INSERT en mode NORMAL ; elle ne déclenche pas
chat:cancel - La plupart des raccourcis Ctrl+touche passent par le mode vim au système de liaison de touches
- Les touches Vim ne sont pas remappables via le fichier de liaisons de touches. Pour mapper une séquence en mode INSERT à deux touches comme
jjà Échappement, utilisez le paramètrevimInsertModeRemaps - En mode NORMAL vim,
?affiche le menu d’aide (comportement vim) - En mode NORMAL vim,
/ouvre la recherche dans l’historique, identique à Ctrl+R en mode standard
Validation
Claude Code valide vos liaisons de touches et écrit un avertissement dans le journal de débogage pour :- Erreurs d’analyse (JSON invalide ou structure)
- Noms de contexte invalides
- Valeurs d’action invalides, telles qu’une action qui n’est pas une chaîne ou
null - Noms d’action inconnus, tels qu’une faute de frappe d’une action enregistrée. Claude Code ignore la liaison et conserve toute liaison par défaut pour cette touche en vigueur. Avant v2.1.246, une liaison avec un nom d’action inconnu désactivait silencieusement cette touche
- Conflits de raccourcis réservés
- Liaisons en double dans le même contexte
--debug pour voir les détails.