Cursor AI keyboard shortcuts for Windows, Linux and Mac

Cursor's keyboard shortcuts for its AI features (side panel, chat input, inline edit, Tab completion, terminal prompt bar, Agents Window) with Windows / Linux and Mac keys side by side, as Cursor's documentation printed them on 6 October 2026. One key does different jobs by context: Ctrl + K opens inline edit in the editor, the prompt bar in the terminal and the command palette in the Agents Window. VS Code's editor shortcuts, which Cursor keeps, are not repeated here.

46 shortcuts in 7 sections. Checked row by row against Cursor Docs on . Edited by Jay.

General 10

Cursor's help says the editor keeps VS Code's default shortcuts and adds the ones for its AI features, and that every binding, Cursor-specific ones included, can be remapped in Keyboard Shortcuts settings.

ActionWindows / LinuxMac
Toggle side panelShows or hides the Agent side panel, unless the key has been assigned to a specific mode.Ctrl+ICmd+I
Toggle side panelSecond default key for the side panel; with code selected it starts a new chat holding that selection.Ctrl+LCmd+L
Toggle Agent layoutCtrl+ECmd+E
Mode MenuOpens the menu for choosing the agent mode; Shift + Tab changes mode without it.Ctrl+.Cmd+.
Loop between AI modelsCycles through the models from the keyboard; the new model applies to the current conversation from then on.Ctrl+/Cmd+/
Cursor settingsOpens Cursor's own settings page, which is separate from the general settings.Ctrl+Shift+JCmd+Shift+J
Toggle Voice ModeCtrl+Shift+SpaceCmd+Shift+Space
General settingsCtrl+,Cmd+,
Command paletteSearch it for Keyboard Shortcuts to reach the list where bindings are remapped.Ctrl+Shift+PCmd+Shift+P
Open Keyboard ShortcutsA two-step sequence: press the first combination, release it, then press the second.Ctrl+RthenCtrl+SCmd+RthenCmd+S

Chat 16

Ctrl + Enter and Ctrl + Shift + Backspace each do two jobs in the chat input: force-send and cancel while typing or generating, accept all and reject all once the agent has suggested changes.

ActionWindows / LinuxMac
Queue messageThe default send key: the message waits until Agent finishes its current task.EnterReturn
Force send messageWhile typing, sends the message at once instead of adding it to the queue.Ctrl+EnterCmd+Return
Cancel generationStops the response in progress; with suggested changes pending, the same keys reject them.Ctrl+Shift+BackspaceCmd+Shift+Backspace
Add clipboard as contextWith code or a log on the clipboard, pasting attaches it as reference context instead of plain text.Ctrl+VCmd+V
Paste clipboard into input boxPuts the copied code or log into the input box as text rather than as a reference.Ctrl+Shift+VCmd+Shift+V
Accept all changesApplies once the agent has suggested changes; while typing, the same keys force-send the message.Ctrl+EnterCmd+Return
Reject all changesDiscards every suggested change in one step; it needs suggested changes to be pending.Ctrl+Shift+BackspaceCmd+Shift+Backspace
Cycle to next messageTabTab
Rotate between Agent modesChanges the agent mode from the chat input; the Mode Menu has its own key.Shift+TabShift+Tab
Model toggleCtrl+Alt+/Cmd+Option+/
New chatEither key starts a new chat; opening one in a new tab has a separate key.Ctrl+NorCtrl+RCmd+NorCmd+R
New chat tabCtrl+TCmd+T
Previous chatCtrl+[Cmd+[
Next chatCtrl+]Cmd+]
Close chatCtrl+WCmd+W
Unfocus fieldTakes keyboard focus out of the chat input box.EscEsc

Inline edit 5

ActionWindows / LinuxMac
Open inline editSelect code first, then describe the change; the edit is applied in place without the chat panel.Ctrl+KCmd+K
Toggle input focusCtrl+Shift+KCmd+Shift+K
Submit inline editApplies the instruction to the selected code; press it again after a follow-up instruction to refine.EnterReturn
Cancel inline editCtrl+Shift+BackspaceCmd+Shift+Backspace
Ask quick questionSwitches the inline edit box to question mode; type "do it" to apply a change it suggests.Alt+EnterOption+Return

Code selection and context 6

