mac keyboard shortcuts developers

On this page

tldr: Mac keyboard shortcuts look like sixty unrelated key combinations. Most of them belong to one system that macOS borrowed from Emacs decades ago, which is why Control-A jumps to the start of a line in your editor, your terminal, Slack, and the Safari address bar. Learn that system, learn the dozen shortcuts that actually recover time, then build your own for whatever is left. All key combinations here were checked against Apple's documentation on 28 July 2026, on macOS Tahoe 26.6.

Why your Mac already knows Emacs

Keycap banner showing Control A, the Emacs derived binding macOS uses to jump to the start of a line

Open Apple's official shortcut reference and scroll to the text-editing section. Among the ordinary entries sit these:

Apple lists all of them and never says where they came from. They are Emacs bindings, inherited through NeXTSTEP into the text system that every native macOS app draws its text fields from. The letters are mnemonic once you know: A for the start of a line, E for end, B back, F forward, P previous, N next, T transpose.

This matters more than any individual shortcut, because those keys are not a feature of your editor. They belong to the operating system's text layer, so they work in a Slack message, a Mail compose window, the Safari address bar, a Finder rename field, and a commit message box. One rule, learned once, applies in a hundred places.

Then there is the part that trips people up, and no shortcut list ever mentions it.

Where the rule breaks

The same letters do not mean the same things everywhere. Your terminal uses readline, which shares ancestry with the macOS text system but diverged, and Electron editors sit on top of a browser with its own opinions. The overlap is large enough to feel universal and incomplete enough to bite.

Keys Native macOS text field Terminal (zsh, readline) VS Code
Control-A Start of line Start of line Start of line
Control-E End of line End of line End of line
Control-B / Control-F Back / forward one character Back / forward one character Usually rebound to sidebar and find
Control-K Delete to end of line Kill to end of line, into the kill ring Delete to end of line
Control-D Forward delete Sends EOF. On an empty prompt this closes the shell Select next occurrence
Control-W Not bound Delete the previous word Closes the window
Control-U Not bound Kill the whole line Varies by keymap
Control-T Transpose characters Transpose characters Varies by keymap

Two rows in that table are where people lose work. Control-D is a harmless forward delete in a text field and an instruction to end the session at an empty shell prompt. Control-W deletes a word in your terminal and closes the window in VS Code, which is a genuinely bad surprise mid-edit.

Note also that Apple's public reference documents Control-A through Control-T but omits Control-K and Control-Y, the kill and yank pair, even though the text system supports them. The list is not the system. That gap is precisely why learning the underlying model beats memorising a page.

The everyday set

Keycap banner showing Command C, the everyday Mac keyboard shortcut for copy

The shortcuts almost everyone already half-knows, worth stating once so the rest of this guide has a floor.

Keys What it does
Command-X / Command-C / Command-V Cut, copy, paste, including files in the Finder
Command-Z / Shift-Command-Z Undo, redo
Command-A Select all
Command-S Save
Command-F Find
Command-G / Shift-Command-G Find again, forwards or backwards
Command-P Print
Command-W / Option-Command-W Close window, close all windows of the app
Command-Q Quit the app
Command-Comma Open settings for the front app
Command-Y Quick Look the selected file

Command-G is the one developers most often miss. After a Command-F, it walks the matches without your hands returning to the mouse, and it works in browsers, editors, and Preview alike.

Option-Command-V deserves a mention of its own: copy a file with Command-C, then Option-Command-V moves it instead of copying, which is the Finder's equivalent of cut and paste.

Finder and system navigation

Keycap banner showing Shift Command G, the Finder Go to Folder keyboard shortcut on Mac

Keys What it does
Shift-Command-G Go to Folder, which accepts a typed path
Shift-Command-N New folder
Control-Command-N New folder containing the selected items
Command-Up Arrow Open the enclosing folder
Command-Down Arrow Open the selected item
Command-Left Bracket / Command-Right Bracket Previous and next folder
Command-I Get Info
Command-Delete Move to Trash
Shift-Command-Delete Empty the Trash
Command-1 through Command-4 Icon, list, column, gallery view
Shift-Command-H / Shift-Command-D / Option-Command-L Home, Desktop, Downloads
Shift-Command-U Utilities, which is where Terminal lives

Shift-Command-G is the one that turns the Finder into something usable from the keyboard. It takes a path, it expands ~, and it will happily open a directory you would otherwise click through five times.

Windows, spaces, and switching

Keycap banner showing Command and backtick, the Mac shortcut for cycling between windows of one app

Keys What it does
Command-Tab Switch apps
Command-Backtick Cycle windows within the current app
Control-Up Arrow Mission Control
Control-Down Arrow Show all windows of the front app
Command-Mission Control or Fn-H Show the desktop
Command-M / Option-Command-M Minimise window, minimise all of the app's windows
Command-H / Option-Command-H Hide app, hide every other app
Control-Command-F Full screen, where the app supports it
Option-Command-D Show or hide the Dock

