Skip to main content
Claude Code prend en charge les raccourcis clavier personnalisables. Exécutez /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 tableau bindings. 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+U :

Contextes

Chaque bloc de liaison spécifie un contexte où les liaisons s’appliquent : Avant v2.1.205, un contexte Doctor et une action doctor:fix existaient pour l’écran de diagnostics /doctor.

Actions disponibles

Les actions suivent un format namespace: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 contexte Global :

Actions d’historique

Actions pour naviguer dans l’historique des commandes :

Actions de chat

Actions disponibles dans le contexte Chat : *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 contexte Autocomplete :

Actions de confirmation

Actions disponibles dans le contexte Confirmation : *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.

Actions de permission

Actions disponibles dans le contexte Confirmation pour les dialogues de permission :

Actions de transcription

Actions disponibles dans le contexte Transcript : 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 contexte HistorySearch : 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 contexte Task :

Actions de thème

Actions disponibles dans le contexte ThemePicker :

Actions d’aide

Actions disponibles dans le contexte Help :

Actions d’onglets

Actions disponibles dans le contexte Tabs :

Actions de pièces jointes

Actions disponibles dans le contexte Attachments : Actions disponibles dans le contexte Footer :

Actions du sélecteur de message

Actions disponibles dans le contexte MessageSelector :

Actions de diff

Actions disponibles dans le contexte DiffDialog : 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 contexte ModelPicker :

Actions d’effort

Actions disponibles dans le contexte EffortSlider, le curseur qui s’ouvre lorsque vous exécutez /effort sans arguments. Les touches Gauche, Droite, Entrée et Échappement du curseur ne peuvent pas être reliées.

Actions de sélection

Actions disponibles dans le contexte Select : Claude Code applique vos liaisons select:pageUp, select:pageDown, select:first et select:last dans le menu /skills. Dans la plupart des autres listes, telles que le sélecteur /model, Claude Code pagine avec PageUp et PageDown indépendamment de vos liaisons et ignore Home et End.

Actions de plugin

Actions disponibles dans le contexte Plugin :

Actions des paramètres

Actions disponibles dans le contexte Settings. 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 contexte Agents, 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 contexte Chat lorsque la dictée vocale est activée :

Actions de défilement

Actions disponibles dans le contexte Scroll lorsque le rendu plein écran est activé :

Syntaxe des séquences de touches

Modificateurs

Utilisez les touches de modification avec le séparateur + :
  • ctrl ou control - Touche Contrôle
  • shift - Touche Maj
  • alt, opt, option, ou meta - Touche Alt sur Windows et Linux, touche Option sur macOS
  • cmd, command, super, ou win - Touche Commande sur macOS, touche Windows sur Windows, touche Super sur Linux
Le groupe 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, donc K 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
Avant v2.1.247, appuyer sur un raccourci Ctrl sous une disposition non-latine ne déclenchait pas sa liaison dans les terminaux qui utilisent le protocole clavier Kitty, tels que Ghostty, Kitty, WezTerm et iTerm2.

Accords

Les accords sont des séquences de touches séparées par des espaces :
Appuyez sur chaque séquence de touches dans les 3 secondes suivant la précédente. Si vous attendez plus longtemps, Claude Code annule l’accord et affiche un bref message indiquant que c’est le cas.

Touches spéciales

  • escape ou esc - Touche Échappement
  • enter ou return - Touche Entrée
  • tab - Touche Tab
  • space - Barre d’espace
  • up, down, left, right - Touches fléchées
  • pageup, pagedown - Touches Page Précédente et Page Suivante
  • home, end - Touches Accueil et Fin
  • backspace, delete - Touches de suppression
  • wheelup, wheeldown - Événements de défilement de la molette de la souris

Délier les raccourcis par défaut

Définissez une action sur null pour délier un raccourci par défaut :
Cela fonctionne également pour les liaisons d’accords. Délier tous les accords qui partagent un préfixe libère ce préfixe pour une utilisation comme liaison à touche unique. Un accord dans n’importe quel contexte actif conserve son préfixe réservé, vous devez donc délier chaque accord dans le contexte qui le définit. Claude Code lie ces accords par défaut sur le préfixe ctrl+x : ctrl+x ctrl+k, ctrl+x ctrl+e, ctrl+x enter, ctrl+x ctrl+a, 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, et ctrl+x b, ctrl+x ctrl+a, et ctrl+x tab nécessitent la v2.1.260 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 :
Si vous déliez certains accords mais pas tous sur un préfixe, appuyer sur le préfixe entre toujours en mode d’attente d’accord pour les liaisons restantes.

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 :

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ètre vimInsertModeRemaps
  • 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 affiche des avertissements 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
Claude Code signale les avertissements lors du chargement du fichier et écrit chacun d’eux dans le journal de débogage. Démarrez Claude Code avec --debug pour voir les détails.