Skip to main content
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+U auf:

Kontexte

Jeder Binding-Block gibt einen Kontext an, in dem die Bindings gelten: Vor v2.1.205 existierten ein Doctor-Kontext und eine doctor:fix-Aktion für den /doctor-Diagnose-Bildschirm.

Verfügbare Aktionen

Aktionen folgen einem namespace:action-Format, wie chat:submit zum Senden einer Nachricht oder app:toggleTodos zum Anzeigen der Aufgabenliste. Jeder Kontext hat spezifische verfügbare Aktionen.

App-Aktionen

Aktionen verfügbar im Global-Kontext:

Verlaufsaktionen

Aktionen zum Navigieren im Befehlsverlauf:

Chat-Aktionen

Aktionen verfügbar im Chat-Kontext: *Unter Windows ohne VT-Modus (Node <24.2.0/<22.17.0, Bun <1.2.23) Standard auf Meta+M.

Autovervollständigungsaktionen

Aktionen verfügbar im Autocomplete-Kontext:

Bestätigungsaktionen

Aktionen verfügbar im Confirmation-Kontext: *Unter Windows ohne VT-Modus (Node <24.2.0/<22.17.0, Bun <1.2.23) Standard auf Meta+M. Vor v2.1.257 zeigte eine confirm:toggleExplanation-Aktion, standardmäßig an Ctrl+E gebunden, eine modellgenerierte Erklärung des Befehls bei Bash- und PowerShell-Berechtigungsaufforderungen. Dialoge verwenden confirm:yes und confirm:no, um zu akzeptieren und abzubrechen, auch wenn sie keine Ja-oder-Nein-Frage stellen. Wenn Sie einen bloßen Buchstaben wie y oder n in diesem Kontext binden, wirkt sich der Buchstabe auch auf Dialoge aus, die ihn nie als Taste anzeigen. Ein Dialog, der y und n als seine Tasten anzeigt, liest diese Buchstaben selbst und benötigt keine Bindung. In den meisten Dialogen schließt das Drücken von Ctrl+C oder Ctrl+D zweimal den Dialog, anstatt Claude Code zu beenden. Der Hinweis nach dem ersten Drücken sagt, ob das zweite Drücken den Dialog schließt oder Claude Code beendet. Beide Tasten sind reserviert und können nicht neu gebunden werden. Dieses Beispiel bindet y an confirm:yes und n an confirm:no:
Mit diesen Bindungen tippen y und n immer noch als Buchstaben, während ein Textfeld den Fokus hat. Vor v2.1.280 waren y auch an confirm:yes und n an confirm:no standardmäßig gebunden. Wenn Sie Ihre keybindings.json mit /keybindings vor v2.1.280 erstellt haben, listet die Datei beide Bindungen auf und sie bleiben wirksam, bis Sie diese beiden Zeilen löschen.

Berechtigungsaktionen

Aktionen verfügbar im Confirmation-Kontext für Berechtigungsdialoge:

Transkript-Aktionen

Aktionen verfügbar im Transcript-Kontext: transcript:toggleShowAll gilt nur im klassischen Renderer; im Vollbildrendering bietet der Transkript-Viewer keine Show-All-Umschaltung.

Verlaufssuch-Aktionen

Aktionen verfügbar im HistorySearch-Kontext: Die Standards für historySearch:next, historySearch:accept, historySearch:cancel und historySearch:execute gelten für die Inline-Verlaufssuche im klassischen Renderer, die immer Eingabeaufforderungen aus allen Projekten durchsucht. historySearch:cycleScope wird nur im Vollbildrendering wirksam, wo Ctrl+R stattdessen einen Suchdialog öffnet und Ctrl+S seinen Bereich durchläuft. Die anderen Tasten des Dialogs sind fest und können nicht neu gebunden werden: Enter oder Tab platziert den hervorgehobenen Treffer in der Eingabeaufforderung und Esc bricht ab.

Aufgaben-Aktionen

