Cursor Keyboard Shortcuts: macOS and Windows Reference 2026

Last updated: April 15, 2026

Cursor Keyboard Shortcuts

Cursor inherits every VS Code keybinding and adds its own set for AI features. Learning the 20 most common bindings cuts minutes off every coding session. This page lists every AI shortcut, the most-used VS Code bindings, and five power-user patterns that compound across the day.

Core AI shortcuts

The AI shortcuts are Cursor-specific. They differ from the VS Code defaults because VS Code does not know what to do with Cmd+I or Cmd+L.

All bindings below show macOS first, then the Windows and Linux equivalent.

Inline edit - Cmd+K / Ctrl+K

Opens the inline edit prompt below the selection or at the cursor. Type what you want changed, press Enter to submit, Cmd+Enter to accept the diff, Escape to reject.

If nothing is selected, Cmd+K generates new code at the cursor. If a block is selected, the prompt edits that selection.

Open Composer - Cmd+I / Ctrl+I

Opens the Composer panel on the right. The shortcut focuses the input box so you can start typing immediately. Press Cmd+I again to toggle the panel closed.

For a new task in the existing panel, Cmd+N inside Composer starts a fresh session.

Open Chat - Cmd+L / Ctrl+L

Opens the Chat sidebar. Chat is for questions and suggestions, not edits. Shortcut focuses the input so you can ask immediately.

Accept autocomplete - Tab

Accept the full Tab suggestion. Works anywhere a ghost-text suggestion is visible. The hardest-working shortcut in Cursor: most sessions press Tab 50-100 times.

Dismiss autocomplete - Escape

Cancel the current Tab suggestion. The suggestion goes away and your typing continues unaffected.

Accept word by word - Cmd+Right / Ctrl+Right

Accept the next word of a Tab suggestion instead of the whole thing. Useful when the suggestion starts right but goes wrong after a few words.

Option+Right on macOS (Alt+Right on Windows) does the same thing and feels more natural for users who already use Option+Right for word navigation.

Submit Composer prompt - Cmd+Enter / Ctrl+Enter

Inside Composer, Cmd+Enter submits the current prompt. Plain Enter adds a newline.

After a Composer response, Cmd+Enter on a diff accepts the change for that file.

Reject Composer change - Cmd+Backspace / Ctrl+Backspace

Rejects the current Composer edit and reverts the file to its previous state.

Delete line - Cmd+Shift+K / Ctrl+Shift+K

Deletes the current line. Inherited from VS Code; included here because Cmd+Shift+K can feel overloaded with AI, but this is still the line-delete binding.

Navigation shortcuts inherited from VS Code

These are VS Code defaults. They work exactly the same in Cursor.

Quick file open - Cmd+P / Ctrl+P

Fuzzy file finder. Type a partial path, press Enter to open. The fastest way to jump files.

Add : then a line number to jump to a specific line. Add @ then a symbol name to jump to a function or class.

Command palette - Cmd+Shift+P / Ctrl+Shift+P

Every command Cursor can run. Filter by typing. Useful for commands that do not have a binding, like "Cursor: Re-index Codebase" or "Format Document".

Toggle sidebar - Cmd+B / Ctrl+B

Toggles the primary sidebar (file explorer, search, source control, extensions). Use when you need more editor real estate.

Toggle terminal - Cmd+J / Ctrl+J

Toggles the integrated terminal panel at the bottom. Combined with agent mode, the terminal is where you see the agent's shell output.

Split editor - Cmd+\ / Ctrl+\

Splits the current editor into two panes. Useful for viewing the file Composer is editing alongside the diff.

Go to definition - F12

Jump to where the symbol under the cursor is defined. Same as VS Code.

Peek definition - Option+F12 / Alt+F12

Open the definition inline without jumping files.

Rename symbol - F2

Rename the symbol under the cursor across the whole project. Works via the language server, not the AI. More reliable than asking the AI to rename.

Autocomplete controls in depth

The Tab completion flow has four possible responses:

  1. Tab - accept the full suggestion
  2. Cmd+Right - accept one word
  3. Keep typing - the suggestion updates
  4. Escape - dismiss

A common mistake is pressing Tab too fast on a suggestion that was wrong at the end. Cmd+Right lets you take the good part and discard the rest.

The suggestion also updates as you type. If the ghost text suggests const name = user.name and you type const n, the ghost text adjusts to fit what you already typed.

Multi-cursor shortcuts

Cursor (the editor) inherits VS Code's multi-cursor features. These are not AI shortcuts but they pair well with Cmd+K for bulk edits.

  • Cmd+D / Ctrl+D - select next occurrence of the current word
  • Cmd+Shift+L / Ctrl+Shift+L - select all occurrences at once
  • Option+Click / Alt+Click - add a cursor at the click position
  • Cmd+Option+Up/Down / Ctrl+Alt+Up/Down - add a cursor above or below

