| C-g | Cancel / dismiss popup |
| C-x C-c | Quit Emacs |
| C-x C-f | Find (open) file |
| C-x C-s | Save buffer |
| C-x s | Save all buffers |
| M-x | Run command by name |
| C-h k | Describe key |
| C-h f / C-h v | Describe function / variable |
| C-h m | Describe current modes |
| which-key | Waits 0.5s, then shows next keys |
| F1 | Open shell |
| F12 | todo-show |
| C-f / C-b | Char forward / back |
| M-f / M-b | Word forward / back |
| C-n / C-p | Next / previous line |
| C-a / C-e | Start / end of line |
| M-m | Back to first non-blank char |
| M-a / M-e | Start / end of sentence |
| M-< / M-> | Start / end of buffer |
| C-v / M-v | Page down / up |
| PgDn / PgUp | Scroll half page (custom) |
| M-g g | Go to line (consult) |
| C-u C-SPC | Jump back through marks |
| M-g m | Jump to mark (consult) |
| M-j | Jump to char in current line |
| M-J | Jump by timed char sequence |
| M-g l | Jump to line |
| M-g w | Jump to word |
| M-g c | Jump to char |
| C-SPC | Set mark / start selection |
| C-x h | Select whole buffer |
| C-w / M-w | Cut / copy region |
| C-y | Yank (paste) |
| M-y | Yank history (consult-yank-pop) |
| C-k | Kill whole line (configured) |
| M-d / M-DEL | Kill word forward / back |
| C-= | Expand region outward |
| M-; | Comment / uncomment |
| M-/ | Dabbrev expand word |
| M-q | Re-fill paragraph |
| C-/ | Undo |
| C-? | Redo (undo-tree) |
| C-x u | Visualize undo tree |
| C-> | Mark next like this |
| C-< | Mark previous like this |
| C-c C-< | Mark all like this |
| C-S-c C-S-c | Cursor on each selected line |
| C-S-mouse-1 | Add cursor at click |
| C-c ; | iedit — rename all occurrences |
| M-p / M-n | Previous / next history entry |
| M-n (empty prompt) | Insert symbol at point ("future history") |
| C-r (in minibuffer) | consult-history — searchable history list |
| C-x M-: | Re-run a previous complex command |
| C-c C-e | Embark export results to a buffer |
| C-. | Embark act on current candidate |
| wgrep | Edit grep buffer, C-c C-c to apply |
| savehist | History persists across restarts |
| C-x 2 / C-x 3 | Split below / right |
| C-x 1 | Only this window |
| C-x 0 | Delete this window |
| M-o | Other window |
| M-0 | Delete window, or kill buffer if last |
| C-c ← / C-c → | Winner undo / redo layout |
| C-x b | Switch buffer (consult) |
| C-RET | Switch buffer (consult) |
| C-x 4 b | Buffer in other window |
| C-TAB | Toggle last buffer |
| C-S-TAB | Previous buffer |
| C-x k | Kill buffer |
| C-x C-b | Ibuffer (grouped) |
| C-s / C-r | Isearch forward / backward |
| C-s C-s | Repeat last search string |
| C-s at "Failing" | Wrap around to top of buffer |
| In isearch: C-w | Grow search by word at point |
| In isearch: M-s w | Toggle word-boundary search |
| In isearch: M-s c | Toggle case sensitivity |
| In isearch: M-s l | Hand off to consult-line |
| In isearch: M-e | Edit the search string |
| M-% / C-M-% | Query replace / regexp |
| M-s l | consult-line — whole buffer, any direction |
| M-s L | consult-line-multi (all buffers) |
| M-s p | consult-fd — find file by name |
| M-s g | consult-grep |
| M-s r | consult-ripgrep (fast) |
| M-g i | consult-imenu — jump to symbol |
| < | Narrow key inside consult |
| TAB | Accept completion (Corfu) |
| RET | Newline — never completes (fixed) |
| C-n / C-p | Next / previous candidate |
| C-g | Dismiss popup |
| C-M-i | Trigger completion manually |
| M-d | Show candidate documentation |
| Vertico | Type space-separated terms (orderless) |
| C-. | Embark act on candidate |
| C-c C-e | Embark export to editable buffer |
| wgrep | Edit grep results, then C-c C-c |
| M-. | Go to definition |
| M-, | Go back |
| M-? | Find references |
| M-' | Find implementation |
| C-c l i | Find implementation |
| C-c l t | Find type definition |
| C-c l a | Code actions |
| C-c l r | Rename symbol |
| C-c l f | Format buffer |
| C-c l d | Doc buffer (eldoc) |
| C-c l o | Organize imports |
| s-mouse-1 | Click-jump to definition |
| M-n / M-p | Next / previous flymake error |
| F8 | Toggle buffer diagnostics |
| S-F8 | Project diagnostics |
| M-$ | Correct word at point (flyspell) |
| M-TAB | Flyspell correct previous word |
| M-x compile | Compile; jumps to first error |
| C-x p p | Switch project → opens Dired (default) |
| C-x p p then f | …find file instead |
| C-x p p then g | …grep instead |
| C-c p l | Lock / unlock project root (custom) |
| C-x p f | Find file in project |
| C-x p g | Grep in project |
| C-x p b | Project buffers (consult) |
| C-x p d | Dired in project root |
| C-x p D | Dired in a project subdirectory |
| C-x p k | Kill all project buffers |
| C-x p e | Eshell in project root |
| C-x p c | Compile in project root |
| C-c t t | Toggle Treemacs |
| C-c t f | Focus tree on current file |
| In tree: RET | Open node |
| In tree: cf / cd | Create file / directory |
| In tree: R / d | Rename / delete |
| C-x d | Open Dired (prompts for dir) |
| C-x C-j | Dired at current file (dired-jump) |
| RET / f | Open file or directory |
| o / C-o | Open in other window / display only |
| ^ | Go to parent directory |
| i | Insert subdirectory inline |
| g | Refresh listing |
| q | Quit window |
| m / u | Mark / unmark file |
| U | Unmark all |
| t | Toggle all marks |
| * % | Mark by regexp |
| * . | Mark by extension |
| s | Toggle sort: name / date |
| ( | Toggle detailed listing |
| + | Create new directory |
| C-x C-f | Create new file (just save a new name) |
| C | Copy file(s) — prompts for dest |
| R | Rename or move file(s) |
| d | Flag for deletion (marks with D) |
| x | Execute deletions of flagged files |
| D | Delete immediately (with confirm) |
| ~ | Flag all backup files (~) |
| S / H | Symlink / hardlink |
| M | Change file mode (chmod) |
| Z | Compress / uncompress |
| ! / & | Shell command on file, sync / async |
| C-x C-q | wdired — edit names as text |
| in wdired C-c C-c | Commit renames |
| in wdired C-c C-k | Abort renames |
| C-x g | Magit status |
| s / u | Stage / unstage at point |
| S / U | Stage all / unstage all |
| c c | Commit (C-c C-c to confirm) |
| c a | Amend commit |
| P p / F p | Push / pull |
| b b / b c | Checkout / create branch |
| l l | Log current branch |
| d d | Diff |
| r i | Interactive rebase |
| z z / z p | Stash / pop stash |
| TAB / q | Expand section / quit |
| diff-hl | Fringe marks show uncommitted changes |
| C-c a | Org agenda |
| C-c c | Org capture |
| C-c c b | Capture: Backlog item |
| C-c c i | Capture: Interrupt task |
| C-c c l | Capture: Learning |
| TAB / S-TAB | Cycle heading / global visibility |
| C-c C-t | Cycle TODO state |
| C-c C-s / C-c C-d | Schedule / deadline |
| C-c C-x C-i | Clock in |
| C-c C-x C-o | Clock out |
| M-↑ / M-↓ | Move subtree up / down |
| M-RET | New heading / list item |
| C-c C-r | Verb command map (HTTP requests) |
| F6 | Load register (consult) |
| C-F6 | Store to register |
| M-F6 | Browse registers |
| C-x ( / C-x ) | Start / end keyboard macro |
| C-x e | Run last macro (repeat with e) |
| C-x d | Dired |
| M-x world-clock | Stockholm time |
| M-x ediff-buffers | Side-by-side diff |
| Markdown M-↑/↓ | Move block up / down |
No shortcuts match that search.