Zum Hauptinhalt springen
Claude Code unterstützt anpassbare Tastaturkürzel. Führen Sie /keybindings aus, um Ihre Konfigurationsdatei unter ~/.claude/keybindings.json zu erstellen oder zu öffnen.

Konfigurationsdatei

Die Keybindings-Konfigurationsdatei ist ein Objekt mit einem bindings-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 Format namespace: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 Kontext Global verfügbare Aktionen:

Verlaufsaktionen

Aktionen zum Navigieren im Befehlsverlauf:

Chat-Aktionen

Im Kontext Chat 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 Kontext Autocomplete verfügbare Aktionen:

Bestätigungsaktionen

Im Kontext Confirmation 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:
Mit diesen Belegungen geben 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 Kontext Confirmation für Berechtigungsdialoge verfügbare Aktionen:

Transkript-Aktionen

Im Kontext Transcript 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 Kontext HistorySearch 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 Kontext Task verfügbare Aktionen:

Theme-Aktionen

Im Kontext ThemePicker verfügbare Aktionen:

Hilfeaktionen

Im Kontext Help verfügbare Aktionen:

Tab-Aktionen

Im Kontext Tabs 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 Kontext Attachments verfügbare Aktionen: Im Kontext Footer 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. Ihre Select-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:
Vor v2.1.283 ignorierte diese Liste 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 Kontext ModelPicker verfügbare Aktionen:

Aktionen des Effort-Schiebereglers

Im Kontext EffortSlider 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 Kontext Select 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 Kontext Plugin 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 Kontext Pane. 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 Kontext Settings 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 Kontext Agents 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 Kontext Chat verfügbare Aktionen, wenn Sprachdiktat aktiviert ist:

Scroll-Aktionen

Im Kontext Scroll verfügbare Aktionen, wenn Vollbild-Rendering aktiviert ist:

Syntax für Tastenanschläge

Modifikatortasten

Verwenden Sie Modifikatortasten mit dem Trennzeichen +:
  • ctrl oder control - Control-Taste
  • shift - Shift-Taste
  • alt, opt, option oder meta - Alt-Taste unter Windows und Linux, Option-Taste unter macOS
  • cmd, command, super oder win - Command-Taste unter macOS, Windows-Taste unter Windows, Super-Taste unter Linux
Die 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, sodass K 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+w aus. 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+a auslöst

Akkorde

Akkorde sind Folgen von Tastenanschlägen, die durch Leerzeichen getrennt sind:
Drücken Sie jeden Tastenanschlag innerhalb von 3 Sekunden nach dem vorherigen. Wenn Sie länger warten, bricht Claude Code den Akkord ab und zeigt einen kurzen entsprechenden Hinweis an.

Sondertasten

  • escape oder esc - Escape-Taste
  • enter oder return - Enter-Taste
  • tab - Tab-Taste
  • space - Leertaste
  • up, down, left, right - Pfeiltasten
  • pageup, pagedown - Page-Up- und Page-Down-Tasten
  • home, end - Home- und End-Tasten
  • backspace, delete - Löschtasten
  • wheelup, wheeldown - Scroll-Ereignisse des Mausrads

Standardkürzel aufheben

Setzen Sie eine Aktion auf null, um ein Standardkürzel aufzuheben:
Dies funktioniert auch für Akkord-Bindings. Das Aufheben aller Akkorde, die ein Präfix teilen, gibt dieses Präfix für die Verwendung als Single-Key-Binding frei. Ein Akkord in einem beliebigen aktiven Kontext behält sein Präfix reserviert, daher müssen Sie jeden Akkord in dem Kontext aufheben, der ihn definiert. Claude Code bindet diese Standard-Akkorde auf dem 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+s und ctrl+x tab
  • Task: ctrl+x ctrl+b
  • DiffPanel: ctrl+x b
  • Pane: ctrl+x left, ctrl+x right, ctrl+x up, ctrl+x down und ctrl+x x
  • PaneField: ctrl+x x
Der 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:
Wenn Sie einige, aber nicht alle Akkorde auf einem Präfix aufheben, führt das Drücken des Präfix immer noch in den Akkord-Wartmodus für die verbleibenden Bindings ein.

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 die Other-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
Bei der Haupteingabeaufforderung gleicht Claude Code jede Taste gegen die aktiven Kontexte, wie 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:cancel aus
  • 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 jj auf Escape abzubilden, verwenden Sie die Einstellung vimInsertModeRemaps
  • Im Vim-NORMAL-Modus zeigt ? das Hilfemenü an (Vim-Verhalten)
  • Im Vim-NORMAL-Modus öffnet / die Verlaufssuche, dasselbe wie Ctrl+R im Standardmodus
In der Zeile 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 an select: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:
Nachdem Sie die Datei gespeichert haben, drücken Sie 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, k in diesem Beispiel.
  • Ein Leerzeichen neben + in einer Tastenzeichenfolge, wie ctrl+ k. Claude Code liest die Zeichenfolge als Akkord aus ctrl+ gefolgt von k. Kein Tastendruck entspricht ctrl+ 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 null ist
  • 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
Starten Sie Claude Code mit --debug, um die Details zu sehen.