Emacs Cheat Sheet
Key Notation
C- = Ctrl
M- = Alt (or Esc)
C-x C-s = Ctrl+x Ctrl+s
π SURVIVAL
| Keys |
Action |
C-g |
CANCEL ANYTHING |
C-x C-s |
Save |
C-x C-f |
Open file |
C-x C-c |
Quit Emacs |
C-/ |
Undo |
π Files & Buffers
| Keys |
Action |
C-x C-f |
Open file |
C-x C-s |
Save |
C-x C-w |
Save as |
C-x b |
Switch buffer |
C-x k |
Close buffer |
C-x C-b |
List buffers |
π§ Navigation
πΉοΈ Vim-style Navigation (Hydra)
Activate with C-c SPC, then tap keys freely. Press q or any unmapped key to exit.
| Keys |
Vim Equiv |
Action |
C-c SPC |
β |
Enter Hydra nav mode |
j |
j |
Line down |
k |
k |
Line up |
l |
l |
Char right |
; |
h |
Char left |
w |
w |
Word forward |
b |
b |
Word backward |
0 or ^ |
0 / ^ |
Line start |
$ |
$ |
Line end |
g |
gg |
Buffer start |
G |
G |
Buffer end |
d |
C-d |
Page down |
u |
C-u |
Page up |
: |
:123 |
Go to line number |
q |
Esc |
Exit Hydra |
βοΈ Editing
| Keys |
Action |
C-Space |
Start selection |
C-w |
Cut |
M-w |
Copy |
C-y |
Paste/Yank |
C-k |
Kill to end of line |
C-x h |
Select all |
M-d |
Delete word |
C-c d |
Duplicate line |
C-c k |
Kill whole line |
π Search
| Keys |
Action |
C-s |
Search forward |
C-r |
Search backward |
M-% |
Search & replace |
C-M-% |
Regex replace |
πͺ Windows
| Keys |
Action |
C-x 2 |
Split horizontal |
C-x 3 |
Split vertical |
C-x 1 |
Close others |
C-x 0 |
Close this |
C-x o |
Other window |
Shift+arrows |
Move between |
π Project
| Keys |
Action |
C-c p p |
Switch project |
C-c p f |
Find file |
C-c p s g |
Grep project |
C-c t |
File tree |
C-c m |
Toggle minimap |
π Git (Magit)
| Keys |
Action |
C-x g |
Open Magit |
s / u |
Stage / Unstage |
c c |
Commit |
P p |
Push |
F p |
Pull |
b b |
Switch branch |
l l |
Log |
q |
Quit |
| Keys |
Action |
C-c g t |
Time machine |
C-c g b |
Toggle blame |
π§ LSP (All Languages)
| Keys |
Action |
M-. |
Go to definition |
M-, |
Go back |
M-? |
Find references |
C-h . |
Documentation |
π¦ Rust
| Keys |
Action |
C-c r |
cargo run |
C-c b |
cargo build |
C-c c |
cargo check |
C-c t |
cargo test |
C-c f |
cargo fmt |
C-c l |
cargo clippy |
π Python
| Keys |
Action |
C-c r |
Run file |
C-c d |
Debug file |
π Bash
| Keys |
Action |
C-c r |
Run script |
C-c c |
Shellcheck |
π³ DevOps
| Keys |
Action |
C-c a |
Ansible |
C-c d |
Docker |
C-c k |
Kubernetes |
π Markdown
| Keys |
Action |
C-c C-s b |
Bold |
C-c C-s i |
Italic |
C-c C-s c |
Code |
C-c C-l |
Link |
C-c C-n/p |
Next/prev heading |
C-c C-d |
Toggle checkbox |
Tab |
Fold/unfold |
C-c C-c l |
Preview |
β Help
| Keys |
Action |
C-h k |
Key help |
C-h f |
Function help |
C-h m |
Mode help |
M-x |
Run command |
π οΈ Troubleshooting
# Config not loading?
mv ~/.emacs ~/.emacs.backup
# Refresh packages
M-x package-refresh-contents
# Reload config
M-x eval-buffer
# Restart LSP
M-x eglot-shutdown
M-x eglot
# Install icons
M-x all-the-icons-install-fonts
M-x nerd-icons-install-fonts
Quick Reference Box
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SURVIVAL β EDIT β WINDOWS β GIT β
β C-g Cancel β C-w Cut β C-x 2 Horiz β C-x g Magit β
β C-x C-s Save β M-w Copy β C-x 3 Vert β s Stage β
β C-x C-f Open β C-y Paste β C-x 1 Close β c c Commit β
β C-x C-c Quit β C-/ Undo β C-x o Other β P p Push β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β LSP β RUST β SEARCH β NAV β
β M-. Def β C-c r Run β C-s Find β C-p Up β
β M-, Back β C-c b Build β C-r Back β C-n Down β
β M-? Refs β C-c t Test β M-% Replace β M-g g Line β
β β C-c f Format β β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
See more cheat-sheet here