ActionWindows / LinuxMac
Insert an @-mentionTyped in the chat input, it attaches specific context; keep typing to filter the suggestions.@@
Shortcut CommandsTyped in the chat input, it opens the skills menu; Enter attaches the chosen skill to one message.//
Add selection to ChatWith code selected, adds it to the chat as context rather than starting a new chat.Ctrl+Shift+LCmd+Shift+L
Add selection to EditCtrl+Shift+KCmd+Shift+K
Add selection to a new chatWith code selected, opens Agent with that code as context; with nothing selected it toggles the side panel.Ctrl+LCmd+L
Search codebase in chatCtrl+EnterCmd+Return

Tab completion 3

The accept key can be changed: search for Accept Cursor Tab Suggestions in Keyboard Shortcuts settings.

ActionWindows / LinuxMac
Accept suggestionTakes the whole greyed-out suggestion; pressing it again jumps to the next predicted edit location.TabTab
Accept next wordTakes the suggestion one word at a time instead of all of it.Ctrl+RightCmd+Right
Reject suggestionDismisses the greyed-out suggestion; carrying on typing has the same effect.EscEsc

Agents Window 3

ActionWindows / LinuxMac
Open command paletteIn the Agents Window this key opens the palette, which searches past agent conversations.Ctrl+KCmd+K
Find in conversationSearches the text of the conversation that is open.Ctrl+FCmd+F
Use skill as Custom ModePressed in the / menu instead of Enter, it keeps the picked skill in context on every turn.Alt+EnterOption+Return

Terminal 3

ActionWindows / LinuxMac
Open terminal prompt barIn the terminal the inline edit key opens a bar for generating a command from a description.Ctrl+KCmd+K
Run generated commandCtrl+EnterCmd+Return
Accept commandEscEsc

Notes

Three entry points

Cursor has three ways to ask for code and each has a key. Ctrl + L (Cmd + L on a Mac) opens the side panel chat with any selection attached; Ctrl + . opens the mode menu and Shift + Tab rotates between the agent modes. Ctrl + K opens inline edit for a targeted change to the selected code; Enter submits it and Ctrl + Shift + Backspace cancels. Tab accepts the inline completion, and Ctrl + Right accepts only the next word of it when the suggestion is half right. Ctrl + Shift + L adds the current selection to the chat without starting a new one.

Managing conversations

Ctrl + N or Ctrl + R starts a new chat and Ctrl + T a new chat tab; Ctrl + [ and Ctrl + ] move between chats and Ctrl + W closes one. Enter queues a message to send after the agent finishes its current task, while Ctrl + Enter sends it immediately. Once the agent has suggested changes, Ctrl + Enter accepts all of them and Ctrl + Shift + Backspace rejects them all. Ctrl + / loops between the AI models and Ctrl + E toggles the agent layout.

Terminal and settings

In the terminal, Ctrl + K opens a prompt bar where a plain-English request becomes a shell command; Ctrl + Enter runs the generated command and Esc accepts it. Ctrl + Shift + J opens Cursor's own settings, separate from the general settings on Ctrl + ,. Ctrl + Shift + Space toggles voice mode, and Ctrl + R, Ctrl + S opens the Keyboard Shortcuts list, where every binding can be remapped.

Questions

Do VS Code shortcuts work in Cursor?

Yes. Cursor's help says it uses the same default shortcuts as VS Code and adds shortcuts for its AI features; all of them can be remapped in Keyboard Shortcuts settings.

What is the difference between Ctrl + L and Ctrl + K?

Ctrl + L (Cmd + L on a Mac) opens the side panel for conversation and multi-file agent work. Ctrl + K (Cmd + K) edits the selected code inline, or opens the prompt bar in the terminal.

How do I accept only part of a suggestion?

Press Ctrl + Right (Cmd + Right on a Mac) to accept the next word; Tab accepts the whole suggestion and Esc rejects it.

Why does Enter not send my message straight away?

Enter queues the message by default, so it waits until the agent finishes its current task. Ctrl + Enter (Cmd + Return on a Mac) sends it immediately.

Where are the @ mentions and slash commands?

This page lists only the two trigger keys, @ and /. The mentions and commands themselves are on the Cursor prompt commands page.

Sources and checks

Every row on this page was matched to a line in the documentation above on . A binding that could not be found there is not listed.

4 rows from the earlier version of this page were removed in that check: duplicates, and bindings the documentation does not list or lists differently.

Found a wrong or missing key? Tell us and it gets checked against the source. How we verify describes the process and its limits.