Aktionen verfügbar im Task-Kontext:

Design-Aktionen

Aktionen verfügbar im ThemePicker-Kontext:

Hilfe-Aktionen

Aktionen verfügbar im Help-Kontext:

Tabs-Aktionen

Aktionen verfügbar im Tabs-Kontext: In einem Tabbed-Dialog wechseln tabs:next und tabs:previous die Tabs, während die Tab-Zeile den Fokus hat. In einigen Dialogen, wie /help und /sandbox, funktionieren die Tab-Wechsel-Tasten auch von innerhalb des Tab-Inhalts. Oben und Unten verschieben den Fokus zwischen der Tab-Zeile und dem Tab-Inhalt, und eine Liste im Inhalt reagiert nur auf Tasten, wenn sie den Fokus hat.

Anhänge-Aktionen

Aktionen verfügbar im Attachments-Kontext: Aktionen verfügbar im Footer-Kontext: Während ein Fußzeilen-Element ausgewählt ist, wie eine Zeile im Agent-Panel unter der Eingabeaufforderung, öffnet Enter es auch, wenn Sie Enter im Chat-Kontext zu chat:queueSubmit oder chat:newline neu binden. Chat-Bindungen auf Tasten, die der Footer-Kontext nicht bindet, wie Shift+Tab für chat:cycleMode, funktionieren weiterhin, während ein Element ausgewählt ist.

Nachrichtenauswahl-Aktionen

In der Nachrichtenliste des Rewind-Menüs bewegen Sie sich durch Nachrichten und wählen eine mit den Select-Aktionen und ihren Standardtasten aus. Ihre Select-Bindungen für diese Aktionen gelten auch dort. Der MessageSelector-Kontext hat keine eigenen Aktionen oder Standardbindungen. Verwenden Sie ihn, um einen Schlüssel nur für diese Liste zu ändern, indem Sie eine Select-Aktion wie select:accept in einem MessageSelector-Block binden. Dieses Beispiel bindet o zum Auswählen der hervorgehobenen Nachricht im Rewind-Menü, ohne andere Listen zu ändern:
Vor v2.1.283 ignorierte diese Liste Select-Bindungen und hatte ihre eigenen Aktionen: messageSelector:up, messageSelector:down, messageSelector:top, messageSelector:bottom und messageSelector:select. Wenn Ihre keybindings.json einen dieser Namen bindet, bleibt die Bindung in dieser Liste als Select-Aktion wirksam, die dasselbe tut. Home und End springen zu beiden Enden der Liste; vor v2.1.283 taten das Tasten wie Shift+K und Shift+J standardmäßig.

Diff-Aktionen

Aktionen verfügbar im DiffDialog-Kontext: Die Dateiliste reagiert auch auf die Select-Aktionen, durch ihre Standardtasten und Ihre Select-Bindungen. select:previous und select:next bewegen sich zur vorherigen und nächsten Datei, und Enter öffnet den Diff der ausgewählten Datei über select:accept. Um einen dieser Schlüssel nur für die Dateiliste zu ändern, binden Sie die Select-Aktion in einem DiffDialog-Block. Vor v2.1.283 ignorierte die Dateiliste Select-Bindungen, und Enter öffnete den Diff der ausgewählten Datei über eine separate diff:viewDetails-Aktion. Wenn Ihre keybindings.json diff:viewDetails bindet, bleibt die Bindung in der Dateiliste als select:accept wirksam. Die Diff-Detailansicht bindet auch Pager-ähnliche Tasten an die Standard-Scroll-Aktionen. Diese Bindungen sind Teil des DiffDialog-Kontexts und gelten nur in der Detailansicht; die Scroll-Kontext-Standards, die unter Scroll-Aktionen aufgelistet sind, bleiben unverändert.

Diff-Panel-Aktionen