Pattern: select the five places a variable is used with Cmd+D, then Cmd+K with "rename these to userId" - faster than F2 in some refactors.

Customizing shortcuts

Open Keyboard Shortcuts with Cmd+K Cmd+S on macOS or Ctrl+K Ctrl+S on Windows. The file is a JSON list of bindings at ~/.cursor/User/keybindings.json.

To rebind Cmd+K from inline edit to something else, search for "cursor.edit" in the shortcut editor, remove the existing binding, add a new one.

A few popular custom bindings:

[
  { "key": "cmd+shift+i", "command": "cursor.composer.newSession" },
  { "key": "cmd+e", "command": "cursor.codebase.search" },
  { "key": "cmd+alt+c", "command": "cursor.model.picker" }
]

Conflicts with macOS system shortcuts

Some Cursor shortcuts clash with macOS defaults:

  • Cmd+H - macOS "hide app"; Cursor uses it for replace in file
  • Cmd+M - macOS "minimize window"; Cursor uses it for some commands
  • Cmd+Space - Spotlight; not a conflict but users sometimes map AI chat here and break search

If you hit a clash, check System Settings > Keyboard > Keyboard Shortcuts first. You can usually reassign the macOS binding rather than break Cursor.

Five power-user patterns

Patterns that save minutes every hour once the muscle memory kicks in.

Pattern 1: Cmd+P then Cmd+I

Jump to a file, then open Composer targeting that file. Cursor auto-attaches the open file as context, so Composer knows what to work on without you typing @File.

Pattern 2: Select block, Cmd+K, Cmd+Enter

The three-keystroke local edit loop. Select code, describe change, accept. Five seconds end to end on a simple rename or extraction.

Pattern 3: Cmd+L, @Codebase, question

Fastest way to get a grounded answer about the codebase. Cmd+L to open Chat, type @Codebase then your question. The AI runs a semantic search and answers with cites.

Pattern 4: Cmd+I with @Git before PR

Before writing a PR description, open Composer and ask with @Git attached: "Write a PR description covering the last 5 commits on this branch." Two minutes of work becomes 15 seconds.

Pattern 5: Cmd+/ for mid-task model swap

If Sonnet is struggling on a Composer task, Cmd+/ to swap to Opus, re-send the last message. The context carries over and Opus often breaks through where Sonnet got stuck.

Shortcut cheatsheet to print

The minimum viable set worth printing and taping to the side of your monitor:

  • Tab, Escape - accept or dismiss completions
  • Cmd+K / Ctrl+K - inline edit
  • Cmd+I / Ctrl+I - Composer
  • Cmd+L / Ctrl+L - Chat
  • Cmd+P / Ctrl+P - open file
  • Cmd+Shift+P / Ctrl+Shift+P - command palette
  • Cmd+J / Ctrl+J - terminal
  • Cmd+/ / Ctrl+/ - model picker
  • Cmd+Enter / Ctrl+Enter - submit in Composer
  • Cmd+Right / Ctrl+Right - accept next word

Ten bindings cover more than 90% of what you do. Memorize them first, everything else comes with exposure.

Frequently asked questions

What is the shortcut to open Composer in Cursor?

Cmd+I on macOS, Ctrl+I on Windows and Linux. The shortcut opens the Composer panel and focuses the input so you can start typing immediately. Press it again to toggle the panel closed.

How do I accept only part of a Tab suggestion in Cursor?

Press Cmd+Right on macOS or Ctrl+Right on Windows to accept one word at a time. Option+Right and Alt+Right do the same thing and feel natural for users already using word navigation.

Can I customize Cursor keyboard shortcuts?

Yes. Open Keyboard Shortcuts with Cmd+K Cmd+S or Ctrl+K Ctrl+S. Bindings live in `~/.cursor/User/keybindings.json` as a JSON array. Search by command name to rebind or remove.

What is Cmd+/ in Cursor?

Cmd+/ on macOS or Ctrl+/ on Windows opens the model picker. Select a different model and the current Chat or Composer session continues with the new model, preserving conversation history.

Do VS Code keyboard shortcuts work in Cursor?

Yes. Cursor is a VS Code fork, so every VS Code default binding works unchanged. Cursor adds AI-specific bindings (Cmd+I, Cmd+L, Cmd+K for AI edit) that do not conflict with VS Code defaults.

How do I reject a Composer change with the keyboard?

Cmd+Backspace on macOS or Ctrl+Backspace on Windows rejects the current Composer edit and reverts the file. Alternatively, click Reject on the diff, or Reject with Feedback to request a correction.