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.
[!NOTE]
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) |
AbovePrompt |
La bande au-dessus du prompt, ou un bouton qu'elle contient, a le focus clavier |
AbovePromptInput |
Un champ de saisie dans la bande au-dessus du prompt ou dans le volet d'un mod a le focus clavier |
AbovePromptSelect |
Une sélection dans la bande au-dessus du prompt ou dans le volet d'un mod a le focus clavier |
Pane |
Un volet affiché par un mod a le focus clavier |
PaneField |
Un champ de saisie ou une sélection dans le volet d'un mod a le focus clavier |
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 le 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 en moins de 800 ms pour confirmer |
app:redraw |
(non attribué) | Forcer le réaffichage du terminal |
app:toggleTodos |
Ctrl+T | Afficher ou masquer la liste de tâches de Claude. Il ne s'agit pas de la vue des tâches en arrière-plan /tasks |
app:toggleTranscript |
Ctrl+O | Afficher ou masquer la transcription détaillée |
Actions de l'historique
Actions permettant de naviguer dans l'historique des commandes :
| Action | Par défaut | Description |
|---|---|---|
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 du chat
Actions disponibles dans le contexte Chat :
| Action | Par défaut | Description |
|---|---|---|
chat:cancel |
Escape | Annuler la saisie en cours |
chat:clearInput |
Ctrl+L | Forcer un réaffichage complet de l'écran, en conservant la saisie et la conversation |
chat:clearScreen |
Cmd+K | Identique à chat:clearInput. Consultez Effacer la conversation pour savoir comment Cmd+K se comporte dans iTerm2 et Terminal.app |
chat:killAgents |
Ctrl+X Ctrl+K | Arrêter tous les sous-agents en arrière-plan en cours d'exécution dans cette session et désactiver les réponses automatiques aux artefacts pour le reste de celle-ci. Appuyez deux fois sur le raccourci en moins de 3 secondes pour confirmer. Vous pouvez l'utiliser pendant qu'une demande de permission d'un sous-agent en arrière-plan est ouverte |
chat:cycleMode |
Shift+Tab* | Parcourir les modes de permission |
chat:modelPicker |
Meta+P | Ouvrir le sélecteur de modèle |
chat:fastMode |
Meta+O | Activer ou désactiver le mode rapide |
chat:thinkingToggle |
Meta+T | Activer ou désactiver la réflexion étendue |
chat:submit |
Enter | Envoyer le message |
chat:queueSubmit |
Ctrl+X Enter | Envoyer 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, cette action envoie le brouillon même lorsqu'une suggestion d'autocomplétion est en surbrillance. Nécessite la v2.1.247 ou ultérieure |
chat:sendNow |
Ctrl+Enter, Ctrl+X Ctrl+S | Envoyer immédiatement vos messages en file d'attente, ainsi que votre brouillon. Quand Claude Code envoie ce que vous avez mis en file d'attente explique ce qu'il advient du tour sur lequel Claude travaille. Lorsque rien n'est en cours d'exécution, la touche envoie le brouillon, et en mode shell elle se contente de mettre la commande en file d'attente. Les terminaux qui ne signalent pas les touches étendues transmettent Ctrl+Enter comme un simple Enter ; Ctrl+X Ctrl+S est donc le raccourci qui fonctionne dans n'importe quel terminal. Nécessite la v2.1.275 ou ultérieure |
chat:newline |
Ctrl+J | Insérer un saut de ligne sans envoyer |
chat:undo |
Ctrl+_, Ctrl+Shift+- | Annuler la dernière action |
chat:externalEditor |
Ctrl+G, Ctrl+X Ctrl+E | Ouvrir dans un éditeur externe. Le champ de saisie Dispatch de la vue des agents suit également les raccourcis à touche unique de cette action |
chat:stash |
Ctrl+S | Mettre de côté le prompt en cours |
chat:imagePaste |
Ctrl+V (Alt+V sous Windows et WSL) | Coller une image depuis le presse-papiers. Sous WSL, les deux raccourcis sont attribués par défaut |
command:<name> |
(non attribué) | Exécuter la commande /<name>. Par exemple, "meta+g": "command:compact" dans un bloc Chat fait en sorte que Meta+G exécute /compact |
*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 :
| Action | Par défaut | Description |
|---|---|---|
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 de confirmation
Actions disponibles dans le contexte Confirmation :
| Action | Par défaut | Description |
|---|---|---|
confirm:yes |
Enter | Confirmer l'action |
confirm:no |
Escape | Refuser l'action |
confirm:previous |
Up | Option précédente |
confirm:next |
Down | Option suivante |
confirm:nextField |
Tab | Dans la boîte de dialogue /fast, activer ou désactiver le mode rapide |
confirm:previousField |
(non attribué) | Claude Code ne réagit pas à cette action, et un keybindings.json qui la mentionne reste valide |
confirm:toggle |
Space | Basculer la sélection |
confirm:cycleMode |
Shift+Tab* | Dans une demande de permission sur un fichier, ferme un champ de commentaire ouvert ; si aucun champ n'est ouvert, sélectionne l'option qui autorise l'action pour le reste de la session, lorsque la demande propose cette option |
*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 la v2.1.257, une action confirm:toggleExplanation, attribuée par défaut à Ctrl+E, affichait une explication de la commande générée par le modèle dans les demandes de permission Bash et PowerShell.
Les boîtes de dialogue utilisent confirm:yes et confirm:no pour accepter et annuler, même lorsqu'elles ne posent pas une question fermée. Si vous attribuez une simple lettre telle que y ou n dans ce contexte, cette lettre agit également sur les boîtes de dialogue qui ne l'affichent jamais comme touche. Une boîte de dialogue qui affiche y et n comme touches lit elle-même ces lettres et n'a besoin d'aucune attribution.
Dans la plupart des boîtes de dialogue, appuyer deux fois sur Ctrl+C ou Ctrl+D ferme la boîte de dialogue au lieu de quitter Claude Code. L'indication affichée après le premier appui précise si le second appui ferme la boîte de dialogue ou quitte l'application. Ces deux touches sont réservées et ne peuvent pas être réattribuées.
Cet exemple attribue y à confirm:yes et n à confirm:no :
{
"bindings": [
{
"context": "Confirmation",
"bindings": {
"y": "confirm:yes",
"n": "confirm:no"
}
}
]
}
Avec ces attributions, y et n continuent de saisir des lettres lorsqu'un champ de texte a le focus.
Avant la v2.1.280, y était également attribué par défaut à confirm:yes et n à confirm:no. Si vous avez créé votre keybindings.json avec /keybindings avant la v2.1.280, le fichier contient ces deux attributions, qui restent actives jusqu'à ce que vous supprimiez ces deux lignes.
Actions de permission
Actions disponibles dans le contexte Confirmation pour les boîtes de dialogue de permission :
| Action | Par défaut | Description |
|---|---|---|
permission:toggleDebug |
(non attribué) | Claude Code ne réagit pas à cette action, et un keybindings.json qui la mentionne reste valide |
Actions de la transcription
Actions disponibles dans le contexte Transcript :
| Action | Par défaut | Description |
|---|---|---|
transcript:toggleShowAll |
Ctrl+E | Afficher ou masquer tout le contenu |
transcript:exit |
q, Ctrl+C, Escape | Quitter la vue de la transcription |
transcript:toggleShowAll s'applique uniquement dans le moteur de rendu classique ; en rendu plein écran, la visionneuse de transcription ne propose pas d'option pour tout afficher.
Actions de recherche dans l'historique
Actions disponibles dans le contexte HistorySearch :
| Action | Par défaut | Description |
|---|---|---|
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 |
historySearch:cycleScope |
Ctrl+S | Parcourir les portées : session, projet, partout |
Les valeurs par défaut de historySearch:next, historySearch:accept, historySearch:cancel et historySearch:execute s'appliquent à la recherche intégrée dans l'historique du moteur de rendu classique, qui recherche toujours les prompts de tous les projets. historySearch:cycleScope ne prend effet qu'en rendu plein écran, où Ctrl+R ouvre à la place une boîte de dialogue de recherche et Ctrl+S en fait varier la portée. Les autres touches de la boîte de dialogue sont fixes et ne peuvent pas être réattribuées : Enter ou Tab place la correspondance en surbrillance dans la saisie du prompt et Esc annule.
Actions des tâches
Actions disponibles dans le contexte Task :
| Action | Par défaut | Description |
|---|---|---|
task:background |
Ctrl+B, Ctrl+X Ctrl+B | Passer la tâche en cours en arrière-plan |
Actions du thème
Actions disponibles dans le contexte ThemePicker :
| Action | Par défaut | Description |
|---|---|---|
theme:toggleSyntaxHighlighting |
Ctrl+T | Activer ou désactiver la coloration syntaxique |
Actions de l'aide
Actions disponibles dans le contexte Help :
| Action | Par défaut | Description |
|---|---|---|
help:dismiss |
Escape | Fermer le menu d'aide |
Actions des onglets
Actions disponibles dans le contexte Tabs :
| Action | Par défaut | Description |
|---|---|---|
tabs:next |
Tab, Right | Onglet suivant |
tabs:previous |
Shift+Tab, Left | Onglet précédent |
Dans une boîte de dialogue à onglets, tabs:next et tabs:previous changent d'onglet lorsque la rangée d'onglets a le focus. Dans certaines boîtes de dialogue, comme /help et /sandbox, les touches de changement d'onglet fonctionnent aussi depuis le contenu de l'onglet.
Up et Down déplacent le focus entre la rangée d'onglets et le contenu de l'onglet, et une liste dans le contenu ne réagit aux touches que lorsqu'elle a le focus.
Actions des pièces jointes
Actions disponibles dans le contexte Attachments :
| Action | Par défaut | Description |
|---|---|---|
attachments:next |
Right | Pièce jointe suivante |
attachments:previous |
Left | Pièce jointe précédente |
attachments:remove |
Backspace, Delete | Supprimer la pièce jointe sélectionnée |
attachments:exit |
Down, Escape | Quitter la navigation dans les pièces jointes |
Actions du pied de page
Actions disponibles dans le contexte Footer :
| Action | Par défaut | Description |
|---|---|---|
footer:next |
Right | Élément suivant du pied de page |
footer:previous |
Left | Élément précédent du pied de page |
footer:up |
Up, Ctrl+P | Monter dans le pied de page (désélectionne en haut) |
footer:down |
Down, Ctrl+N | Descendre dans le pied de page |
footer:openSelected |
Enter | Ouvrir l'élément sélectionné du pied de page |
footer:clearSelection |
Escape | Effacer la sélection du pied de page |
footer:close |
x | Arrêter l'agent ou le workflow sélectionné, ou masquer sa ligne s'il n'est plus en cours d'exécution |
footer:dismiss |
(non attribué) | Attribuer une touche à cette action n'a aucun effet, et un keybindings.json qui la mentionne reste valide. Avant la v2.1.281, Backspace et Delete lui étaient attribuées et retiraient du pied de page le lien d'artefact sélectionné. |
Lorsqu'un élément du pied de page est sélectionné, comme une ligne du panneau des agents sous le prompt, Enter l'ouvre même si vous avez réattribué Enter dans le contexte Chat à chat:queueSubmit ou chat:newline.
Les attributions Chat sur des touches que le contexte Footer n'attribue pas, comme Shift+Tab pour chat:cycleMode, continuent de fonctionner lorsqu'un élément est sélectionné.
Actions du sélecteur de messages
Dans la liste des messages du menu de retour en arrière, vous parcourez les messages et en choisissez un avec les actions Select et leurs touches par défaut. Vos attributions Select pour ces actions s'y appliquent également. Le contexte MessageSelector ne possède ni actions ni attributions par défaut propres. Utilisez-le pour modifier une touche pour cette seule liste, en attribuant une action Select telle que select:accept dans un bloc MessageSelector.
Cet exemple attribue o à la sélection du message en surbrillance dans le menu de retour en arrière, sans modifier aucune autre liste :
{
"bindings": [
{
"context": "MessageSelector",
"bindings": {
"o": "select:accept"
}
}
]
}
Avant la v2.1.283, cette liste ignorait les attributions Select et disposait de ses propres actions : messageSelector:up, messageSelector:down, messageSelector:top, messageSelector:bottom et messageSelector:select. Si votre keybindings.json attribue l'un de ces noms, l'attribution continue de fonctionner dans cette liste en tant qu'action Select équivalente. Home et End permettent d'aller à l'une ou l'autre extrémité de la liste ; avant la v2.1.283, des touches comme Shift+K et Shift+J le faisaient par défaut.
Actions du diff
Ces actions ne concernent que l'ancienne visionneuse de diff de Claude Code, que /diff ouvre en dehors du rendu plein écran après que vous avez désactivé le mod cc-plugin-diff dans /plugin. Tant que ce mod est activé, /diff ouvre à la place la boîte de dialogue de diff. Un keybindings.json qui mentionne ces actions se charge sans erreur dans les deux cas.
Actions disponibles dans le contexte DiffDialog :
| Action | Par défaut | Description |
|---|---|---|
diff:dismiss |
Escape | Fermer la visionneuse de diff ; depuis la vue détaillée, revient plutôt à la liste des fichiers |
diff:previousSource |
Left | Source de diff précédente |
diff:nextSource |
Right | Source de diff suivante |
diff:previousFile |
Up, K | Fichier précédent dans la liste des fichiers ; défiler d'une ligne vers le haut dans la vue détaillée |
diff:nextFile |
Down, J | Fichier suivant dans la liste des fichiers ; défiler d'une ligne vers le bas dans la vue détaillée |
diff:back |
(non attribué) | Revenir en arrière dans la visionneuse de diff. Escape effectue le retour en arrière via diff:dismiss. L'ancienne valeur par défaut Left dans la vue détaillée a été supprimée dans la v2.1.203 |
La liste des fichiers réagit également aux actions Select, via leurs touches par défaut et vos attributions Select. select:previous et select:next passent au fichier précédent et suivant, et Enter ouvre le diff du fichier sélectionné via select:accept. Pour modifier l'une de ces touches pour la seule liste des fichiers, attribuez l'action Select dans un bloc DiffDialog.
Avant la v2.1.283, la liste des fichiers ignorait les attributions Select, et Enter ouvrait le diff du fichier sélectionné via une action distincte diff:viewDetails. Si votre keybindings.json attribue diff:viewDetails, l'attribution continue de fonctionner dans la liste des fichiers en tant que select:accept.
La vue détaillée du diff attribue également des touches de type pager aux actions de défilement standard. Ces attributions font partie du contexte DiffDialog et ne s'appliquent que dans la vue détaillée ; les valeurs par défaut du contexte Scroll répertoriées dans Actions de défilement restent inchangées.
| Action | Par défaut | Description |
|---|---|---|
scroll:pageUp |
PageUp | Défiler vers le haut d'une demi-fenêtre |
scroll:pageDown |
PageDown | Défiler vers le bas d'une demi-fenêtre |
scroll:fullPageUp |
Shift+Space, B | Défiler vers le haut d'une fenêtre entière |
scroll:fullPageDown |
Space | Défiler vers le bas d'une fenêtre entière |
scroll:top |
G, Home | Aller tout en haut |
scroll:bottom |
Shift+G, End | Aller tout en bas |
Actions du panneau de diff
Actions pour le panneau de diff que /diff ouvre en rendu plein écran. app:cycleDiffBase se trouve dans le contexte DiffPanel, actif tant que le panneau est ouvert ; les autres sont dans Global.
Le mod cc-plugin-diff intégré dessine ce panneau et gère app:cycleDiffBase, app:diffFileListUp et app:diffFileListDown. app:toggleReplTab, app:toggleDiffNoiseFilter et app:toggleDiffPreSession ne concernent que l'ancien panneau de Claude Code, que /diff ouvre après que vous avez désactivé cc-plugin-diff dans /plugin.
| Action | Par défaut | Description |
|---|---|---|
app:toggleReplTab |
(non attribué) | Ouvrir ou fermer le panneau de diff |
app:cycleDiffBase |
Ctrl+X B | Parcourir les bases de comparaison du panneau : cette session, non commité, puis branche |
app:diffFileListUp |
Ctrl+Up, Meta+Up | Faire défiler vers le haut la liste des fichiers du panneau lorsqu'elle déborde |
app:diffFileListDown |
Ctrl+Down, Meta+Down | Faire défiler vers le bas la liste des fichiers du panneau lorsqu'elle déborde |
app:toggleDiffNoiseFilter |
(non attribué) | Afficher ou masquer les fichiers de test et les fichiers générés dans le panneau |
app:toggleDiffPreSession |
(non attribué) | Développer ou réduire les modifications antérieures à cette session |
Actions du sélecteur de modèle
Actions disponibles dans le contexte ModelPicker :
| Action | Par défaut | Description |
|---|---|---|
modelPicker:decreaseEffort |
Left | Diminuer le niveau d'effort |
modelPicker:increaseEffort |
Right | Augmenter le niveau d'effort |
modelPicker:thisSessionOnly |
s | Appliquer le modèle en surbrillance à cette session uniquement |
Actions du curseur d'effort
Actions disponibles dans le contexte EffortSlider, le curseur qui s'ouvre lorsque vous exécutez /effort sans argument. Les touches Enter et Escape du curseur ne peuvent pas être réattribuées.
| Action | Par défaut | Description |
|---|---|---|
effortSlider:decreaseEffort |
Left | Déplacer le curseur vers le niveau d'effort inférieur suivant. Nécessite la v2.1.284 ou ultérieure |
effortSlider:increaseEffort |
Right | Déplacer le curseur vers le niveau d'effort supérieur suivant. Nécessite la v2.1.284 ou ultérieure |
effortSlider:toggleUltracode |
Tab | Activer ou désactiver ultracode pour cette session, lorsque le curseur le propose. Nécessite la v2.1.284 ou ultérieure |
effortSlider:thisSessionOnly |
s | Appliquer le niveau d'effort ciblé à cette session uniquement. Nécessite la v2.1.257 ou ultérieure |
Actions Select
Actions disponibles dans le contexte Select :
| Action | Par défaut | Description |
|---|---|---|
select:next |
Down, J, Ctrl+N | Option suivante |
select:previous |
Up, K, Ctrl+P | Option précédente |
select:pageUp |
PageUp | Remonter d'une page d'options |
select:pageDown |
PageDown | Descendre d'une page d'options |
select:first |
Home | Première option |
select:last |
End | Dernière option |
select:accept |
Enter | Accepter la sélection |
select:cancel |
Escape | Annuler la sélection |
Dans les panneaux de liste tels que /skills, /mcp et /tasks, Claude Code applique vos attributions select:pageUp, select:pageDown, select:first et select:last. Dans la plupart des autres listes, comme le sélecteur /model, vos attributions select:first et select:last s'appliquent. PageUp et PageDown font défiler les options de ces listes page par page, indépendamment de vos attributions.
Avant la v2.1.280, ces autres listes ignoraient Home, End et vos attributions select:first et select:last.
Avant la v2.1.283, la liste des outils de /mcp défilait page par page avec les touches fixes PageUp et PageDown, indépendamment de vos attributions.
Actions des plugins
Actions disponibles dans le contexte Plugin :
| Action | Par défaut | Description |
|---|---|---|
plugin:toggle |
Space | Basculer la sélection du plugin |
plugin:install |
I | Installer les plugins sélectionnés |
plugin:favorite |
F | Ajouter le plugin sélectionné aux favoris pour qu'il apparaisse en haut de l'onglet Installed |
Actions au-dessus du prompt
Actions pour la bande située au-dessus du prompt, la zone partagée où les mods dessinent des boutons, des champs de saisie et des listes de sélection. abovePrompt:toggle et abovePrompt:focus s'appliquent dans le contexte Chat. Les autres actions s'appliquent dans le contexte de l'élément qui a le focus clavier dans la bande ou dans un volet.
| Action | Par défaut | Description |
|---|---|---|
abovePrompt:toggle |
Ctrl+X Ctrl+A | Réduire la bande à une indication d'une ligne, ou la développer à nouveau |
abovePrompt:focus |
Ctrl+X Tab | Déplacer le focus clavier dans la bande, puis vers chaque volet ouvert, et du dernier volet de retour au prompt |
abovePrompt:next |
Tab | Donner le focus au contrôle suivant |
abovePrompt:previous |
Shift+Tab | Donner le focus au contrôle précédent |
abovePrompt:press |
Enter | Appuyer sur le bouton ciblé, envoyer le champ de saisie ciblé ou choisir l'option en surbrillance dans une liste de sélection |
abovePrompt:leave |
Escape | Rendre le focus clavier au prompt |
abovePrompt:highlightNext |
Down | Mettre en surbrillance l'option suivante dans une liste de sélection ciblée |
abovePrompt:highlightPrevious |
Up | Mettre en surbrillance l'option précédente dans une liste de sélection ciblée |
Dans le contexte AbovePrompt, Right et Left exécutent également par défaut abovePrompt:next et abovePrompt:previous, et Space exécute également abovePrompt:press.
Le contexte AbovePrompt attribue aussi Up, Down, PageUp, PageDown, Home et End aux actions de défilement des volets pane:scrollUp à pane:bottom ; pour modifier l'une de ces touches pour la bande, attribuez l'action de défilement dans un bloc AbovePrompt.
Actions des volets
Actions pour un volet dessiné par un mod. Les actions de défilement, de redimensionnement et de fermeture s'appliquent dans le contexte Pane. pane:close s'applique également dans le contexte PaneField, de sorte qu'elle fonctionne lorsqu'un des champs du volet a le focus. pane:next et pane:previous s'appliquent dans le contexte Global lorsque plusieurs volets sont ouverts.
| Action | Par défaut | Description |
|---|---|---|
pane:scrollUp |
Up | Faire défiler le volet vers le haut lorsqu'il contient plus de lignes qu'il ne peut en afficher |
pane:scrollDown |
Down | Faire défiler le volet vers le bas lorsqu'il contient plus de lignes qu'il ne peut en afficher |
pane:pageUp |
PageUp | Faire défiler le volet d'une page vers le haut |
pane:pageDown |
PageDown | Faire défiler le volet d'une page vers le bas |
pane:top |
Home | Aller en haut du volet |
pane:bottom |
End | Aller en bas du volet |
pane:grow |
Ctrl+X Left, Ctrl+X Up | Donner plus de place au volet : en largeur lorsqu'il se trouve à côté de la transcription, en hauteur lorsqu'il se trouve au-dessus du prompt |
pane:shrink |
Ctrl+X Right, Ctrl+X Down | Donner moins de place au volet : en largeur lorsqu'il se trouve à côté de la transcription, en hauteur lorsqu'il se trouve au-dessus du prompt |
pane:close |
Ctrl+X X | Fermer le volet |
pane:next |
(non attribué) | Afficher le volet ouvert suivant |
pane:previous |
(non attribué) | Afficher le volet ouvert précédent |
Le contexte Pane attribue également Tab, Shift+Tab, Enter et Escape aux mêmes actions au-dessus du prompt que la bande, et les champs de saisie et listes de sélection d'un volet utilisent les contextes AbovePromptInput et AbovePromptSelect. Focus clavier et raccourcis indique ce que fait chaque touche dans un volet.
Actions des paramètres
Actions disponibles dans le contexte Settings. Les actions select:accept et confirm:no sont reprises des contextes Select et Confirmation avec un comportement propre aux paramètres : les modifications s'appliquent à chaque paramètre dès que vous le modifiez, donc Escape ferme le panneau en enregistrant vos modifications plutôt qu'en les refusant.
| Action | Par défaut | Description |
|---|---|---|
settings:search |
/ | Passer en mode recherche |
settings:retry |
R | Réessayer de charger les données d'utilisation en cas d'erreur |
settings:fixUsage |
F | Envoyer à votre session les recommandations /usage que Claude Code peut appliquer, lorsque le pied de page de /usage propose un correctif. Nécessite la v2.1.305 ou ultérieure |
select:accept |
Enter, Space | Modifier le paramètre sélectionné ou ouvrir son sous-menu |
confirm:no |
Escape | Fermer le panneau. Les modifications sont déjà enregistrées |
Actions des agents
Actions disponibles dans le contexte Agents, qui s'applique dans la vue des agents, ouverte avec claude agents. Nécessite la v2.1.257 ou ultérieure.
| Action | Par défaut | Description |
|---|---|---|
agents:switchView |
Ctrl+S | Basculer le regroupement des sessions entre état et répertoire |
agents:togglePin |
Ctrl+T | Épingler ou désépingler la session sélectionnée |
agents:find |
Ctrl+F | Rechercher des sessions par nom, avec le filtre n:. Nécessite la v2.1.288 ou ultérieure |
agents:rename |
Ctrl+R | Renommer la session sélectionnée. Nécessite la v2.1.288 ou ultérieure |
agents:previousGroup |
Ctrl+Up, Meta+Up | Aller à l'en-tête de groupe précédent. Nécessite la v2.1.288 ou ultérieure |
agents:nextGroup |
Ctrl+Down, Meta+Down | Aller à l'en-tête de groupe suivant. Nécessite la v2.1.288 ou ultérieure |
Lorsque la vue des agents est ouverte, Claude Code utilise l'attribution Agents pour toute touche attribuée par le contexte Agents, et ignore une attribution Chat ou Global sur la même touche. Par exemple, appuyer sur Ctrl+S dans la vue des agents bascule le regroupement des sessions au lieu de déclencher l'action par défaut chat:stash.
Le raccourci d'éditeur externe du champ de saisie Dispatch n'est pas une action Agents. La vue des agents suit l'attribution chat:externalEditor du contexte Chat, Ctrl+G par défaut.
Dans la vue des agents, les attributions se déclenchent sur des touches uniques ; la combinaison Ctrl+X Ctrl+E attribuée à chat:externalEditor n'y ouvre donc pas l'éditeur.
Actions vocales
Actions disponibles dans le contexte Chat lorsque la dictée vocale est activée :
| Action | Par défaut | Description |
|---|---|---|
voice:pushToTalk |
Space | Dicter un prompt. Maintenir ou appuyer brièvement selon le mode /voice |
Actions de défilement
Actions disponibles dans le contexte Scroll lorsque le rendu plein écran est activé :
| Action | Par défaut | Description |
|---|---|---|
scroll:lineUp |
wheelup |
Défiler d'une ligne vers le haut. Le défilement avec la molette de la souris déclenche cette action |
scroll:lineDown |
wheeldown |
Défiler d'une ligne vers le bas. Le défilement avec la molette de la souris déclenche cette action |
scroll:pageUp |
PageUp | Défiler vers le haut de la moitié de la hauteur de la fenêtre |
scroll:pageDown |
PageDown | Défiler vers le bas de la moitié de la hauteur de la fenêtre |
scroll:top |
Ctrl+Home | Aller au début de la conversation |
scroll:bottom |
Ctrl+End | Aller au dernier message et réactiver le suivi automatique |
scroll:halfPageUp |
(non attribué) | Défiler vers le haut de la moitié de la hauteur de la fenêtre. Même comportement que scroll:pageUp, fourni pour les réattributions de style vi |
scroll:halfPageDown |
(non attribué) | Défiler vers le bas de la moitié de la hauteur de la fenêtre. Même comportement que scroll:pageDown, fourni pour les réattributions de style vi |
scroll:fullPageUp |
(non attribué) | Défiler vers le haut de toute la hauteur de la fenêtre |
scroll:fullPageDown |
(non attribué) | Défiler vers le bas de toute la hauteur de la fenêtre |
selection:copy |
Ctrl+Shift+C / Cmd+C | Copier le texte sélectionné dans le presse-papiers |
selection:clear |
(non attribué) | Effacer la sélection de texte active. Nécessite la v2.1.234 ou ultérieure |
selection:extendLeft |
Shift+Left | Étendre la sélection active d'une colonne vers la gauche |
selection:extendRight |
Shift+Right | Étendre la sélection active d'une colonne vers la droite |
selection:extendUp |
Shift+Up | Étendre la sélection active d'une ligne vers le haut. Fait défiler la fenêtre lorsque la sélection atteint le bord supérieur |
selection:extendDown |
Shift+Down | Étendre la sélection active d'une ligne vers le bas. Fait défiler la fenêtre lorsque la sélection atteint le bord inférieur |
selection:extendLineStart |
Shift+Home | Étendre la sélection active jusqu'au début de la ligne |
selection:extendLineEnd |
Shift+End | Étendre la sélection active jusqu'à 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
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, par contexte :
Chat:ctrl+x ctrl+k,ctrl+x ctrl+e,ctrl+x enter,ctrl+x ctrl+a,ctrl+x ctrl+setctrl+x tabTask:ctrl+x ctrl+bDiffPanel:ctrl+x bPane:ctrl+x left,ctrl+x right,ctrl+x up,ctrl+x downetctrl+x xPaneField:ctrl+x x
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": "Pane",
"bindings": {
"ctrl+x left": null,
"ctrl+x right": null,
"ctrl+x up": null,
"ctrl+x down": null,
"ctrl+x x": null
}
},
{
"context": "PaneField",
"bindings": {
"ctrl+x x": 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 avec le mode vim
Lorsque vous activez le mode vim avec le paramètre Editor mode dans /config, les raccourcis clavier et le mode vim fonctionnent indépendamment :
- Le mode vim gère la saisie au niveau du champ de texte : déplacement du curseur, modes et mouvements
- Les raccourcis clavier gèrent les actions au niveau des composants, comme l'affichage des todos ou l'envoi d'un message
- La touche Escape en mode vim fait passer du mode INSERT au mode NORMAL ; elle ne déclenche pas
chat:cancel - La plupart des raccourcis Ctrl+touche traversent le mode vim jusqu'au système de raccourcis clavier
- Les touches vim ne sont pas réassignables via le fichier de raccourcis clavier. Pour associer une séquence de deux touches en mode INSERT telle que
jjà Escape, utilisez le paramètrevimInsertModeRemaps - En mode NORMAL de vim,
?affiche le menu d'aide (comportement vim) - En mode NORMAL de vim,
/ouvre la recherche dans l'historique, comme Ctrl+R en mode standard
Dans la ligne Other d'une question posée par Claude, Escape n'annule pas immédiatement la question en mode vim. Sauf en mode lecteur d'écran, la ligne démarre en mode INSERT chaque fois que vous lui donnez le focus. Lorsque vous appuyez sur Escape dans la ligne Other, la ligne passe en mode NORMAL ou abandonne une commande vim à moitié saisie, et la question reste ouverte. Appuyez à nouveau sur Escape en mode NORMAL pour annuler la question.
Annuler une question en une seule pression de touche
Pour annuler une question en une seule pression de touche en mode vim, associez une autre touche à select:cancel dans le contexte Select. Vous pouvez annuler de cette façon depuis la ligne Other d'une question où vous sélectionnez une seule option. En mode lecteur d'écran ou dans une question où vous pouvez sélectionner plusieurs options, la touche associée n'annule pas : annulez alors avec Escape.
Choisissez une touche que vous pressez avec Ctrl ou Alt. Une lettre ou un chiffre seul est envoyé à la ligne Other et n'atteint pas vos raccourcis. Par exemple, pour associer Ctrl+Q, ajoutez ceci à ~/.claude/keybindings.json :
{
"bindings": [
{
"context": "Select",
"bindings": {
"ctrl+q": "select:cancel"
}
}
]
}
Après avoir enregistré le fichier, appuyez sur Ctrl+Q dans la ligne Other d'une question où vous sélectionnez une seule option. La question se ferme, que la ligne soit en mode INSERT ou NORMAL.
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. - Un espace à côté de
+dans une chaîne de touches, tel quectrl+ k. Claude Code interprète la chaîne comme un accord dectrl+suivi dek. Aucune frappe ne correspond àctrl+seul, la liaison ne se déclenche donc jamais. Supprimez l'espace. - 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.
- 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.