Aktionen für das Diff-Panel, das /diff im Vollbildrendering öffnet. app:cycleDiffBase ist im DiffPanel-Kontext, der aktiv ist, während das Panel offen ist; die anderen sind Global. Das Panel erfordert Claude Code v2.1.260 oder später.

Modell-Picker-Aktionen

Aktionen verfügbar im ModelPicker-Kontext:

Effort-Schieberegler-Aktionen

Aktionen verfügbar im EffortSlider-Kontext, dem Schieberegler, der sich öffnet, wenn Sie /effort ohne Argumente ausführen. Die Tasten Enter und Escape des Schiebereglers können nicht neu gebunden werden.

Select-Aktionen

Aktionen verfügbar im Select-Kontext: Claude Code wendet Ihre select:pageUp-, select:pageDown-, select:first- und select:last-Bindungen in Listenpanels wie /skills und /mcp an. In den meisten anderen Listen, wie dem /model-Picker, gelten Ihre select:first- und select:last-Bindungen. Bild-Auf und Bild-Ab blättern durch die Optionen in diesen Listen unabhängig von Ihren Bindungen. Vor v2.1.280 ignorierten diese anderen Listen Pos1, Ende und Ihre select:first- und select:last-Bindungen.

Plugin-Aktionen

Aktionen verfügbar im Plugin-Kontext:

Einstellungs-Aktionen

Aktionen verfügbar im Settings-Kontext. Die Aktionen select:accept und confirm:no werden aus den Kontexten Select und Confirmation wiederverwendet mit einstellungsspezifischem Verhalten: Änderungen werden auf jede Einstellung angewendet, sobald Sie sie ändern, daher schließt Escape das Panel mit Ihren gespeicherten Änderungen, anstatt abzulehnen.

Agents-Aktionen

Aktionen verfügbar im Agents-Kontext, der in der Agent-Ansicht gilt, die mit claude agents geöffnet wird. Erfordert v2.1.257 oder später. Während die Agent-Ansicht offen ist, verwendet Claude Code die Agents-Bindung für jede Taste, die der Agents-Kontext bindet, und ignoriert eine Chat- oder Global-Bindung auf derselben Taste. Wenn Sie beispielsweise Ctrl+S in der Agent-Ansicht drücken, wird die Sitzungsgruppenbildung gewechselt, anstatt den Standard chat:stash auszulösen. Die Eingabeverteilung des externen Editors ist keine Agents-Aktion. Die Agent-Ansicht folgt der Chat-Kontext-Bindung chat:externalEditor, Ctrl+G standardmäßig. Bindungen werden bei einzelnen Tastenanschlägen in der Agent-Ansicht ausgelöst, daher öffnet die Ctrl+X Ctrl+E-Kombination, die an chat:externalEditor gebunden ist, den Editor dort nicht.

Sprach-Aktionen

Aktionen verfügbar im Chat-Kontext, wenn Sprachdiktat aktiviert ist:

Scroll-Aktionen

Aktionen verfügbar im Scroll-Kontext, wenn Vollbildrendering aktiviert ist:

Tastenkombinations-Syntax

Modifizierer

Verwenden Sie Modifizierer-Tasten mit dem +-Trennzeichen:
  • ctrl oder control - Strg-Taste
  • shift - Umschalt-Taste
  • alt, opt, option oder meta - Alt-Taste unter Windows und Linux, Option-Taste unter macOS
  • cmd, command, super oder win - Befehlstaste unter macOS, Windows-Taste unter Windows, Super-Taste unter Linux
Die cmd-Gruppe wird nur in Terminals erkannt, die den Super-Modifizierer melden, wie z. B. solche, die das Kitty-Tastaturprotokoll oder den modifyOtherKeys-Modus von xterm unterstützen. Die meisten Terminals senden ihn nicht, daher verwenden Sie ctrl oder meta für Bindungen, die überall funktionieren sollen. Beispiele:

Großbuchstaben