The backtick one is the highest-value entry in this table and the least known. Command-Tab moves between apps, but if you have four terminal windows or three editor windows open, it only ever brings you to the most recent. Command-Backtick walks the windows inside the app you are already in. Anyone running several things in parallel uses it constantly.

Command-H is worth more than Command-M. Minimising sends a window to the Dock where you have to fish it back out; hiding leaves it in the app switcher where Command-Tab restores it.

Screenshots, capture, and hardware keys

Keycap banner showing Shift Command 5, the macOS screenshot and screen recording panel shortcut

Keys What it does
Shift-Command-5 The capture panel: region, window, full screen, and screen recording
Shift-Command-3 Whole screen, straight to a file
Shift-Command-4 Region select, then space bar to switch to window capture
Add Control to any of the above Send to the clipboard instead of a file
Control-Command-Space or Fn-E Character Viewer, for emoji and symbols
Fn-Q New Quick Note
Press Fn twice Start dictation
Option-Shift-Volume Up/Down Adjust volume in quarter steps
Option-Brightness Up Jump straight to Displays settings
Option-Volume Up Jump straight to Sound settings

The Option plus hardware key pattern generalises: holding Option while pressing a media or brightness key opens the settings pane that controls it, which is faster than any menu path.

One more that belongs here because nothing else covers it: hold Option while a menu is open and hidden commands appear in place of the ordinary ones. Close becomes Close All, Save becomes Save As in some apps, and the Wi-Fi menu turns into a diagnostic readout. There is a second menu hiding under most of the first one.

Text editing that works in every text field

Keycap banner showing Option and right arrow, the Mac shortcut to move the cursor one word forward

This is the section from the top of the article, applied. These are the keys worth putting in muscle memory first, because the return compounds across every app you type in.

Keys What it does
Option-Left Arrow / Option-Right Arrow Move by word
Command-Left Arrow / Command-Right Arrow Start and end of line
Option-Delete Delete the word to the left
Control-K Delete from the cursor to the end of the line
Control-A / Control-E Start and end of line, the Emacs way
Fn-Delete or Control-D Forward delete
Control-T Transpose two characters, which fixes a typo without a selection
Add Shift to any movement Select instead of move

That last row is the multiplier. Every movement shortcut becomes a selection shortcut with Shift, so Shift-Option-Right Arrow selects the next word and Shift-Command-Left Arrow selects back to the start of the line. Learning eight movements gives you sixteen commands.

Sleep, lock, log out, and force quit

Keycap banner showing Control Command Q, the Mac keyboard shortcut to lock the screen

Keys What it does
Control-Command-Q Lock the screen
Shift-Command-Q Log out, with confirmation
Option-Shift-Command-Q Log out immediately, no confirmation
Option-Command-Esc Force Quit window
Option-Command-Power Put the Mac to sleep
Control-Command-Power Force restart, without prompting to save

Hold Option while choosing Log Out, Shut Down, or Restart from the Apple menu and the confirmation dialog is skipped. The Control-Command-Power entry is worth knowing and worth respecting, since it restarts without offering to save anything.

Accessibility shortcuts

Keycap banner showing Option Command F5, which opens the macOS Accessibility Shortcuts panel

Apple documents these thoroughly and every other guide on the subject ignores them. They are useful well beyond their name, and one of them is a frequent cause of shortcuts appearing to break, which the next section returns to.

Keys What it does
Option-Command-F5, or triple-press Touch ID Accessibility Shortcuts panel, which is where VoiceOver and Zoom are toggled
Control-Option-Command-8 Invert colours
Control-Option-Command-Comma / Period Decrease or increase contrast
Control-F3 Move focus to the Dock
Control-F4 Move focus to the active or next window
Control-F5 Move focus to the window toolbar
Control-F8 Move focus to the status menus in the menu bar
Control-F7 Change what Tab moves between: all controls, or only text boxes and lists
Control-Tab Move to the next control when a text field is selected

Control-F7 is the sleeper. It changes whether Tab cycles through every control in a window or only text fields, which is the difference between a dialog you can drive entirely from the keyboard and one where Tab seems to skip the buttons.

Driving the terminal

Keycap banner showing Control R, the terminal keyboard shortcut for reverse history search

The terminal is where most developer time goes and where every background agent session ends up, and it is absent from every general Mac shortcut guide because it is not an operating system feature. It runs on readline, so the Emacs lineage from the top of this article applies directly.

Keys What it does
Control-R Reverse search through command history. Press again to walk further back
Control-A / Control-E Start and end of the line
Control-U Delete the whole line
Control-W Delete the previous word
Control-K Delete to the end of the line
Control-Y Paste back whatever you last killed
Control-L Clear the screen without losing scrollback
Control-C Interrupt the running command
Control-D Send EOF. On an empty prompt, this exits the shell
Control-Z, then fg Suspend a process, then resume it in the foreground

