Personnaliser les raccourcis clavier
Personnalisez les raccourcis clavier dans Claude Code avec un fichier de configuration des liaisons de touches.
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.
| Champ | Description |
|---|---|
$schema |
URL du schéma JSON optionnel pour l'autocomplétion de l'éditeur |
$docs |
URL de documentation optionnelle |
bindings |
Tableau de blocs de liaison par contexte |
Cet exemple lie Ctrl+E pour ouvrir un éditeur externe dans le contexte de chat, et délié Ctrl+S :
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/fr/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+s": null
}
}
]
}
Contextes
Chaque bloc de liaison spécifie un contexte où les liaisons s'appliquent :
| Contexte | Description |
|---|---|
Global |
S'applique partout dans l'application |
Chat |
Zone de saisie du chat principal |
Autocomplete |
Le menu d'autocomplétion est ouvert |
Settings |
Menu des paramètres |
Confirmation |
Dialogues de permission et de confirmation |
Tabs |
Composants de navigation par onglets |
Help |
Le menu d'aide est visible |
Transcript |
Visionneuse de transcription |
HistorySearch |
Mode de recherche dans l'historique (Ctrl+R) |
Task |
Une tâche s'exécute au premier plan |
ThemePicker |
Dialogue du sélecteur de thème |
Attachments |
Navigation des pièces jointes d'image dans les dialogues de sélection |
Footer |
Navigation de l'indicateur de pied de page (tâches, équipes, diff, artifacts) |
MessageSelector |
Sélection de message du dialogue de rembobinage et de résumé |
DiffDialog |
Navigation de la visionneuse de diff |
DiffPanel |
Le panneau de diff est ouvert |
ModelPicker |
Niveau d'effort du sélecteur de modèle |
EffortSlider |
Curseur d'effort ouvert par /effort |
Select |
Composants génériques de sélection/liste |
Plugin |
Dialogue des plugins (parcourir, découvrir, gérer) |
Agents |
Vue Agent (claude agents) |
Scroll |
Défilement de la conversation et sélection de texte en mode plein écran |
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 format namespace:action, comme chat:submit pour envoyer un message ou app:toggleTodos pour afficher la liste des tâches. Chaque contexte dispose d'actions spécifiques.
Actions de l'application
Actions disponibles dans le contexte Global :
| Action | Par défaut | Description |
|---|---|---|
app:interrupt |
Ctrl+C | Annuler l'opération en cours |
app:exit |
Ctrl+D | Quitter Claude Code. Appuyez deux fois dans les 800 ms pour confirmer |
app:redraw |
(non lié) | Forcer le redessin du terminal |
app:toggleTodos |
Ctrl+T | Basculer la visibilité de la liste de contrôle des tâches de Claude. Ce n'est pas la vue des tâches de fond /tasks |
app:toggleTranscript |
Ctrl+O | Basculer la transcription détaillée |
Actions d'historique
Actions pour naviguer dans l'historique des commandes :
| Action | Par défaut | Description |
|---|---|---|
history:search |
Ctrl+R | Ouvrir la recherche d'historique |
history:previous |
Haut | Élément d'historique précédent |
history:next |
Bas | Élément d'historique suivant |
Actions de chat
Actions disponibles dans le contexte Chat :
| Action | Par défaut | Description |
|---|---|---|
chat:cancel |
Échap | Annuler l'entrée actuelle |
chat:clearInput |
Ctrl+L | Forcer un redessin complet de l'écran, en préservant l'entrée et la conversation |
chat:clearScreen |
Cmd+K | Identique à chat:clearInput. Voir Effacer la conversation pour savoir comment Cmd+K se comporte sur iTerm2 et Terminal.app |
chat:killAgents |
Ctrl+X Ctrl+K | Arrêter tous les sous-agents d'arrière-plan dans cette session et désactiver les réponses automatiques d'artefacts pour le reste de celle-ci |
chat:cycleMode |
Maj+Tab* | Parcourir les modes de permission |
chat:modelPicker |
Meta+P | Ouvrir le sélecteur de modèle |
chat:fastMode |
Meta+O | Basculer le mode rapide |
chat:thinkingToggle |
Meta+T | Basculer la réflexion étendue |
chat:submit |
Entrée | Soumettre le message |
chat:queueSubmit |
Ctrl+X Entrée | Soumettre le message, marqué pour attendre son tour : pendant que Claude travaille, Claude Code le met en file d'attente et n'interrompt jamais le tour. Contrairement à chat:submit, il soumet le brouillon même si une suggestion d'autocomplétion est mise en évidence. Nécessite v2.1.247 ou ultérieur |
chat:sendNow |
Ctrl+Entrée, Ctrl+X Ctrl+S | Envoyer vos messages en file d'attente, et votre brouillon avec eux, immédiatement. Quand Claude Code envoie ce que vous avez mis en file d'attente couvre ce qui se passe au tour sur lequel Claude travaille. Quand rien ne s'exécute, la touche soumet le brouillon, et en mode shell elle met uniquement la commande en file d'attente. Les terminaux qui ne signalent pas les touches étendues livrent Ctrl+Entrée comme simple Entrée, donc Ctrl+X Ctrl+S est la liaison qui fonctionne dans n'importe quel terminal. Nécessite v2.1.275 ou ultérieur |
chat:newline |
Ctrl+J | Insérer une nouvelle ligne sans soumettre |
chat:undo |
Ctrl+_, Ctrl+Maj+- | Annuler la dernière action |
chat:externalEditor |
Ctrl+G, Ctrl+X Ctrl+E | Ouvrir dans un éditeur externe. La saisie de la vue agent suit également les liaisons à une seule touche de cette action |
chat:stash |
Ctrl+S | Mettre de côté l'invite actuelle |
chat:imagePaste |
Ctrl+V (Alt+V sur Windows et WSL) | Coller une image depuis le presse-papiers. Sur WSL, les deux raccourcis sont liés par défaut |
*Sur Windows sans mode VT (Node <24.2.0/<22.17.0, Bun <1.2.23), par défaut Meta+M.
Actions d'autocomplétion
Actions disponibles dans le contexte Autocomplete :
| Action | Par défaut | Description |
|---|---|---|
autocomplete:accept |
Tab | Accepter la suggestion |
autocomplete:dismiss |
Échap | Rejeter le menu |
autocomplete:previous |
Haut | Suggestion précédente |
autocomplete:next |
Bas | Suggestion suivante |
Actions de confirmation
Actions disponibles dans le contexte Confirmation :
| Action | Par défaut | Description |
|---|---|---|
confirm:yes |
Entrée | Confirmer l'action |
confirm:no |
Échap | Refuser l'action |
confirm:previous |
Haut | Option précédente |
confirm:next |
Bas | Option suivante |
confirm:nextField |
Tab | Champ suivant |
confirm:previousField |
(non lié) | Champ précédent |
confirm:toggle |
Espace | Basculer la sélection |
confirm:cycleMode |
Maj+Tab* | Parcourir les modes de permission. Sur une invite de permission de fichier, ferme un champ de commentaire ouvert ; sans champ ouvert, sélectionne l'option qui autorise l'action pour le reste de la session, quand l'invite offre cette option |
*Sur Windows sans mode VT (Node <24.2.0/<22.17.0, Bun <1.2.23), par défaut 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 quand ils ne posent pas une question oui ou non. Si vous liez une simple lettre comme y ou n dans ce contexte, la lettre agit également sur les dialogues qui ne l'affichent jamais comme touche. Un dialogue qui affiche y et n comme ses touches les lit lui-même et n'a besoin d'aucune liaison.
Dans la plupart des dialogues, 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 :
{
"bindings": [
{
"context": "Confirmation",
"bindings": {
"y": "confirm:yes",
"n": "confirm:no"
}
}
]
}
Avec ces liaisons, y et n tapent toujours comme des lettres quand 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 contexte Confirmation pour les dialogues de permission :
| Action | Par défaut | Description |
|---|---|---|
permission:toggleDebug |
(non lié) | Basculer les informations de débogage de permission. La valeur par défaut précédente de Ctrl+D a été supprimée dans v2.1.146 car elle masquait app:exit |
Actions de transcription
Actions disponibles dans le contexte Transcript :
| Action | Par défaut | Description |
|---|---|---|
transcript:toggleShowAll |
Ctrl+E | Basculer l'affichage de tout le contenu |
transcript:exit |
q, Ctrl+C, Échap | Quitter la vue de transcription |
transcript:toggleShowAll s'applique uniquement dans le rendu classique ; dans le rendu en 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 :
| Action | Par défaut | Description |
|---|---|---|
historySearch:next |
Ctrl+R | Correspondance suivante |
historySearch:accept |
Échap, Tab | Accepter la sélection |
historySearch:cancel |
Ctrl+C | Annuler la recherche |
historySearch:execute |
Entrée | Exécuter la commande sélectionnée |
historySearch:cycleScope |
Ctrl+S | Parcourir la portée : session, projet, partout |
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 en plein écran, où Ctrl+R ouvre un dialogue de recherche à la place et Ctrl+S parcourt sa portée. Les autres touches du dialogue sont fixes et ne peuvent pas être reliées : Entrée ou Tab place la correspondance mise en évidence dans l'entrée d'invite et Échap annule.
Actions de tâche
Actions disponibles dans le contexte Task :
| Action | Par défaut | Description |
|---|---|---|
task:background |
Ctrl+B, Ctrl+X Ctrl+B | Mettre la tâche actuelle en arrière-plan. L'accord Ctrl+X Ctrl+B évite le conflit de préfixe tmux |
Actions de thème
Actions disponibles dans le contexte ThemePicker :
| Action | Par défaut | Description |
|---|---|---|
theme:toggleSyntaxHighlighting |
Ctrl+T | Basculer la coloration syntaxique |
Actions d'aide
Actions disponibles dans le contexte Help :
| Action | Par défaut | Description |
|---|---|---|
help:dismiss |
Échap | Fermer le menu d'aide |
Actions d'onglets
Actions disponibles dans le contexte Tabs :
| Action | Par défaut | Description |
|---|---|---|
tabs:next |
Tab, Droite | Onglet suivant |
tabs:previous |
Maj+Tab, Gauche | Onglet précédent |
Dans un dialogue avec onglets, tabs:next et tabs:previous changent d'onglets quand la ligne d'onglets a le focus. Dans certains dialogues, comme /help et /sandbox, les touches de changement d'onglet 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 quand elle a le focus.
Actions de pièces jointes
Actions disponibles dans le contexte Attachments :
| Action | Par défaut | Description |
|---|---|---|
attachments:next |
Droite | Pièce jointe suivante |
attachments:previous |
Gauche | Pièce jointe précédente |
attachments:remove |
Retour arrière, Suppr | Supprimer la pièce jointe sélectionnée |
attachments:exit |
Bas, Échap | Quitter la navigation des pièces jointes |
Actions de pied de page
Actions disponibles dans le contexte Footer :
| Action | Par défaut | Description |
|---|---|---|
footer:next |
Droite | Élément de pied de page suivant |
footer:previous |
Gauche | Élément de pied de page précédent |
footer:up |
Haut | Naviguer vers le haut dans le pied de page (désélectionne en haut) |
footer:down |
Bas | Naviguer vers le bas dans le pied de page |
footer:openSelected |
Entrée | Ouvrir l'élément de pied de page sélectionné |
footer:clearSelection |
Échap | Effacer la sélection du pied de page |
footer:dismiss |
(non lié) | Lier une touche à cette action n'a aucun effet, et un keybindings.json qui la nomme reste valide. Avant v2.1.281, Retour arrière et Suppr y étaient liés et rejetaient le lien d'artefact sélectionné du pied de page. |
Quand un élément de pied de page est sélectionné, comme une ligne dans le panneau agent sous l'invite, Entrée l'ouvre même quand 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, comme Maj+Tab pour chat:cycleMode, continuent de fonctionner quand un élément est sélectionné.
Actions du sélecteur de messages
Dans la liste des messages du menu de rembobinage, vous vous déplacez dans les messages et en choisissez un avec les actions Select et leurs touches par défaut. Vos liaisons Select 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 changer une touche pour cette liste uniquement, en liant une action Select comme select:accept dans un bloc MessageSelector.
Cet exemple lie o pour choisir le message mis en évidence dans le menu de rembobinage, sans changer aucune autre liste :
{
"bindings": [
{
"context": "MessageSelector",
"bindings": {
"o": "select:accept"
}
}
]
}
Avant v2.1.283, cette liste ignorait les liaisons 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 comme l'action Select qui fait la même chose. Accueil et Fin sautent à chaque extrémité de la liste ; avant v2.1.283, des touches comme Maj+K et Maj+J le faisaient par défaut.
Actions de diff
Actions disponibles dans le contexte DiffDialog :
| Action | Par défaut | Description |
|---|---|---|
diff:dismiss |
Échap | Fermer la visionneuse de diff ; à partir de la vue détaillée, revient à la liste des fichiers à la place |
diff:previousSource |
Gauche | Source de diff précédente |
diff:nextSource |
Droite | Source de diff suivante |
diff:previousFile |
Haut, K | Fichier précédent dans la liste des fichiers ; faire défiler vers le haut d'une ligne dans la vue détaillée |
diff:nextFile |
Bas, J | Fichier suivant dans la liste des fichiers ; faire défiler vers le bas d'une ligne dans la vue détaillée |
diff:back |
(non lié) | Revenir en arrière dans la visionneuse de diff. Échap effectue l'action de retour via diff:dismiss. La valeur par défaut précédente de Gauche dans la vue détaillée a été supprimée dans v2.1.203 |
La liste des fichiers répond également aux actions Select, 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 changer 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 séparée. Si votre keybindings.json lie diff:viewDetails, la liaison continue de fonctionner dans la liste des fichiers comme select:accept.
La vue détaillée du diff lie également les touches de style pager 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.
| Action | Par défaut | Description |
|---|---|---|
scroll:pageUp |
PageUp | Faire défiler vers le haut de la moitié d'une fenêtre d'affichage |
scroll:pageDown |
PageDown | Faire défiler vers le bas de la moitié d'une fenêtre d'affichage |
scroll:fullPageUp |
Maj+Espace, B | Faire défiler vers le haut d'une fenêtre d'affichage complète |
scroll:fullPageDown |
Espace | Faire défiler vers le bas d'une fenêtre d'affichage complète |
scroll:top |
G, Accueil | Sauter au début |
scroll:bottom |
Maj+G, Fin | Sauter à la fin |
Actions du panneau de diff
Actions pour le panneau de diff que /diff ouvre dans le rendu en plein écran. app:cycleDiffBase est dans le contexte DiffPanel, qui est actif quand le panneau est ouvert ; les autres sont Global. Le panneau nécessite Claude Code v2.1.260 ou ultérieur.
| Action | Par défaut | Description |
|---|---|---|
app:toggleReplTab |
(non lié) | Ouvrir ou fermer le panneau de diff, identique à l'exécution de /diff |
app:cycleDiffBase |
Ctrl+X B | Parcourir la base de comparaison du panneau : cette session, non validée, puis branche |
app:diffFileListUp |
Ctrl+Haut, Meta+Haut | Faire défiler la liste des fichiers du panneau vers le haut quand elle déborde |
app:diffFileListDown |
Ctrl+Bas, Meta+Bas | Faire défiler la liste des fichiers du panneau vers le bas quand elle déborde |
app:toggleDiffNoiseFilter |
(non lié) | Afficher ou masquer les fichiers de test et générés dans le panneau |
app:toggleDiffPreSession |
(non lié) | Développer ou réduire les modifications d'avant cette session |
Actions du sélecteur de modèle
Actions disponibles dans le contexte ModelPicker :
| Action | Par défaut | Description |
|---|---|---|
modelPicker:decreaseEffort |
Gauche | Diminuer le niveau d'effort |
modelPicker:increaseEffort |
Droite | Augmenter le niveau d'effort |
modelPicker:thisSessionOnly |
s | Appliquer le modèle mis en évidence à cette session uniquement |
Actions du curseur d'effort
Actions disponibles dans le contexte EffortSlider, le curseur qui s'ouvre quand vous exécutez /effort sans arguments. Les touches Entrée et Échap du curseur ne peuvent pas être reliées.
| Action | Par défaut | Description |
|---|---|---|
effortSlider:decreaseEffort |
Gauche | Déplacer le curseur au niveau d'effort inférieur suivant. Nécessite v2.1.284 ou ultérieur |
effortSlider:increaseEffort |
Droite | Déplacer le curseur au niveau d'effort supérieur suivant. Nécessite v2.1.284 ou ultérieur |
effortSlider:toggleUltracode |
Tab | Activer ou désactiver ultracode pour cette session, quand le curseur l'offre. Nécessite v2.1.284 ou ultérieur |
effortSlider:thisSessionOnly |
s | Appliquer le niveau d'effort ciblé à cette session uniquement. Nécessite v2.1.257 ou ultérieur |
Actions Select
Actions disponibles dans le contexte Select :
| Action | Par défaut | Description |
|---|---|---|
select:next |
Bas, J, Ctrl+N | Option suivante |
select:previous |
Haut, K, Ctrl+P | Option précédente |
select:pageUp |
PageUp | Déplacer vers le haut d'une page d'options |
select:pageDown |
PageDown | Déplacer vers le bas d'une page d'options |
select:first |
Accueil | Première option |
select:last |
Fin | Dernière option |
select:accept |
Entrée | Accepter la sélection |
select:cancel |
Échap | Annuler la sélection |
Dans les panneaux de liste comme /skills, /mcp et /tasks, Claude Code applique vos liaisons select:pageUp, select:pageDown, select:first et select:last. Dans la plupart des autres listes, comme 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 Accueil, Fin et vos liaisons select:first et select:last.
Avant v2.1.283, la liste des outils /mcp parcourait avec les touches PageUp et PageDown fixes indépendamment de vos liaisons.
Actions de plugin
Actions disponibles dans le contexte Plugin :
| Action | Par défaut | Description |
|---|---|---|
plugin:toggle |
Espace | Basculer la sélection du plugin |
plugin:install |
I | Installer les plugins sélectionnés |
plugin:favorite |
F | Marquer le plugin sélectionné comme favori pour qu'il soit trié près du haut de l'onglet Installé |
Actions de paramètres
Actions disponibles dans le contexte Settings. Les actions select:accept et confirm:no sont réutilisées à partir des contextes Select et Confirmation avec un comportement spécifique aux paramètres : les modifications s'appliquent à chaque paramètre dès que vous le modifiez, donc Échap ferme le panneau avec vos modifications enregistrées plutôt que de refuser.
| Action | Par défaut | Description |
|---|---|---|
settings:search |
/ | Entrer en mode recherche |
settings:retry |
R | Réessayer de charger les données d'utilisation en cas d'erreur |
select:accept |
Entrée, Espace | Modifier le paramètre sélectionné ou ouvrir son sous-menu |
confirm:no |
Échap | Fermer le panneau. Les modifications sont déjà enregistrées |
Actions d'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érieur.
| Action | Par défaut | Description |
|---|---|---|
agents:switchView |
Ctrl+S | Basculer le regroupement de session entre l'état et le répertoire |
agents:togglePin |
Ctrl+T | Épingler ou dépingler la session sélectionnée |
Quand 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 le chat:stash par défaut.
Le raccourci d'éditeur externe de l'entrée 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 frappes 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 quand la dictée vocale est activée :
| Action | Par défaut | Description |
|---|---|---|
voice:pushToTalk |
Espace | Dicter une invite. Maintenez ou appuyez selon le mode /voice |
Actions de défilement
Actions disponibles dans le contexte Scroll quand le rendu en plein écran est activé :
| Action | Par défaut | Description |
|---|---|---|
scroll:lineUp |
wheelup |
Faire défiler vers le haut d'une ligne. Le défilement à la roulette de souris déclenche cette action |
scroll:lineDown |
wheeldown |
Faire défiler vers le bas d'une ligne. Le défilement à la roulette de souris déclenche cette action |
scroll:pageUp |
PageUp | Faire défiler vers le haut de la moitié de la hauteur de la fenêtre d'affichage |
scroll:pageDown |
PageDown | Faire défiler vers le bas de la moitié de la hauteur de la fenêtre d'affichage |
scroll:top |
Ctrl+Accueil | Sauter au début de la conversation |
scroll:bottom |
Ctrl+Fin | Sauter au dernier message et réactiver le suivi automatique |
scroll:halfPageUp |
(non lié) | Faire défiler vers le haut de la moitié de la hauteur de la fenêtre d'affichage. Même comportement que scroll:pageUp, fourni pour les rebinds de style vi |
scroll:halfPageDown |
(non lié) | Faire défiler vers le bas de la moitié de la hauteur de la fenêtre d'affichage. Même comportement que scroll:pageDown, fourni pour les rebinds de style vi |
scroll:fullPageUp |
(non lié) | Faire défiler vers le haut de la hauteur complète de la fenêtre d'affichage |
scroll:fullPageDown |
(non lié) | Faire défiler vers le bas de la hauteur complète de la fenêtre d'affichage |
selection:copy |
Ctrl+Maj+C / Cmd+C | Copier le texte sélectionné dans le presse-papiers |
selection:clear |
(non lié) | Effacer la sélection de texte active. Nécessite v2.1.234 ou ultérieur |
selection:extendLeft |
Maj+Gauche | Étendre la sélection active d'une colonne vers la gauche |
selection:extendRight |
Maj+Droite | Étendre la sélection active d'une colonne vers la droite |
selection:extendUp |
Maj+Haut | Étendre la sélection active d'une ligne vers le haut. Fait défiler la fenêtre d'affichage quand la sélection atteint le bord supérieur |
selection:extendDown |
Maj+Bas | Étendre la sélection active d'une ligne vers le bas. Fait défiler la fenêtre d'affichage quand la sélection atteint le bord inférieur |
selection:extendLineStart |
Maj+Accueil | Étendre la sélection active au début de la ligne |
selection:extendLineEnd |
Maj+Fin | Étendre la sélection active à la fin de la ligne |
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
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 :
ctrl+k Ctrl + K
shift+tab Maj + Tab
meta+p Option + P sur macOS, Alt + P ailleurs
ctrl+shift+c Plusieurs modificateurs
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 :
ctrl+k ctrl+s Appuyez sur Ctrl+K, relâchez, puis Ctrl+S
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
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 sur null pour délier un raccourci par défaut :
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null
}
}
]
}
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, 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 :
{
"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 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 :
| Raccourci | Raison |
|---|---|
| Ctrl+C | Interruption/annulation codée en dur |
| Ctrl+D | Sortie codée en dur |
| Ctrl+M | Claude Code le reçoit toujours comme Entrée |
| Ctrl+[ | Claude Code le reçoit toujours comme Échap. Dans les terminaux qui utilisent le protocole clavier Kitty, cela nécessite la version 2.1.242 ou ultérieure |
| Ctrl+I | Claude Code le reçoit toujours comme Tab |
| Ctrl+H | Envoie l'octet ASCII de retour arrière. La façon dont Claude Code le lit sur Windows dépend de votre terminal et de la variable d'environnement CLAUDE_CODE_BS_AS_CTRL_BACKSPACE |
| Caps Lock | Non livré aux applications de terminal |
Conflits de terminal
Certains raccourcis peuvent entrer en conflit avec les multiplexeurs de terminal :
| Raccourci | Conflit |
|---|---|
| Ctrl+B | Préfixe tmux (appuyez deux fois pour envoyer) |
| Ctrl+A | Préfixe GNU screen |
| Ctrl+Z | Suspension de processus Unix (SIGTSTP) |
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
À l'invite principale, Claude Code fait correspondre chaque touche aux contextes actifs, tels que 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)
- Modificateurs mal orthographiés, tels que
ctl+k. Claude Code supprime la partie qu'il ne reconnaît pas et applique la liaison à la frappe restante,kdans cet exemple. - 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
Démarrez Claude Code avec --debug pour voir les détails.