Fix
Cursor Keybindings Not Working? Chords and Broken Imports
Cursor keybindings usually break for one of three reasons: two-step chords moved off ⌘CtrlK (the leader is ⌘R on Mac, CtrlM on Windows/Linux, because ⌘K drives inline edit), imported VS Code bindings arrived with dead '(arbitrary function)' when clauses, or another binding is shadowing yours. Each has a two-minute fix.
On this page
Why do my Cmd+K shortcuts do the wrong thing?
Because ⌘CtrlK belongs to inline edit in Cursor (and to the prompt bar in the terminal), every two-step VS Code chord you have in muscle memory moved. A Cursor staff answer on the forum states it directly: "⌘CtrlK is used for the inline edits. We therefore changed the keychord leader key to be ⌘R on Mac and CtrlM on Windows and Linux."
- Muscle memory (VS Code)
- ⌘K ⌘S — keyboard shortcuts
- Cursor equivalent
- ⌘R ⌘S
- Muscle memory (VS Code)
- ⌘K ⌘W — close all editors
- Cursor equivalent
- ⌘R ⌘W
- Muscle memory (VS Code)
- ⌘K Z — zen mode
- Cursor equivalent
- ⌘R Z
| Muscle memory (VS Code) | Cursor equivalent |
|---|---|
| ⌘K ⌘S — keyboard shortcuts | ⌘R ⌘S |
| ⌘K ⌘W — close all editors | ⌘R ⌘W |
| ⌘K Z — zen mode | ⌘R Z |
Mac shown; the Windows/Linux leader is Ctrl+M. The leader is configurable via the workbench.action.keychord.leader setting.
This is covered hands-on in Troubleshooting and Operating Cursor Reliably — 7 short modules, free to read.
Why did my imported VS Code keybindings stop firing?
Users importing VS Code settings have found entries in Cursor whose when fields read (arbitrary function) — a placeholder left when a condition could not be carried across the import. A binding with that clause never fires, silently. The fix is deletion and rebinding, not repair:
- 1Open Preferences: Open Keyboard Shortcuts (JSON) from the command palette and delete every entry whose
whenis(arbitrary function). - 2Rebind the survivors you actually use through the Keyboard Shortcuts UI (right-click a command → change keybinding) so Cursor writes valid conditions itself.
- 3For anything needing a precise scope, write the
whenclause by hand — the keybindings.json reference covers the syntax and context keys.
How do I find what's stealing my shortcut?
When a key does something unexpected (or nothing), stop guessing and ask the editor. Two built-in tools answer it definitively:
- 1Run Developer: Toggle Keyboard Shortcuts Troubleshooting from the command palette, press the key, and read the log — it shows every rule the keystroke matched and which binding won.
- 2In the Keyboard Shortcuts UI, search by the key itself (type the combo into the search box) to see all commands competing for it and each one's
whenclause. - 3Fix by narrowing scope: give your binding a focus guard (e.g.
editorTextFocus) or disable the competing default by re-adding it with a minus-prefixed command in keybindings.json.
A surprising number of "broken" bindings are editor shortcuts firing while focus sits in the chat input, or vice versa. If a key works in one pane and not another, the binding needs a when clause, not a different key.
Frequently asked questions
How do I get my Cmd+K chords back in Cursor?
Change the chord leader: search the Keyboard Shortcuts settings for the keychord leader (setting id workbench.action.keychord.leader) and set it to ⌘K. You then share the key with inline edit, so scope one of them with a when clause.
What does when '(arbitrary function)' mean in my keybindings?
It is a placeholder left by a VS Code settings import when a binding's condition couldn't be translated. Bindings carrying it never fire. Delete those entries and rebind through Cursor's Keyboard Shortcuts UI.
How do I see why a shortcut isn't firing?
Run Developer: Toggle Keyboard Shortcuts Troubleshooting from the command palette and press the key — the log shows each rule it matched and which binding won. It names the culprit immediately.
Can I reset all Cursor keybindings to defaults?
Your customizations live in keybindings.json (Preferences: Open Keyboard Shortcuts (JSON)). Emptying that file's array returns you to Cursor's defaults — safer than hunting individual entries when an import has made a mess.
Sources & last verified
- Cursor Docs - Keyboard Shortcuts
- Cursor Forum - Imported keybindings with '(arbitrary function)' when clauses (staff answer)
- VS Code Docs - When Clause Contexts
Cursor ships frequently. Facts verified against primary sources on July 16, 2026.