C-x C-b Show all buffers
C-x C-r Show recent files
M-x scratch-buffer Create new scratch buffer
+//,~ Go to {root,home} directory in find-file
```
# Windows/frames
M-m Jump back to start of indentation
M-r Jump to window top/bottom/middle
M-g Tab Jump to column
-M-g f Jump to charactor on current line
+M-g f Jump to charactor, ;/, to go forward/back
M-g g Jump to visible line or any line
M-g j Jump to word by first character
M-g M-g Jump to visible line or any line
```
Tab Indent current line correctly
C-x Tab Indent region with left/right
-M-/ Auto-complete
+M-/ Expand at point
+M-Tab Auto-complete at point
M-; Comment line or region
M-i Change inner region
M-q Reformat paragraph
F3 , F4 Start recording macro, finish recording macro
C-u F3 Play last macro then append keys
F4 Play back macro
+C-x C-k b Bind macro to key (0-9, A-Z)
+C-x C-k C-e Edit last macro
+C-x C-k l Edit recent keys as macro
+C-x C-k r Apply macro to region lines
```
+# Registers
+```
+C-x r s <?> Copy region into register
+C-x r i <?> Insert text from register
+C-x r Space <?> Save point position to register
+C-x r j <?> Jump to point position at register
+```
+
+# Mouse secondary selection
+```
+Meta-Drag Set selection
+Meta-Right-Click Yank secondary
+```
+
+
# Mode switching
```
C-x C-j Open direx at current file
C-c M-k Compile (but not load) the current buffer's file
```
+
+# Javascript
+```
+C-c C-r Rename variable
+C-c C-c Find type
+C-c C-d Find docs
+```
+
+
# Shell
```
M-! Execute command