Raccourcis clavier
Configurer keybindings.json dans Claude Code : 17 contextes, syntaxe des touches, séquences d'accords, combinaisons de modificateurs, et comment désactiver n'importe quel raccourci par défaut instantanément.
Arrêtez de configurer. Commencez à construire.
Templates SaaS avec orchestration IA.
Configure des raccourcis clavier personnalisés dans Claude Code. Référence complète des 17 contextes, de la syntaxe des touches et d'exemples keybindings.json.
Ta mémoire musculaire dit que Ctrl+K devrait ouvrir une palette de commandes. Claude Code n'est pas d'accord. Chaque fois que tu attrapes un raccourci familier et obtiens la mauvaise action, tu perds le focus et tu casses ton rythme.
Cette friction s'accumule. Les développeurs qui passent des heures dans des sessions Claude Code construisent des habitudes inconscientes autour des raccourcis clavier. Quand les défauts ne correspondent pas à ton modèle mental, tu te bats contre l'outil au lieu de l'utiliser. Si tu viens de VS Code, Vim, Emacs ou n'importe quel flux de travail orienté terminal, tu as déjà des années de patterns de raccourcis câblés dans tes doigts. Te forcer à en apprendre de nouveaux est un gaspillage d'effort cognitif.
Claude Code résout ça avec un système de raccourcis entièrement personnalisable. Tu définis chaque raccourci dans un seul fichier JSON, organisé par contexte, avec le support des séquences d'accords, des combinaisons de modificateurs, et la possibilité de désactiver n'importe quelle valeur par défaut. Les changements s'appliquent instantanément sans redémarrage. Voilà comment le configurer pour que Claude Code devienne une extension de ton workflow existant.
Commencer avec les raccourcis personnalisés
Lance la commande slash /keybindings dans Claude Code. Ça crée (ou ouvre) ton fichier de configuration à ~/.claude/keybindings.json. Si tu débutes avec la configuration de Claude Code, ce fichier se trouve à côté de tes autres paramètres dans le répertoire ~/.claude/.
La structure du fichier est simple :
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}Trois champs de premier niveau contrôlent tout :
$schema- Optionnel. Pointe ça vers l'URL du JSON Schema de Claude et ton éditeur te donne l'autocomplétion et la validation gratuitement. Ça vaut le coup de l'ajouter.$docs- Optionnel. URL de documentation pour une référence rapide.bindings- Le tableau où vivent tous tes raccourcis personnalisés. Chaque entrée cible un contexte spécifique.
Le champ $schema seul facilite grandement la configuration. Si tu utilises VS Code ou n'importe quel éditeur avec le support JSON Schema, tu obtiens des suggestions en ligne pour chaque action et nom de contexte valide.
Les modifications de keybindings.json sont détectées et appliquées automatiquement. Pas besoin de redémarrer. Modifie, sauvegarde, et tes nouveaux raccourcis sont actifs immédiatement.
Comprendre les contextes
Chaque raccourci appartient à un contexte, qui dit à Claude Code quand ce raccourci est actif. Un raccourci lié dans le contexte Chat se déclenche uniquement quand tu tapes dans la zone de saisie principale. La même combinaison de touches peut faire des choses différentes dans différents contextes.
Claude Code a 17 contextes :
| Contexte | Quand il est actif |
|---|---|
Global | Partout dans l'application |
Chat | Zone de saisie principale |
Autocomplete | Menu d'autocomplétion ouvert |
Settings | Menu des paramètres ouvert |
Confirmation | Dialogues de permission et de confirmation |
Tabs | Composants de navigation par onglets |
Help | Menu d'aide visible |
Transcript | Visionneuse de transcription |
HistorySearch | Mode de recherche dans l'historique (Ctrl+R) |
Task | Tâche en arrière-plan en cours |
ThemePicker | Dialogue du sélecteur de thème |
Attachments | Navigation dans la barre pièces jointes/images |
Footer | Navigation dans les indicateurs du pied de page |
MessageSelector | Sélection de message dans le dialogue de retour en arrière |
DiffDialog | Navigation dans la visionneuse de diff |
ModelPicker | Niveau d'effort du sélecteur de modèle |
Select | Composants de liste/sélection génériques |
Plugin | Dialogue de plugins (parcourir, découvrir, gérer) |
Le contexte Global est spécial. Les raccourcis ici s'appliquent partout, quel que soit le dialogue ou la vue active. Utilise-le avec parcimonie. Si tu lies Ctrl+K globalement, ça se déclenche que tu sois dans le chat, que tu parcourres les suggestions d'autocomplétion ou que tu révises des diffs.
Référence complète des actions
Les actions suivent un format namespace:action. Voici toutes les actions disponibles dans chaque contexte, avec leurs raccourcis par défaut.
Actions globales
Ça fonctionne partout dans Claude Code :
| Action | Défaut | Ce que ça fait |
|---|---|---|
app:interrupt | Ctrl+C | Annuler l'opération en cours |
app:exit | Ctrl+D | Quitter Claude Code |
app:toggleTodos | Ctrl+T | Afficher/masquer la liste de tâches |
app:toggleTranscript | Ctrl+O | Afficher/masquer la transcription détaillée |
Si tu utilises les fonctionnalités de gestion de tâches, app:toggleTodos est celle que tu vas atteindre constamment. Pense à la lier à quelque chose de plus accessible si Ctrl+T entre en conflit avec ton terminal.
Actions Chat
La zone de saisie principale où tu passes la plupart de ton temps :
| Action | Défaut | Ce que ça fait |
|---|---|---|
chat:cancel | Escape | Annuler la saisie en cours |
chat:cycleMode | Shift+Tab | Changer les modes de permission |
chat:modelPicker | Cmd+P / Meta+P | Ouvrir le sélecteur de modèle |
chat:thinkingToggle | Cmd+T / Meta+T | Activer la réflexion étendue |
chat:submit | Enter | Soumettre le message |
chat:undo | Ctrl+_ | Annuler la dernière action |
chat:externalEditor | Ctrl+G | Ouvrir dans un éditeur externe |
chat:stash | Ctrl+S | Mettre le prompt en attente |
chat:imagePaste | Ctrl+V (Alt+V sur Windows) | Coller une image |
Note : chat:cycleMode utilise par défaut Meta+M sur Windows sans mode VT (versions Node avant 24.2.0/22.17.0, ou Bun avant 1.2.23). C'est directement lié à la gestion des permissions pour contrôler ce que Claude peut et ne peut pas faire.
Actions History
Navigue dans ton historique de commandes :
| Action | Défaut | Ce que ça fait |
|---|---|---|
history:search | Ctrl+R | Ouvrir la recherche dans l'historique |
history:previous | Up | Élément précédent de l'historique |
history:next | Down | Élément suivant de l'historique |
Actions Autocomplete
Quand le menu d'autocomplétion apparaît :
| Action | Défaut | Ce que ça fait |
|---|---|---|
autocomplete:accept | Tab | Accepter la suggestion |
autocomplete:dismiss | Escape | Fermer le menu |
autocomplete:previous | Up | Suggestion précédente |
autocomplete:next | Down | Suggestion suivante |
Actions Confirmation
Dialogues de permission et de confirmation :
| Action | Défaut | Ce que ça fait |
|---|---|---|
confirm:yes | Y, Enter | Confirmer l'action |
confirm:no | N, Escape | Refuser l'action |
confirm:previous | Up | Option précédente |
confirm:next | Down | Option suivante |
confirm:nextField | Tab | Champ suivant |
confirm:previousField | (non lié) | Champ précédent |
confirm:cycleMode | Shift+Tab | Changer les modes de permission |
confirm:toggleExplanation | Ctrl+E | Afficher/masquer l'explication de permission |
permission:toggleDebug | Ctrl+D | Afficher/masquer les infos de débogage |
Actions Transcript
| Action | Défaut | Ce que ça fait |
|---|---|---|
transcript:toggleShowAll | Ctrl+E | Afficher/masquer tout le contenu |
transcript:exit | Ctrl+C, Escape | Quitter la vue transcription |
Actions History Search
| Action | Défaut | Ce que ça fait |
|---|---|---|
historySearch:next | Ctrl+R | Correspondance suivante |
historySearch:accept | Escape, Tab | Accepter la sélection |
historySearch:cancel | Ctrl+C | Annuler la recherche |
historySearch:execute | Enter | Exécuter la commande sélectionnée |
Actions Task
| Action | Défaut | Ce que ça fait |
|---|---|---|
task:background | Ctrl+B | Mettre la tâche en arrière-plan |
Actions Theme, Help et Settings
| Action | Contexte | Défaut | Ce que ça fait |
|---|---|---|---|
theme:toggleSyntaxHighlighting | ThemePicker | Ctrl+T | Activer/désactiver la coloration syntaxique |
help:dismiss | Help | Escape | Fermer le menu d'aide |
settings:search | Settings | / | Entrer en mode recherche |
settings:retry | Settings | R | Recharger les données d'utilisation |
Actions de navigation
Ça couvre les onglets, les pièces jointes, le pied de page, les diffs, le sélecteur de modèle, les listes et le sélecteur de message :
| Action | Contexte | Défaut | Ce que ça fait |
|---|---|---|---|
tabs:next | Tabs | Tab, Right | Onglet suivant |
tabs:previous | Tabs | Shift+Tab, Left | Onglet précédent |
attachments:next | Attachments | Right | Pièce jointe suivante |
attachments:previous | Attachments | Left | Pièce jointe précédente |
attachments:remove | Attachments | Backspace, Delete | Supprimer la pièce jointe |
attachments:exit | Attachments | Down, Escape | Quitter la barre de pièces jointes |
footer:next | Footer | Right | Élément suivant du pied de page |
footer:previous | Footer | Left | Élément précédent du pied de page |
footer:openSelected | Footer | Enter | Ouvrir l'élément sélectionné |
footer:clearSelection | Footer | Escape | Effacer la sélection |
messageSelector:up | MessageSelector | Up, K | Monter dans la liste |
messageSelector:down | MessageSelector | Down, J | Descendre dans la liste |
messageSelector:top | MessageSelector | Ctrl+Up, Shift+Up | Aller en haut |
messageSelector:bottom | MessageSelector | Ctrl+Down, Shift+Down | Aller en bas |
messageSelector:select | MessageSelector | Enter | Sélectionner le message |
diff:dismiss | DiffDialog | Escape | Fermer la visionneuse de diff |
diff:previousSource | DiffDialog | Left | Source de diff précédente |
diff:nextSource | DiffDialog | Right | Source de diff suivante |
diff:previousFile | DiffDialog | Up | Fichier précédent |
diff:nextFile | DiffDialog | Down | Fichier suivant |
diff:viewDetails | DiffDialog | Enter | Voir les détails |
modelPicker:decreaseEffort | ModelPicker | Left | Diminuer le niveau d'effort |
modelPicker:increaseEffort | ModelPicker | Right | Augmenter le niveau d'effort |
select:next | Select | Down, J, Ctrl+N | Option suivante |
select:previous | Select | Up, K, Ctrl+P | Option précédente |
select:accept | Select | Enter | Accepter la sélection |
select:cancel | Select | Escape | Annuler la sélection |
plugin:toggle | Plugin | Space | Activer/désactiver le plugin |
plugin:install | Plugin | I | Installer des plugins |
Syntaxe des touches
Claude Code utilise une syntaxe lisible pour définir les combinaisons de touches.
Modificateurs
Combine les touches de modification avec + :
ctrloucontrolpour la touche Contrôlealt,optouoptionpour Alt/Optionshiftpour Shiftmeta,cmdoucommandpour Meta/Command
Exemples :
ctrl+k Modificateur simple + touche
shift+tab Shift + Tab
meta+p Command/Meta + P
ctrl+shift+c Plusieurs modificateursLettres majuscules et Shift
Une lettre majuscule seule implique Shift. Écrire K dans tes raccourcis revient à écrire shift+k. C'est particulièrement utile pour les raccourcis style Vim où j et J (ou k et K) font des choses différentes.
Un détail important : les lettres majuscules avec modificateurs n'impliquent PAS Shift. Donc ctrl+K est identique à ctrl+k. La majuscule est traitée comme purement stylistique quand des modificateurs sont présents.
Séquences d'accords
Les accords te permettent de créer des raccourcis multi-touches. Sépare les frappes avec un espace :
ctrl+k ctrl+s Appuie sur Ctrl+K, relâche, puis appuie sur Ctrl+S
Ça te donne un espace de noms beaucoup plus grand pour les raccourcis. Si tu manques de combinaisons à une touche, les accords ouvrent des centaines de possibilités sans conflits avec les raccourcis existants.
Touches spéciales
Utilise ces noms pour les touches non-caractères :
escapeouescenteroureturntabspaceup,down,left,rightbackspace,delete
Désactiver des raccourcis par défaut
Mets n'importe quelle action à null pour la désactiver :
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null
}
}
]
}C'est utile quand un raccourci par défaut entre en conflit avec ton terminal, ton OS ou un outil que tu utilises à côté de Claude Code. Tu peux aussi désactiver un défaut et relier la même touche à une autre action.
Raccourcis réservés
Deux raccourcis sont codés en dur et ne peuvent pas être reliés :
| Raccourci | Raison |
|---|---|
| Ctrl+C | Interruption/annulation codée en dur |
| Ctrl+D | Sortie codée en dur |
N'essaie pas de les relier. Claude Code ne l'acceptera pas, et pour de bonnes raisons. Ctrl+C comme interruption et Ctrl+D comme sortie sont des conventions Unix que tout utilisateur de terminal attend.
Conflits avec les multiplexeurs de terminal
Si tu lances Claude Code dans tmux, GNU screen ou un autre multiplexeur, fais attention aux conflits avec la touche de préfixe :
| Raccourci | Conflit |
|---|---|
| Ctrl+B | Préfixe tmux (appuie deux fois pour le transmettre) |
| Ctrl+A | Préfixe GNU screen |
| Ctrl+Z | Suspension de processus Unix (SIGTSTP) |
L'action task:background par défaut utilise Ctrl+B, ce qui entre directement en conflit avec tmux. Si tu utilises tmux, relie-la immédiatement :
{
"bindings": [
{
"context": "Task",
"bindings": {
"ctrl+b": null,
"ctrl+shift+b": "task:background"
}
}
]
}C'est l'une des sources de confusion les plus courantes pour les développeurs qui lancent Claude Code dans des sessions terminal avec des multiplexeurs.
Interaction avec le mode Vim
Quand le mode vim est activé (bascule avec /vim), les raccourcis et le mode vim opèrent sur des couches différentes :
- Le mode Vim contrôle la saisie de texte : mouvement du curseur, modes (INSERT, NORMAL), motions et objets texte
- Les raccourcis contrôlent les actions de l'application : afficher la liste de tâches, soumettre des messages, ouvrir le sélecteur de modèle
La distinction clé, c'est la touche Escape. En mode vim, Escape passe du mode INSERT au mode NORMAL. Elle ne déclenche pas chat:cancel. La plupart des raccourcis Ctrl+touche passent à travers le mode vim vers le système de raccourcis, donc Ctrl+T bascule toujours ta liste de tâches même en mode NORMAL.
En mode NORMAL, appuyer sur ? affiche le menu d'aide (comportement vim standard), pas l'aide Claude Code.
Si tu utilises beaucoup les modes de planification et le mode vim, pense à lier chat:thinkingToggle à un accord qui n'entre pas en conflit avec les motions vim. Pour une vue d'ensemble complète de la façon dont le mode vim, les commandes slash et les autres fonctionnalités interactives s'articulent, consulte le guide du mode interactif.
Validation et diagnostics
Claude Code valide ton fichier de raccourcis automatiquement et t'avertit sur :
- Les erreurs de parsing dans la syntaxe JSON ou la structure
- Les noms de contexte invalides qui ne correspondent pas aux 17 contextes supportés
- Les conflits avec les raccourcis réservés si tu essaies de relier Ctrl+C ou Ctrl+D
- Les conflits avec les multiplexeurs de terminal pour Ctrl+B, Ctrl+A et Ctrl+Z
- Les raccourcis en double dans le même contexte
Lance /doctor pour voir tous les avertissements de raccourcis en une fois. C'est le moyen le plus rapide de diagnostiquer pourquoi un raccourci ne fonctionne pas comme prévu.
Exemples de configuration pratiques
Voilà des configurations réelles qui résolvent des problèmes courants.
Configuration utilisateur VS Code
Si tu viens de VS Code et que tu veux des raccourcis familiers :
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+k ctrl+s": "chat:stash",
"ctrl+shift+p": "chat:modelPicker",
"ctrl+g": "chat:externalEditor"
}
},
{
"context": "Global",
"bindings": {
"ctrl+shift+t": "app:toggleTodos"
}
}
]
}Configuration compatible tmux
Évite tous les conflits de préfixe tmux :
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"bindings": [
{
"context": "Task",
"bindings": {
"ctrl+b": null,
"ctrl+shift+b": "task:background"
}
}
]
}Configuration minimaliste sans distraction
Désactive les raccourcis que tu déclenches accidentellement :
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null,
"ctrl+u": null
}
}
]
}Power user avec accords
Utilise des accords pour accéder aux fonctionnalités moins courantes sans brûler les combinaisons à une touche :
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+k ctrl+t": "chat:thinkingToggle",
"ctrl+k ctrl+m": "chat:modelPicker",
"ctrl+k ctrl+e": "chat:externalEditor"
}
}
]
}Ça garde tes raccourcis à touche unique les plus utilisés propres tout en te donnant un accès rapide à tout le reste.
Construire ta propre configuration
Commence petit. N'essaie pas de tout remapper d'un coup. Voilà une approche pratique :
- Lance
/keybindingspour créer le fichier de config - Identifie tes 3 principaux points de friction (raccourcis en conflit, raccourcis manquants, déclenchements accidentels)
- Règle-les d'abord avec des raccourcis ciblés
- Lance
/doctorpour valider - Utilise Claude Code sur une session complète et note les frictions restantes
- Itère en ajoutant ou ajustant des raccourcis si nécessaire
L'objectif n'est pas de personnaliser chaque raccourci possible. C'est d'éliminer la friction entre ta mémoire musculaire et le comportement de Claude Code. La plupart des développeurs n'ont besoin que de 5 à 10 raccourcis personnalisés pour se sentir complètement à l'aise. Le Code Kit de ClaudeFast embarque un settings.json bien réglé qui inclut des valeurs par défaut favorables aux raccourcis aux côtés de ses commandes slash et ses hooks, donc tu pars sur une base solide plutôt que de construire from scratch.
Si tu construis une configuration Claude Code plus complète, tes raccourcis fonctionnent aux côtés de la configuration CLAUDE.md et des commandes slash personnalisées pour créer un environnement entièrement personnalisé. Les raccourcis gèrent l'interface physique. Les fichiers de configuration gèrent l'interface comportementale. Ensemble, ils donnent l'impression que Claude Code a été conçu spécifiquement pour ton workflow.
Arrêtez de configurer. Commencez à construire.
Templates SaaS avec orchestration IA.