The moment you start using Cursor, you notice something: whether or not you’ve actually learned the keyboard shortcuts changes your productivity dramatically.

This article works through the official documentation to cover the full Windows/Mac shortcut list, with extra detail on the ones that tend to leave people wondering “wait, what’s this actually for?”

How to check your shortcuts Every shortcut is listed if you press Ctrl RCtrl S (Mac: Cmd RCmd S), or search “Keyboard Shortcuts” in the command palette (Ctrl Shift P / Cmd Shift P).

Every Cursor-specific keybinding can be freely remapped from the Keyboard Shortcuts settings.

General / Global Operations

ActionWindowsMac
Open AI side panel (Agent)Ctrl ICmd I
Open AI side panel (Chat)Ctrl LCmd L
Toggle Agent layoutCtrl ECmd E
Open mode menuCtrl .Cmd .
Cycle through AI modelsCtrl /Cmd /
Open Cursor settingsCtrl Shift JCmd Shift J
Toggle voice modeCtrl Shift SpaceCmd Shift Space
General settingsCtrl ,Cmd ,
Command paletteCtrl Shift PCmd Shift P

🔍 Ctrl I / Cmd I — Agent vs. Chat

Ctrl I (Cmd I) opens Agent mode (formerly Composer), and Ctrl L (Cmd L) opens Chat mode. Both call up the AI side panel, but they’re meant for different jobs.

  • Agent (Ctrl I): for handing off a whole task at once — sweeping changes across files, adding a new feature, that kind of thing
  • Chat (Ctrl L): for getting an explanation of code, asking for advice, or just asking a question without touching anything

Example: Want to say “migrate this component to TypeScript”? Use Ctrl I. Want “explain what this function is doing, in plain English”? Use Ctrl L.

🔍 Ctrl . — What’s the mode menu?

Pressing Ctrl . (Cmd .) brings up the Agent / Ask / Plan mode-switching menu.

  • Agent: edits and runs code autonomously
  • Ask: answers questions without editing (searches the whole codebase to answer)
  • Plan: only builds an implementation plan — makes no actual changes

Rule of thumb: “I want to check what’s about to happen first” → Plan. “I want to understand a concept” → Ask. “Just build it” → Agent.

🔍 Ctrl / — Instant model switching

Every press of Ctrl / (Cmd /) cycles to the next available AI model. Use a heavier model like Opus for demanding tasks and a lighter one when speed matters more, and you can balance cost against speed on the fly.


AI Chat

Shortcuts for the chat input box.

ActionWindowsMac
Send (default Nudge)EnterEnter
Queue the messageCtrl EnterCmd Enter
Force-send while typingCtrl Enter (while typing)Cmd Enter (while typing)
Cancel generationCtrl Shift BackspaceCmd Shift Backspace
Add selected code as contextSelect code + Ctrl Shift LSelect code + Cmd Shift L
Add clipboard code as contextCtrl VCmd V
Paste clipboard code as plain textCtrl Shift VCmd Shift V
Accept all suggested changesCtrl EnterCmd Enter
Reject all changesCtrl BackspaceCmd Backspace
Move to next messageTabTab
Cycle through Agent modesShift TabShift Tab
Switch model (in chat)Ctrl Alt /Cmd Option /
Open a new chatCtrl N / Ctrl RCmd N / Cmd R
Open a new chat tabCtrl TCmd T
Go to previous chatCtrl [Cmd [
Go to next chatCtrl ]Cmd ]
Close chatCtrl WCmd W
Unfocus the input fieldEscEsc

🔍 Enter vs. Ctrl Enter — “Nudge” vs. “queue”

The default Enter is a “Nudge” send — it lightly prompts the Agent for “just the next move.” Ctrl Enter adds the message to a queue instead, letting you stack instructions the Agent will pick up once it finishes what it’s currently doing.

Example: The Agent is in the middle of building an auth feature and you think “oh, don’t forget the logout flow” → queue it with Ctrl Enter, and it’ll get picked up once the current work wraps up.

🔍 Ctrl V vs. Ctrl Shift V — pasting error logs

Copy an error from your terminal and paste it into Chat, and the two shortcuts behave differently.

  • Ctrl V: attaches it as context (rendered cleanly in the UI, code-block style)
  • Ctrl Shift V: pastes it as plain text straight into the input field

If you want the AI to actually read the error, Ctrl V is the easier one to work with.

🔍 Ctrl Shift Backspace — stopping generation fast

If the AI is obviously headed the wrong direction, you don’t have to sit through the rest of the generation — cancel immediately. Once it stops, adjust your instruction and send again.


Inline Edit

Give edit instructions directly in the editor, on selected code, without opening the side panel — everything happens right at your cursor.

ActionWindowsMac
Open inline editCtrl KCmd K
Switch input focusCtrl Shift KCmd Shift K
SubmitEnterEnter
CancelCtrl Shift BackspaceCmd Shift Backspace
Send a quick questionAlt EnterOption Enter

🔍 Ctrl K / Cmd K — the AI shortcut you’ll use the most

Ctrl K

Select some code and press Ctrl K (Cmd K), and a small prompt bar pops up right there. No need to open the side panel — just say “refactor this function,” “add a comment,” “fix this bug,” right on the spot.

Typical workflow:

  1. Drag-select the code you want to change
  2. Press Ctrl K (Cmd K)
  3. Type something like “rewrite this loop using reduce”
  4. Press Enter to send → a diff appears
  5. Ctrl Enter (Cmd Enter) to accept, Ctrl Backspace (Cmd Backspace) to reject

Good to know: Press Ctrl K with nothing selected, and it’ll use the surrounding lines at your cursor as context to generate new code. Put your cursor inside an empty function and hit Ctrl K → “write the validation logic” — and it’ll write it.

