/keybindings aus, um Ihre Konfigurationsdatei unter ~/.claude/keybindings.json zu erstellen oder zu öffnen.
Konfigurationsdatei
Die Keybindings-Konfigurationsdatei ist ein Objekt mit einembindings-Array. Jeder Block gibt einen Kontext und eine Zuordnung von Tastenkombinationen zu Aktionen an.
Änderungen an der Keybindings-Datei werden automatisch erkannt und angewendet, ohne Claude Code neu zu starten.
Dieses Beispiel bindet
Ctrl+E zum Öffnen eines externen Editors im Chat-Kontext und hebt die Bindung von Ctrl+S auf:
Kontexte
Jeder Bindungsblock gibt einen Kontext an, in dem die Bindungen gelten:
Vor v2.1.205 gab es für den Diagnosebildschirm von
/doctor einen Doctor-Kontext und eine doctor:fix-Aktion.
Verfügbare Aktionen
Aktionen folgen dem Formatnamespace:action, beispielsweise chat:submit zum Senden einer Nachricht oder app:toggleTodos zum Anzeigen der Aufgabenliste. Jeder Kontext verfügt über spezifische verfügbare Aktionen.
App-Aktionen
Im KontextGlobal verfügbare Aktionen:
Verlaufsaktionen
Aktionen zum Navigieren im Befehlsverlauf:Chat-Aktionen
Im KontextChat verfügbare Aktionen:
*Unter Windows ohne VT-Modus (Node <24.2.0/<22.17.0, Bun <1.2.23) lautet der Standard Meta+M.
Autovervollständigungsaktionen
Im KontextAutocomplete verfügbare Aktionen:
Bestätigungsaktionen
Im KontextConfirmation verfügbare Aktionen:
*Unter Windows ohne VT-Modus (Node <24.2.0/<22.17.0, Bun <1.2.23) lautet der Standard Meta+M.
Vor v2.1.257 zeigte eine Aktion
confirm:toggleExplanation, standardmäßig mit Ctrl+E belegt, bei Berechtigungsabfragen für Bash und PowerShell eine vom Modell generierte Erklärung des Befehls an.
Dialoge verwenden confirm:yes und confirm:no zum Annehmen und Abbrechen, auch wenn sie keine Ja-oder-Nein-Frage stellen. Wenn Sie in diesem Kontext einen einzelnen Buchstaben wie y oder n belegen, wirkt der Buchstabe auch in Dialogen, die ihn nie als Taste anzeigen. Ein Dialog, der y und n als seine Tasten anzeigt, liest diese Buchstaben selbst aus und benötigt keine Belegung.
In den meisten Dialogen schließt zweimaliges Drücken von Ctrl+C oder Ctrl+D den Dialog, anstatt Claude Code zu beenden. Der Hinweis nach dem ersten Drücken gibt an, ob das zweite Drücken den Dialog schließt oder Claude Code beendet. Beide Tasten sind reserviert und können nicht neu belegt werden.
Dieses Beispiel belegt y mit confirm:yes und n mit confirm:no:
y und n weiterhin Buchstaben ein, während ein Textfeld den Fokus hat.
Vor v2.1.280 war y standardmäßig auch mit confirm:yes und n mit confirm:no belegt. Wenn Sie Ihre keybindings.json vor v2.1.280 mit /keybindings erstellt haben, listet die Datei beide Belegungen auf, und sie bleiben wirksam, bis Sie diese beiden Zeilen löschen.
Berechtigungsaktionen
Im KontextConfirmation für Berechtigungsdialoge verfügbare Aktionen:
Transkript-Aktionen
Im KontextTranscript verfügbare Aktionen:
transcript:toggleShowAll gilt nur im klassischen Renderer; im Vollbild-Rendering bietet der Transkript-Viewer keinen Schalter zum Anzeigen aller Inhalte.
Aktionen der Verlaufssuche
Im KontextHistorySearch verfügbare Aktionen:
Die Standardbelegungen von
historySearch:next, historySearch:accept, historySearch:cancel und historySearch:execute gelten für die Inline-Verlaufssuche im klassischen Renderer, die immer Prompts aus allen Projekten durchsucht. historySearch:cycleScope wirkt nur im Vollbild-Rendering, wo Ctrl+R stattdessen einen Suchdialog öffnet und Ctrl+S dessen Bereich durchschaltet. Die übrigen Tasten des Dialogs sind fest und können nicht neu belegt werden: Enter oder Tab übernimmt den hervorgehobenen Treffer in die Prompt-Eingabe, und Esc bricht ab.
Aufgabenaktionen
Im KontextTask verfügbare Aktionen:
Theme-Aktionen
Im KontextThemePicker verfügbare Aktionen:
Hilfeaktionen
Im KontextHelp verfügbare Aktionen:
Tab-Aktionen
Im KontextTabs verfügbare Aktionen:
In einem Dialog mit Tabs wechseln
tabs:next und tabs:previous die Tabs, während die Tab-Leiste den Fokus hat. In einigen Dialogen, etwa /help und /sandbox, funktionieren die Tasten zum Wechseln der Tabs auch innerhalb des Tab-Inhalts.
Up und Down verschieben den Fokus zwischen der Tab-Leiste und dem Tab-Inhalt, und eine Liste im Inhalt reagiert nur auf Tasten, solange sie den Fokus hat.
Anhangsaktionen
Im KontextAttachments verfügbare Aktionen:
Fußzeilenaktionen
Im KontextFooter verfügbare Aktionen:
Während ein Fußzeilenelement ausgewählt ist, etwa eine Zeile im Agentenbereich unterhalb des Prompts, öffnet
Enter es auch dann, wenn Sie Enter im Kontext Chat mit chat:queueSubmit oder chat:newline neu belegen.
Chat-Belegungen auf Tasten, die der Kontext Footer nicht belegt, etwa Shift+Tab für chat:cycleMode, funktionieren weiterhin, während ein Element ausgewählt ist.
Aktionen der Nachrichtenauswahl
In der Nachrichtenliste des Rewind-Menüs bewegen Sie sich mit den Select-Aktionen und deren Standardtasten durch die Nachrichten und wählen eine aus. IhreSelect-Belegungen für diese Aktionen gelten dort ebenfalls. Der Kontext MessageSelector hat keine eigenen Aktionen oder Standardbelegungen. Verwenden Sie ihn, um eine Taste nur für diese Liste zu ändern, indem Sie eine Select-Aktion wie select:accept in einem MessageSelector-Block belegen.
Dieses Beispiel belegt o so, dass die hervorgehobene Nachricht im Rewind-Menü ausgewählt wird, ohne eine andere Liste zu ändern:
Select-Belegungen und hatte eigene Aktionen: messageSelector:up, messageSelector:down, messageSelector:top, messageSelector:bottom und messageSelector:select. Wenn Ihre keybindings.json einen dieser Namen belegt, funktioniert die Belegung in dieser Liste weiterhin als die Select-Aktion, die dasselbe bewirkt. Home und End springen an das jeweilige Ende der Liste; vor v2.1.283 taten dies standardmäßig Tasten wie Shift+K und Shift+J.
Diff-Aktionen
Diese Aktionen wirken nur im früheren Diff-Viewer von Claude Code, den/diff außerhalb des Vollbild-Renderings öffnet, nachdem Sie den Mod cc-plugin-diff in /plugin deaktiviert haben. Solange dieser Mod aktiviert ist, öffnet /diff stattdessen den Diff-Dialog. Eine keybindings.json, die diese Aktionen nennt, wird in beiden Fällen fehlerfrei geladen.
Im Kontext DiffDialog verfügbare Aktionen:
Die Dateiliste reagiert auch auf die Select-Aktionen, über deren Standardtasten und Ihre
Select-Belegungen. select:previous und select:next wechseln zur vorherigen bzw. nächsten Datei, und Enter öffnet den Diff der ausgewählten Datei über select:accept. Um eine dieser Tasten nur für die Dateiliste zu ändern, belegen Sie die Select-Aktion in einem DiffDialog-Block.
Vor v2.1.283 ignorierte die Dateiliste Select-Belegungen, und Enter öffnete den Diff der ausgewählten Datei über eine separate Aktion diff:viewDetails. Wenn Ihre keybindings.json diff:viewDetails belegt, funktioniert die Belegung in der Dateiliste weiterhin als select:accept.
Die Diff-Detailansicht belegt außerdem Pager-typische Tasten mit den standardmäßigen Scroll-Aktionen. Diese Belegungen gehören zum Kontext DiffDialog und gelten nur in der Detailansicht; die unter Scroll-Aktionen aufgeführten Standardbelegungen des Kontexts Scroll bleiben unverändert.
Aktionen des Diff-Bereichs
Aktionen für den Diff-Bereich, den/diff im Vollbild-Rendering öffnet. app:cycleDiffBase gehört zum Kontext DiffPanel, der aktiv ist, solange der Bereich geöffnet ist; die übrigen gehören zu Global.
Der integrierte Mod cc-plugin-diff zeichnet diesen Bereich und verarbeitet app:cycleDiffBase, app:diffFileListUp und app:diffFileListDown. app:toggleReplTab, app:toggleDiffNoiseFilter und app:toggleDiffPreSession wirken nur im früheren Bereich von Claude Code, den /diff öffnet, nachdem Sie cc-plugin-diff in /plugin deaktiviert haben.
Aktionen der Modellauswahl
Im KontextModelPicker verfügbare Aktionen:
Aktionen des Effort-Schiebereglers
Im KontextEffortSlider verfügbare Aktionen, also im Schieberegler, der sich öffnet, wenn Sie /effort ohne Argumente ausführen. Die Tasten Enter und Escape des Schiebereglers können nicht neu belegt werden.
Select-Aktionen
Im KontextSelect verfügbare Aktionen:
In Listenbereichen wie
/skills, /mcp und /tasks wendet Claude Code Ihre Belegungen für select:pageUp, select:pageDown, select:first und select:last an. In den meisten anderen Listen, etwa der Modellauswahl /model, gelten Ihre Belegungen für select:first und select:last. PageUp und PageDown blättern in diesen Listen unabhängig von Ihren Belegungen durch die Optionen.
Vor v2.1.280 ignorierten diese anderen Listen Home, End sowie Ihre Belegungen für select:first und select:last.
Vor v2.1.283 blätterte die Tool-Liste von /mcp unabhängig von Ihren Belegungen mit fest zugeordneten Tasten PageUp und PageDown.
Plugin-Aktionen
Im KontextPlugin verfügbare Aktionen:
Aktionen oberhalb des Prompts
Aktionen für das Band oberhalb des Prompts, den gemeinsamen Streifen, in dem Mods Schaltflächen, Eingabefelder und Auswahllisten zeichnen.abovePrompt:toggle und abovePrompt:focus gelten im Kontext Chat. Die übrigen Aktionen gelten im Kontext dessen, was im Band oder in einem Bereich den Tastaturfokus hat.
Im Kontext
AbovePrompt führen Right und Left standardmäßig ebenfalls abovePrompt:next und abovePrompt:previous aus, und Space führt ebenfalls abovePrompt:press aus.
Der Kontext AbovePrompt belegt außerdem Up, Down, PageUp, PageDown, Home und End mit den Scroll-Aktionen für Bereiche pane:scrollUp bis pane:bottom. Um eine dieser Tasten für das Band zu ändern, belegen Sie daher die Scroll-Aktion in einem AbovePrompt-Block.
Bereichsaktionen
Aktionen für einen Bereich, der von einem Mod gezeichnet wird. Die Aktionen zum Scrollen, Ändern der Größe und Schließen gelten im KontextPane. pane:close gilt auch im Kontext PaneField und funktioniert daher, während eines der Felder des Bereichs den Fokus hat. pane:next und pane:previous gelten im Kontext Global, solange mehr als ein Bereich geöffnet ist.
Der Kontext
Pane belegt außerdem Tab, Shift+Tab, Enter und Escape mit denselben Aktionen oberhalb des Prompts wie das Band, und die Eingabefelder und Auswahllisten eines Bereichs verwenden die Kontexte AbovePromptInput und AbovePromptSelect. Unter Tastaturfokus und Hotkeys ist aufgeführt, was jede Taste in einem Bereich bewirkt.
Einstellungsaktionen
Im KontextSettings verfügbare Aktionen. Die Aktionen select:accept und confirm:no werden aus den Kontexten Select und Confirmation mit einstellungsspezifischem Verhalten wiederverwendet: Änderungen werden auf jede Einstellung angewendet, sobald Sie sie ändern, sodass Escape den Bereich schließt und Ihre Änderungen gespeichert bleiben, statt sie abzulehnen.
Agentenaktionen
Im KontextAgents verfügbare Aktionen, der in der Agentenansicht gilt, die mit claude agents geöffnet wird. Erfordert v2.1.257 oder höher.
Solange die Agentenansicht geöffnet ist, verwendet Claude Code für jede Taste, die der Kontext
Agents belegt, die Agents-Belegung und ignoriert eine Chat- oder Global-Belegung derselben Taste. Beispielsweise wechselt das Drücken von Ctrl+S in der Agentenansicht die Sitzungsgruppierung, statt das standardmäßige chat:stash auszulösen.
Die Tastenkombination für den externen Editor in der Dispatch-Eingabe ist keine Agents-Aktion. Die Agentenansicht folgt der Belegung von chat:externalEditor im Kontext Chat, standardmäßig Ctrl+G.
Belegungen werden in der Agentenansicht bei einzelnen Tastenanschlägen ausgelöst, daher öffnet die mit chat:externalEditor belegte Tastenfolge Ctrl+X Ctrl+E dort den Editor nicht.
Sprachaktionen
Im KontextChat verfügbare Aktionen, wenn Sprachdiktat aktiviert ist:
Scroll-Aktionen
Im KontextScroll verfügbare Aktionen, wenn Vollbild-Rendering aktiviert ist:
Syntax für Tastenanschläge
Modifikatortasten
Verwenden Sie Modifikatortasten mit dem Trennzeichen+:
ctrlodercontrol- Control-Tasteshift- Shift-Tastealt,opt,optionodermeta- Alt-Taste unter Windows und Linux, Option-Taste unter macOScmd,command,superoderwin- Command-Taste unter macOS, Windows-Taste unter Windows, Super-Taste unter Linux
cmd-Gruppe wird nur in Terminals erkannt, die den Super-Modifikator melden, etwa in Terminals, die das Kitty-Tastaturprotokoll oder den modifyOtherKeys-Modus von xterm unterstützen. Die meisten Terminals senden ihn nicht. Verwenden Sie daher ctrl oder meta für Tastenbelegungen, die überall funktionieren sollen.
Zum Beispiel:
Großbuchstaben
Claude Code wertet Tastennamen ohne Berücksichtigung der Groß- und Kleinschreibung aus, sodassK dieselbe Tastenbelegung ist wie k und ctrl+K dasselbe ist wie ctrl+k. Um Shift und einen Buchstaben zu belegen, schreiben Sie shift+k.
Nicht-US-Tastaturlayouts
Schreiben Sie die Tastennamen von Ctrl-Tastenkombinationen als lateinische Zeichen, auch wenn Ihr aktives Tastaturlayout andere Zeichen eingibt. Wie Claude Code die gedrückte Taste einer Tastenbelegung zuordnet, hängt von der Art des Layouts ab:- Bei einem nicht-lateinischen Layout wie Kyrillisch ordnet Claude Code Ctrl-Tastenkombinationen anhand der Position der Taste im US-Layout zu, wenn das Terminal das Kitty-Tastaturprotokoll verwendet und diese Position meldet. In einem solchen Terminal löst bei aktivem russischem Layout das Drücken von Ctrl und der physischen W-Taste
ctrl+waus. In einem Terminal, das die Position nicht meldet, ordnet Claude Code das zu, was das Terminal für den Tastendruck sendet: Ein ASCII-Steuercode löst die lateinische Tastenkombination aus, und ein Tastendruck, der als kyrillisches Zeichen ankommt, entspricht keiner Tastenbelegung - Bei Layouts, die lateinische Buchstaben anders anordnen, wie etwa AZERTY, ordnet Claude Code den Buchstaben zu, den die Taste eingibt, sodass das Drücken von Ctrl und der mit A beschrifteten Taste
ctrl+aauslöst
Akkorde
Akkorde sind Folgen von Tastenanschlägen, die durch Leerzeichen getrennt sind:Sondertasten
escapeoderesc- Escape-Tasteenteroderreturn- Enter-Tastetab- Tab-Tastespace- Leertasteup,down,left,right- Pfeiltastenpageup,pagedown- Page-Up- und Page-Down-Tastenhome,end- Home- und End-Tastenbackspace,delete- Löschtastenwheelup,wheeldown- Scroll-Ereignisse des Mausrads
Standardkürzel aufheben
Setzen Sie eine Aktion aufnull, um ein Standardkürzel aufzuheben:
ctrl+x-Präfix, nach Kontext:
Chat:ctrl+x ctrl+k,ctrl+x ctrl+e,ctrl+x enter,ctrl+x ctrl+a,ctrl+x ctrl+sundctrl+x tabTask:ctrl+x ctrl+bDiffPanel:ctrl+x bPane:ctrl+x left,ctrl+x right,ctrl+x up,ctrl+x downundctrl+x xPaneField:ctrl+x x
ctrl+x enter-Akkord erfordert v2.1.247 oder später, ctrl+x b, ctrl+x ctrl+a und ctrl+x tab erfordern v2.1.260 oder später, und ctrl+x ctrl+s erfordert v2.1.275 oder später.
Um ctrl+x selbst als Single-Key-Binding zurückzugewinnen, heben Sie alle auf:
Reservierte Kürzel
Diese Kürzel können nicht neu gebunden werden:Terminal-Konflikte
Einige Kürzel können mit Terminal-Multiplexern in Konflikt geraten:Textfelder
Wenn Sie einen einzelnen Buchstaben, eine Ziffer oder die Leertaste binden, können Sie dieses Zeichen trotzdem in einem Textfeld in einem Dialog oder Panel eingeben. Ein solches Feld ist dieOther-Antwort auf eine Frage, die Claude stellt. Während das Feld den Fokus hat, geht ein druckbares Zeichen, das Sie ohne Strg, Alt oder Cmd drücken, in das Feld, und Claude Code gleicht es nicht gegen Ihre Bindungen ab.
Diese Tasten führen ihre Bindungen aus, während das Feld den Fokus hat:
- Tasten, die kein Zeichen eingeben, wie Eingabe, Escape, Tab und die Pfeiltasten
- Jede Taste, die mit Strg, Alt oder Cmd gedrückt wird
- Der zweite Tastendruck eines Akkords, der bereits läuft
Chat, ab und gibt die Taste nur ein, wenn keine Bindung sie übernimmt.
Vim-Modus-Interaktion
Wenn Sie den Vim-Modus über die Einstellung Editor-Modus in/config aktivieren, arbeiten Tastenkombinationen und Vim-Modus unabhängig voneinander:
- Vim-Modus verarbeitet Eingaben auf der Texteingabeebene: Cursor-Bewegung, Modi und Bewegungen
- Tastenkombinationen verarbeiten Aktionen auf der Komponentenebene, etwa das Umschalten von Aufgaben oder das Senden einer Nachricht
- Die Escape-Taste wechselt im Vim-Modus vom INSERT- in den NORMAL-Modus; sie löst kein
chat:cancelaus - Die meisten Ctrl+Taste-Kürzel werden durch den Vim-Modus zum Keybinding-System weitergeleitet
- Vim-Tasten können nicht über die Keybindings-Datei neu zugeordnet werden. Um eine zwei-Tasten-INSERT-Modus-Sequenz wie
jjauf Escape abzubilden, verwenden Sie die EinstellungvimInsertModeRemaps - Im Vim-NORMAL-Modus zeigt
?das Hilfemenü an (Vim-Verhalten) - Im Vim-NORMAL-Modus öffnet
/die Verlaufssuche, dasselbe wie Ctrl+R im Standardmodus
Other einer Frage, die Claude stellt, bricht Escape die Frage im Vim-Modus nicht sofort ab. Außer im Screenreader-Modus startet die Zeile jedes Mal im INSERT-Modus, wenn Sie sie fokussieren. Wenn Sie in der Zeile Other Escape drücken, wechselt die Zeile in den NORMAL-Modus oder verwirft einen halb eingegebenen Vim-Befehl, und die Frage bleibt geöffnet. Drücken Sie im NORMAL-Modus erneut Escape, um die Frage abzubrechen.
Eine Frage mit einem einzigen Tastendruck abbrechen
Um eine Frage im Vim-Modus mit einem einzigen Tastendruck abzubrechen, binden Sie eine andere Taste anselect:cancel im Kontext Select. Auf diese Weise können Sie aus der Zeile Other einer Frage abbrechen, bei der Sie eine Option auswählen. Im Screenreader-Modus oder bei einer Frage, bei der Sie mehrere Optionen auswählen können, bricht die gebundene Taste nicht ab; brechen Sie stattdessen mit Escape ab.
Wählen Sie eine Taste, die Sie mit Ctrl oder Alt drücken. Ein einzelner Buchstabe oder eine einzelne Ziffer geht stattdessen in die Zeile Other und erreicht Ihre Tastenkombinationen nicht. Um beispielsweise Ctrl+Q zu binden, fügen Sie Folgendes zu ~/.claude/keybindings.json hinzu:
Ctrl+Q in der Zeile Other einer Frage, bei der Sie eine Option auswählen. Die Frage wird geschlossen, unabhängig davon, ob sich die Zeile im INSERT- oder NORMAL-Modus befindet.
Validierung
Claude Code validiert Ihre Keybindings und schreibt eine Warnung in das Debug-Protokoll für:- Parse-Fehler (ungültiges JSON oder Struktur)
- Falsch geschriebene Modifizierer, wie
ctl+k. Claude Code verwirft den Teil, den es nicht erkennt, und wendet die Bindung auf den verbleibenden Tastendruck an,kin diesem Beispiel. - Ein Leerzeichen neben
+in einer Tastenzeichenfolge, wiectrl+ k. Claude Code liest die Zeichenfolge als Akkord ausctrl+gefolgt vonk. Kein Tastendruck entsprichtctrl+allein, daher wird die Bindung nie ausgelöst. Entfernen Sie das Leerzeichen. - Ungültige Kontextnamen
- Ungültige Aktionswerte, wie eine Aktion, die keine Zeichenkette oder
nullist - Unbekannte Aktionsnamen, wie ein Tippfehler einer registrierten Aktion. Claude Code überspringt die Bindung und behält alle Standard-Bindungen für diese Taste bei.
- Reservierte Kürzel-Konflikte
- Doppelte Bindings im selben Kontext
--debug, um die Details zu sehen.