Most "keyboard shortcuts" lists are too long to actually memorize, so nothing sticks. Here's a shorter list, specifically the shortcuts with the best return on the effort of learning them.
Window and app management
| Action | macOS | Windows |
|---|---|---|
| Switch between apps | Cmd+Tab | Alt+Tab |
| Switch between windows of the same app | `Cmd+`` | Alt+Esc |
| Quick app launcher | Cmd+Space (Spotlight) | Win key (Start search) |
| Snap window to half screen | Drag to edge, or Rectangle/Magnet app | Win+Left/Win+Right |
The app-switcher shortcuts alone eliminate a huge amount of mouse-reaching over a normal working day — internalizing them is worth doing before anything else on this list.
Browser
| Action | Shortcut |
|---|---|
| New tab | Cmd/Ctrl+T |
| Reopen last closed tab | Cmd/Ctrl+Shift+T |
| Jump to a specific tab (1st-8th) | Cmd/Ctrl+1 through 8 |
| Focus the address bar | Cmd/Ctrl+L |
| Find on page | Cmd/Ctrl+F |
Reopen last closed tab is the one people don't know exists and wish they'd learned years earlier — closed the wrong tab? One shortcut, not a scramble through browser history.
Text editing (works almost everywhere, not just code editors)
| Action | macOS | Windows/Linux |
|---|---|---|
| Jump to start/end of line | Cmd+Left/Right | Home/End |
| Jump word by word | Option+Left/Right | Ctrl+Left/Right |
| Delete word backward | Option+Delete | Ctrl+Backspace |
| Select to start/end of line | Cmd+Shift+Left/Right | Shift+Home/End |
These work in nearly every text field on the system — browser address bars, chat apps, code editors — because they're OS-level text editing conventions, not app-specific features. Learn them once, use them everywhere.
Code editor (VS Code, but similar across most editors)
| Action | Shortcut |
|---|---|
| Command palette | Cmd/Ctrl+Shift+P |
| Quick file open | Cmd/Ctrl+P |
| Multi-cursor: add cursor at next match | Cmd/Ctrl+D |
| Go to line | Cmd/Ctrl+G |
| Toggle terminal | Cmd/Ctrl+` |
Multi-cursor (Cmd/Ctrl+D) is the one with the highest "wish I'd learned this sooner" factor — select a word, hit it repeatedly to select the next occurrences, and edit all of them simultaneously instead of a find-and-replace for simple renames.
Terminal / shell
| Action | Shortcut |
|---|---|
| Search command history | Ctrl+R, then type to fuzzy-match a past command |
| Jump to start/end of line | Ctrl+A / Ctrl+E |
| Clear from cursor to start/end of line | Ctrl+U / Ctrl+K |
| Cancel current command | Ctrl+C |
| Clear the screen | Ctrl+L |
These are readline key bindings, not shell-specific — they work the same in bash, zsh, and most language REPLs (Python's, Node's) by default. Ctrl+R in particular replaces a huge amount of re-typing or scrolling back through terminal output to find a command you ran ten minutes ago.
Shortcuts are one piece of a bigger picture — see how to structure your developer day for the broader habits (protected focus blocks, batched communication) that these small efficiency wins actually compound with.
Git and version control
| Action | Shortcut / habit |
|---|---|
| Stage a hunk interactively | git add -p — review and stage changes piece by piece, not the whole file at once |
| Amend the last commit | git commit --amend --no-edit |
| Jump to the previous branch | git checkout - — mirrors cd - for directories |
| Search commit history by content | git log -S"searchTerm" — finds commits that added or removed a specific string, not just ones mentioning it in the message |
git checkout - is the one worth calling out specifically — the same - shorthand that works for cd in most shells also works for git branches, letting you toggle back and forth between two branches without typing either name out.
Window/tab management inside a terminal multiplexer
For anyone running tmux or a similar multiplexer alongside the OS-level shortcuts above, a small set of pane/window bindings covers most day-to-day navigation:
| Action | tmux default |
|---|---|
| Split pane vertically | Ctrl+B then % |
| Split pane horizontally | Ctrl+B then " |
| Switch pane | Ctrl+B then arrow key |
| Create a new window | Ctrl+B then C |
| Detach session (keeps it running) | Ctrl+B then D |
Detaching (rather than closing) is the feature that makes a multiplexer worth learning in the first place — a long-running process in a detached tmux session survives closing the terminal window or even an SSH disconnect, and reattaching (tmux attach) picks up exactly where it left off.
Operating system search, beyond app launching
Spotlight (macOS) and Windows Search aren't just app launchers — both handle unit conversion, quick math, and file search directly from the same shortcut used to launch an app, which eliminates a surprising number of "open a calculator app" or "open Finder and search" detours:
| Action | macOS (Spotlight) | Windows |
|---|---|---|
| Quick calculation | Cmd+Space, type 240*1.08 | Win, type 240*1.08 |
| Unit conversion | Cmd+Space, type 10 km in miles | Win, type 10 km to miles |
| Find a file by name | Cmd+Space, type filename | Win, type filename |
Treating the app-launcher shortcut as a general-purpose "ask the OS" shortcut, not just an app switcher, is the mental shift that makes it worth reaching for far more often than most people do.
The actual learning strategy
Trying to memorize twenty shortcuts at once doesn't work — pick two or three from this list you don't already use, and deliberately force yourself to use them (even when the mouse feels faster) for a week. Muscle memory forms from repetition under real use, not from reading a list once. Once those two are automatic, add two more.
Related reading
- How to Structure Your Developer Day for Deep Work — shares tags: productivity (same category).
- Big O Notation Without the Math Panic — shares tags: productivity.
- Clean Code Principles That Actually Hold Up in Practice — shares tags: productivity.
- Understanding Cloud Cost Optimization Basics — shares tags: productivity.
- Git Hooks Explained: Automate Your Workflow — shares tags: productivity.