🔍 Alt Enter / Option Enter — “quick question” doesn’t touch your code

Alt Enter (Option Enter) opens “quick question” mode. A normal Enter gets treated as an instruction to change code, but this one is for read-only questions — “what is this code doing?” — where you just want an explanation. Nothing gets changed; you get a chat-style answer back.


Code Selection & Adding Context

ActionWindowsMac
@ mentions@@
Shortcut commands//
Add selection to ChatCtrl Shift LCmd Shift L
Add selection to EditCtrl Shift KCmd Shift K
Add selection to a new chatCtrl LCmd L
Toggle file-reading strategyCtrl MCmd M
Accept next word of a suggestionCtrl →Cmd →
Search the codebase in chatCtrl EnterCmd Enter
Copy code → add as contextSelect code + Ctrl CCtrl VSelect code + Cmd CCmd V
Copy code → add as textSelect code + Ctrl CCtrl Shift VSelect code + Cmd CCmd Shift V

🔍 “Add to Chat” vs. “Add to Edit” vs. “Add to new chat” — the three differences

Once you’ve selected code, you’ve got three places to send it.

ShortcutDestinationUse it for
Ctrl Shift LThe chat you already have open“Add this code to what we’re already discussing”
Ctrl Shift KEdit (inline edit)“I want this code itself changed directly”
Ctrl LA brand-new chat“I just want to focus on this one function”

Example: You spot a function you suspect is buggy → select it, Ctrl L to start a fresh chat, and ask “what’s wrong with this function?”

🔍 Ctrl M / Cmd M — switching how files get read

Not well known, but genuinely useful. It toggles how Cursor reads a file (full-text read vs. outline read, etc.). Handy for saving tokens when you’re working with huge files.

🔍 @ mentions and / shortcuts

Type @ in the chat input and you can pull in files, folders, git commits, web pages, and more as context.

Mentions are extremely useful

Commonly used @ mentions:

  • @filename: pulls a specific file into context
  • @Codebase: semantically searches the whole repo as context
  • @Docs: references documentation you’ve registered with Cursor
  • @Web: pulls web search results into context

/ triggers shortcut commands, for quickly calling up things you use often (/edit, /generate, etc.).


Tab Completion

ActionWindowsMac
Accept a suggestionTabTab
Accept only the next wordCtrl →Cmd →
Dismiss a suggestionEscEsc

🔍 Ctrl → / Cmd → — why “partial accept” is so useful

Useful when a Tab-completion suggestion is too long and you only want part of it. Instead of accepting everything with Tab, pressing Ctrl → (Cmd →) accepts one word at a time.

Example: The AI suggests getUserByEmailAndRole(email, role, includeDeleted), but you don’t need the includeDeleted argument → step through with Ctrl →, confirming word by word, and pull in only the part you need.


Terminal AI

Lets the AI generate shell commands directly inside the terminal.

ActionWindowsMac
Open the prompt barCtrl KCmd K
Run the generated commandCtrl EnterCmd Enter
Confirm the command (close)EscEsc

🔍 Terminal Ctrl K — generating shell commands in plain language

With the terminal focused, Ctrl K (Cmd K) opens a different “terminal prompt bar” from the regular editor’s inline edit. Describe what you want to do in plain English (or Japanese) and it generates the shell command for you.

How to use it:

  1. Click into the terminal to focus it
  2. Press Ctrl K
  3. Type something like “delete every .log file older than 3 days”
  4. Press Enter to generate the command (e.g. find . -name "*.log" -mtime +3 -delete)
  5. Review it, run it with Ctrl Enter, or cancel with Esc if you don’t need it

It’s genuinely handy for those moments you can’t quite remember the right syntax — especially for gnarlier commands like find, awk, sed, or grep.


Combo moves worth knowing

A few shortcuts are far more powerful chained together than used alone.

Combo #1: Targeted refactor

plaintext
Select code → Ctrl K → "add error handling" → Enter → review the diff → Ctrl Enter to accept

Keeps the blast radius limited to your selection, for when you don’t want the Agent touching the whole file.

Combo #2: Codebase-wide questions

plaintext
Ctrl L (new chat) → @Codebase → "which file handles the auth logic?"

@Codebase has Cursor semantically search the entire repo to answer. For “wait, where was that file again?” moments, it beats a manual search — you can just ask in plain language.

Combo #3: Dropping a terminal error straight in

plaintext
Copy the terminal error output → Ctrl V in the chat input → "how do I fix this error?"

Ctrl V attaches it as a proper code block, so even a long stack trace comes through as clean, usable context.

Combo #4: Plan first, then execute

plaintext
Ctrl I → Ctrl . (switch modes) → select Plan → "I want to add user authentication" → review the plan → Ctrl . (switch to Agent) → run it

Rather than letting the Agent loose immediately, confirming the approach in Plan mode first and then switching to Agent helps avoid unintended large-scale changes.


Summary: the 7 shortcuts to learn first

If you’re just getting started with Cursor, internalizing these first will bump your productivity the fastest.

PriorityShortcut (Win / Mac)Use
★★★Ctrl K / Cmd KInline edit / terminal AI
★★★Ctrl I / Cmd IAgent (multi-file edits)
★★★TabAccept Tab completion
★★☆Ctrl L / Cmd LOpen chat / send a selection to a new chat
★★☆Ctrl Shift L / Cmd Shift LAdd selected code to the current chat
★★☆Ctrl / / Cmd /Switch AI models on the spot
★☆☆Ctrl . / Cmd .Switch between Agent / Ask / Plan

Don’t try to memorize all of these at once — pick up Ctrl K today, @Codebase tomorrow, and build up from there. The more you use them, the more you’ll wonder how you ever developed without them.


Last updated: June 2026 (Cursor 3.7) Reference: Cursor official documentation