Using Cursor keyboard-only: bindings that get you off the mouse
Published 2026-03-06 by Owner
Cursor inherits VS Code’s keyboard shortcut model. Most editor operations have keyboard shortcuts. The AI-specific operations are inconsistent — some have great shortcuts, some don’t, some have shortcuts but require mouse-first invocation.
After moving toward keyboard-only over a few months, here are the bindings I’ve found necessary.
Custom keybindings
Open Cmd+Shift+P → “Open Keyboard Shortcuts (JSON)”. Add:
[
{
"key": "cmd+i",
"command": "composerMode.agent",
"when": "!composerMode.active"
},
{
"key": "cmd+shift+i",
"command": "composerMode.askMode"
},
{
"key": "cmd+shift+l",
"command": "aichat.newchataction"
},
{
"key": "cmd+shift+y",
"command": "aichat.newconversation"
},
{
"key": "cmd+e",
"command": "aichat.insertselectionintochat"
},
{
"key": "alt+enter",
"command": "editor.action.acceptInlineCompletion"
},
{
"key": "alt+escape",
"command": "editor.action.rejectInlineCompletion"
},
{
"key": "cmd+r cmd+i",
"command": "cursor.directoryIgnoreCurrentFile"
},
{
"key": "cmd+r cmd+r",
"command": "cursor.reindexCodebase"
},
{
"key": "cmd+r cmd+t",
"command": "cursor.toggleAutocomplete"
}
]
These cover the operations I do most often:
Cmd+Ifor Composer (the agent panel)Cmd+Shift+Ifor Composer in ask modeCmd+Shift+Lfor new chatCmd+Shift+Yfor new conversation in existing chatCmd+Efor sending selection to chatAlt+Enterfor accepting inline completion (faster than Tab in some contexts)Alt+Escapefor explicitly rejecting (rather than typing through)Cmd+Rchord for cursor-specific operations
The chord key (Cmd+R)
The Cmd+R chord is a useful organizing principle. Cursor-specific operations live under one prefix. Once you know the prefix, the second key is mnemonic:
Cmd+R Cmd+I— ignore (file)Cmd+R Cmd+R— reindex (codebase)Cmd+R Cmd+T— toggle (autocomplete)Cmd+R Cmd+P— pin (file to chat context)Cmd+R Cmd+U— unpin (all files)
The chord pattern is borrowed from Emacs and works well in Cursor. Two keys per operation but the first is shared, so muscle memory builds quickly.
Navigation that works without mouse
Cursor inherits VS Code’s navigation. Worth knowing:
Cmd+P— quick open file by nameCmd+Shift+O— go to symbol in fileCmd+T— go to symbol in workspaceCmd+G— go to lineF12— go to definitionShift+F12— find all referencesCmd+Click— go to definition (mouse equivalent of F12)
The chat panel and Composer also support keyboard navigation. Within the chat:
Cmd+L— focus chat inputCmd+\— focus the editorUp/Down arrowin chat input — previous/next promptCmd+K Cmd+I— show inline edit prompt at cursor position
Once you have the focus shortcuts, you can jump between editor, chat input, and Composer without ever touching the mouse.
What I use most
My top 10 keyboard operations during a typical Cursor session:
Cmd+I— open Composer (most-used, very high frequency)Cmd+L— open chat panelCmd+K— inline editTab/Alt+Enter— accept completionCmd+Click(orF12) — go to definition (still trips me up keyboard-only sometimes)Cmd+P— find fileCmd+Shift+P— command paletteCmd+B— toggle sidebarCmd+J— toggle terminalCmd+\— toggle focus between editor and chat
What still requires mouse
A few operations I haven’t found good keyboard shortcuts for:
Navigating Composer’s plan tree. Composer shows a checklist of steps. Navigating between steps with keyboard is awkward. Mouse click is faster.
Reordering pinned chat files. Pinned files in chat context can be reordered to influence priority. There’s no keyboard shortcut for this.
Some Composer interactions. Accepting individual file changes in Composer’s diff view requires clicking. Keyboard shortcuts exist but are inconsistent.
These are minor enough that I tolerate them. Maybe 2-3% of my Cursor interactions still require mouse.
Why bother?
For some workflows, mouse use is fine. For others, the cumulative cost of mouse trips is real:
For vim users. If your hands rest on home row, every mouse trip is a context switch. Keyboard-only Cursor preserves the vim flow.
For RSI sufferers. Mouse use exacerbates wrist problems. Keyboard-only with split keyboards is a meaningful intervention.
For pure speed. Once muscle memory is established, keyboard operations are faster than mouse for most editor tasks.
The gain isn’t dramatic for one operation. It compounds across thousands of operations per day.
Adoption strategy
Don’t try to switch keyboard-only overnight. The pattern that worked for me:
- Identify your top 5 mouse operations in Cursor
- Find or create keyboard shortcuts for them
- Use the shortcuts for a week, even if slower at first
- Once those are habit, identify the next 5
- Repeat until ~95% keyboard
The transition takes 4-6 weeks of deliberate practice. After that, you don’t think about it.
Custom shortcuts I considered and skipped
Some shortcuts I tried and reverted:
A shortcut for every Composer plan step. Too many to remember. Mouse is fine for this.
Custom shortcuts for AI model selection. I rarely change models mid-session. Settings panel is fine for the once-a-week change.
A shortcut for “regenerate response.” Conflicted with too many other shortcuts. The chat panel button is fine for this rare action.
What Cursor should improve
A few keyboard UX gaps:
- The Composer plan tree should support arrow-key navigation
- More consistent shortcuts across modes (some use Cmd+K, some use Cmd+L, some use Cmd+I; the pattern isn’t always clear)
- Better documentation of keyboard shortcuts in-tool (the keyboard reference is buried)
These are reasonable next steps for the team. The current state is workable; better is possible.
For users who want keyboard-only now, the bindings above plus practice produce a clean workflow. The investment is finite; the payoff persists.