Claude Code analysiert Tastennamen groß- und kleinschreibungsunabhängig, daher ist K dieselbe Bindung wie k und ctrl+K ist dasselbe wie ctrl+k. Um Umschalt und einen Buchstaben zu binden, schreiben Sie shift+k.

Nicht-US-Tastaturlayouts

Schreiben Sie die Tastennamen von Strg-Verknüpfungen als lateinische Zeichen, auch wenn Ihr aktives Tastaturlayout andere Zeichen eingibt. Wie Claude Code die Taste, die Sie drücken, mit einer Bindung abgleicht, hängt von der Art des Layouts ab:
  • Unter einem nicht-lateinischen Layout wie Kyrillisch gleicht Claude Code Strg-Verknüpfungen durch die US-Layout-Position der Taste ab, wenn das Terminal das Kitty-Tastaturprotokoll verwendet und diese Position meldet. In einem solchen Terminal mit aktivem russischem Layout löst das Drücken von Strg und der physischen W-Taste ctrl+w aus. In einem Terminal, das die Position nicht meldet, gleicht Claude Code ab, was das Terminal für den Tastendruck sendet: Ein ASCII-Steuercode löst die lateinische Verknüpfung aus, und ein Tastendruck, der als kyrillisches Zeichen ankommt, entspricht keiner Bindung
  • Unter Layouts, die lateinische Buchstaben neu anordnen, wie AZERTY, gleicht Claude Code den Buchstaben ab, den die Taste eingibt, daher löst das Drücken von Strg und der mit A beschrifteten Taste ctrl+a aus
Vor v2.1.247 löste das Drücken einer Strg-Verknüpfung unter einem nicht-lateinischen Layout seine Bindung in Terminals, die das Kitty-Tastaturprotokoll verwenden, wie Ghostty, Kitty, WezTerm und iTerm2, nicht aus.

Akkorde

Akkorde sind Sequenzen von Tastenkombinationen, die durch Leerzeichen getrennt sind:
Drücken Sie jede Tastenkombination innerhalb von 3 Sekunden nach der vorherigen. Wenn Sie länger warten, bricht Claude Code den Akkord ab und zeigt eine kurze Benachrichtigung an, die dies anzeigt.

Spezielle Tasten

  • escape oder esc - Escape-Taste
  • enter oder return - Enter-Taste
  • tab - Tab-Taste
  • space - Leertaste
  • up, down, left, right - Pfeiltasten
  • pageup, pagedown - Bild-auf- und Bild-ab-Tasten
  • home, end - Pos1- und Ende-Tasten
  • backspace, delete - Löschtasten
  • wheelup, wheeldown - Mausrad-Scroll-Ereignisse

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: ctrl+x ctrl+k, ctrl+x ctrl+e, ctrl+x enter, ctrl+x ctrl+a, ctrl+x ctrl+s und ctrl+x tab in Chat, ctrl+x ctrl+b in Task und ctrl+x b in DiffPanel. 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 der Vim-Modus aktiviert ist über /config → Editor-Modus, arbeiten Keybindings und Vim-Modus unabhängig:
  • Vim-Modus verarbeitet Eingaben auf der Texteingangsebene (Cursor-Bewegung, Modi, Bewegungen)
  • Keybindings verarbeiten Aktionen auf der Komponentenebene (Aufgaben umschalten, senden usw.)
  • Die Escape-Taste im Vim-Modus wechselt von INSERT zu NORMAL-Modus; sie löst nicht 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

Validierung

Claude Code validiert Ihre Keybindings und zeigt Warnungen für:
  • Parse-Fehler (ungültiges JSON oder Struktur)
  • 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. Vor v2.1.246 deaktivierte eine Bindung mit einem unbekannten Aktionsnamen diese Taste stillschweigend
  • Reservierte Kürzel-Konflikte
  • Doppelte Bindings im selben Kontext
Claude Code meldet Warnungen, wenn die Datei geladen wird, und schreibt jede einzelne in das Debug-Protokoll. Starten Sie Claude Code mit --debug, um die Details zu sehen.