Control-R is the one that changes how you work. Most people retype commands or press the up arrow repeatedly; reverse search finds a command from three days ago by typing four characters of it.

Control-Z followed by fg is the other. A long-running process can be pushed into the background, leaving the prompt free, and pulled back when you want it. It beats opening a new tab for a task you are going to return to in ninety seconds.

Reading a diff you did not write

Keycap banner showing a plus minus symbol, for navigating changes in a diff from the keyboard

Something has changed about which keystrokes are expensive. When you write every character yourself, the valuable shortcuts are the ones that produce text faster: multi-cursor selection, delete to end of line, move by word. When a coding agent produces the first draft, the work moves to reading, and the shortcuts that matter move with it.

These are editor-level rather than system-level, so the exact bindings depend on your setup, but the categories are what to look for:

None of that is exotic. It is just a different set from the one every shortcut listicle teaches, because the listicles were written for a job where a human typed the code. If you want the broader picture of how that job changed, our comparison of Codex and Claude Code covers where the time actually goes now.

Making your own shortcuts

Keycap banner showing a plus symbol, for creating custom keyboard shortcuts on Mac

Any menu command in any app can be given a keyboard shortcut, and this is underused.

Go to Apple menu, then System Settings, then Keyboard, then Keyboard Shortcuts, then App Shortcuts in the sidebar, then the Add button.

The rule that catches everyone: the menu title must be typed exactly as it appears in the app. That includes punctuation. An ellipsis is three periods with no spaces. A submenu arrow is typed as ->. So a nested command is entered as:

Format->Font->Ligatures->Use Default

Get a character wrong and the shortcut silently does nothing, with no error to tell you why.

Beyond that, consider remapping rather than memorising. Once you are past forty or so shortcuts, adding more chords has diminishing returns, and the better move is changing what the keys under your fingers do. Karabiner-Elements remaps at the system level, and a common setup turns Caps Lock into a fifth modifier, sometimes called a hyper key, which gives you an entire layer that no app has claimed. That is a more durable answer than learning another twenty combinations.

When a shortcut stops working

Keycap banner showing an exclamation mark, for troubleshooting Mac keyboard shortcuts that stop working

In the order that resolves fastest:

  1. An app binding is overriding the system one. App shortcuts win over system shortcuts. Check the app's own settings first.
  2. Input Sources is stealing it.Control-Space and Control-Option-Space switch keyboard input sources by default, which is why they so often fail to reach an app. System Settings, Keyboard, Keyboard Shortcuts, Input Sources.
  3. Two of your custom shortcuts collide. macOS does not warn you when you assign the same combination twice. The later one usually loses.
  4. The menu title does not match. For custom App Shortcuts, this is the single most common cause. Re-read the exact string, including the ellipsis.
  5. Control-F7 changed the focus mode, so Tab is moving between different things than you expect and buttons appear to be skipped.
  6. Accessibility permissions are not granted. Any tool that intercepts keys, including Karabiner and most window managers, needs Privacy and Security, Accessibility permission, and quietly does nothing without it.
  7. A remapper is intercepting first. If you run one, it sees the key before the app does. Disable it to test.

FAQ

Keycap banner showing a question mark, for frequently asked questions about Mac keyboard shortcuts

How do I see every shortcut an app supports?

Open the app's menus and read the right-hand column, which is the only complete and current list, because it comes from the app itself. For system-wide bindings, System Settings, Keyboard, Keyboard Shortcuts shows what is assigned and lets you change it. Help menu search is a useful fallback: type a command name and macOS shows you where it lives in the menus.

Which shortcuts should I learn first?

The movement set from the text editing section, because it pays off in every app rather than one. After that, Command-Backtick, Control-R in the terminal, and Shift-Command-G in the Finder. Those four change how a day feels more than any other four on this page.

Do Mac shortcuts work on an external Windows keyboard?

Yes, with the modifiers remapped. macOS maps the Windows key to Command and Alt to Option, which puts them in the opposite physical order from an Apple keyboard. System Settings, Keyboard, Keyboard Shortcuts, Modifier Keys lets you swap them per keyboard, so you can fix it for the external board without affecting the built-in one.

Can I sync custom shortcuts to another Mac?

Not through iCloud. App Shortcuts live in each app's preferences domain on the local machine, so moving them means copying preferences or, more practically, keeping your remapping in a tool with an exportable config. This is a further argument for Karabiner over dozens of hand-made App Shortcuts: one file, version controlled, moves with you.

Why does a shortcut work in one app but not another?

Because most shortcuts are not global. Menu-bound commands only exist while the app that defines them is in front, and the Emacs-derived text bindings only apply inside a native text field. An Electron app draws its own text fields and often rebinds those keys, which is why Control-W deletes a word in Terminal and closes the window in VS Code.