-# References
-* [Reference Card](https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf)
-* [Key Binding Conventions](https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html)
+# dotemacs
-# General commands
+Clone the dotemacs repository:
```
-C-x C-c Quit Emacs
-C-u C-x C-c Save and quit
-C-g Cancel command
-C-/ Undo
-C-g C-/ Undo undo
-C-x z Repeat last command
-M-x Execute command
-M-: Evaluate expression as elisp
-M-x eval-buffer Load current buffer as elisp
-C-x C-0 Reset font to standard
-C-x C-+/= Increase font size
-C-x C-- Decrease font size
+git clone https://delx.net.au/git/dotemacs ~/.emacs.d
```
-# Help
-```
-C-h C-h Help
-C-h k Help about key binding
-C-h v Describe variable
-C-h f Describe function
-C-h m Documentation on active modes
-<prefix> C-h Show bindings starting with <prefix>
-C-c C-b Back to previous help topic (while in help-mode)
-q Quit window and bury buffer
-```
-
-# Search
-```
-C-s Search forward (ivy/swiper mode)
-C-r Resume ivy search
-C-7 Start a cursor for each result (while searching)
-C-' Switch to avy jump mode
-M-q Replace searched item (while searching)
-M-p Search for previous item (while searching)
-M-n Search for symbol at point (while searching)
-C-c C-o Dump all results into a buffer (ivy-occur)
-```
-
-# Files/buffers
-```
-C-x C-s Save current buffer
-C-x s Save some buffers
-C-x C-w Write buffer to file
-C-x C-f Find file
-C-x C-v Find file and kill current buffer
-C-x f Find files in git repository
-C-x g Grep in git repository
-M-x find-file-at-point Find (open) filename at point
-M-x browse-url-at-point Browse URL at point
-C-x k Kill buffer
-C-x c Clean up all buffers that are not visible
-C-x b Select named buffer
-C-x C-b Show all buffers
-C-x C-r Show recent files
-M-x scratch-buffer Create new scratch buffer
-```
-
-# Windows/frames
-```
-C-x o Switch to other window
-C-x 0 Delete window
-C-x 1 Switch to single window
-C-x 2 Split vertically
-C-x 3 Split horizontally
-C-x - Shrink window
-C-x + Make windows the same height
-C-x ^ Make window taller
-C-Up / C-Down / C-Left / C-Right Switch windows
-C-l Recenter display (center, top then bottom)
-C-M-l Reposition window to contain useful text (eg entire defun)
-M-x make-frame New frame (X11 window)
-```
-
-# Movement
-```
-M-m Jump back to start of indentation
-M-r Jump to window top/bottom/middle
-M-g Tab Jump to column
-M-g M-j Jump to charactor
-M-g M-l Jump to charactor on current line
-M-g M-w Jump to word by first character
-M-g M-g Jump to visible line or any line
-C-a Beginning of line
-C-e End of line
-C-p Back one line
-C-n Forward one line
-C-b Back one character
-C-n Forward one character
-M-b Back a word
-M-f Forward a word
-M-a Backward sentence
-M-e Forward sentence
-M-v Back page
-C-v Forward page
-M-{ Back one paragraph
-M-} Forward one paragraph
-M-< Top of file
-M-> End of file
-C-M-p Back to start of balanced expression
-C-M-n Forward to end of balanced expression
-C-M-b Back one s-expression / symbol
-C-M-f Forward one s-expression / symbol
-C-M-u Move up one level of parentheses
-```
-
-# Text formatting
-```
-M-/ Auto-complete
-M-; Comment line or region
-M-i Change inner region
-M-q Reformat paragraph
-M-l Lower case word
-M-u Upper case word
-M-c Capitalise word
-C-x C-l Lower case region
-C-x C-u Upper case region
-C-o Insert a new line above point
-M-o Insert a new line below point
-C-j Newline and maybe indent
-M-^ Join to previous line
-M-j New line with comment
-C-q Quoted insert
-C-M-\ Indent region
-C-c c Copy line
-C-c d Duplicate line
-M-x comment-box Wrap region in comment box
-```
-
-# Marking
-```
-C-Space Set mark (start selection)
-C-Space C-Space Set mark to point
-C-u C-space Return to mark
-C-x C-x Exchange point and mark
-C-M-h Highlight expression
-M-@ Set mark at end of next word
-C-= Expand region
-C-c l Insert extra cursor on all lines in region
-C-c m Ask to insert extra cursor at locations matching selected region
-M-= Display info about region
-```
-
-# Highlighting
-```
-M-s h u Unhighlight regexp
-M-s h . Highlight symbol at point
-M-s h p Highlight phrase
-M-s h r Highlight regexp
-M-s h l Highlight lines matching regexp
-```
-
-# Killing and deleting
-```
-C-M-k Kill s-expression / symbol
-C-w Kill from mark to point
-C-y Yank text (paste)
-M-y Scroll through kill ring (paste buffer)
-M-_ Select current line
-M-z <char> Kill until <char>
-C-k Kill to end of line
-M-0 C-k Kill to beginning of line
-C-c k Kill whole line
-C-c s Copy line
-C-d Delete next character
-M-d Delete next word
-M-Backspace Delete previous word
-M-Space Collpase to one space around point
-M-\ Delete spaces around point
-C-x C-o Collapse blank lines
-M-x delete-trailing-whitespace Delete trailing whitespace
-```
-
-# Transposing
-```
-C-t Transpose chars
-M-t Transpose words
-C-x C-t Transpose lines
-C-M-t Transpose s-expressions
-```
-
-# Rectangle
-```
-C-x Space Toggle mark rectangle mode
-C-x r t Replace rectangle with string
-```
-
-# Macros
-```
-F3 , F4 Start recording macro, finish recording macro
-C-u F3 Play last macro then append keys
-F4 Play back macro
-```
-
-# Mode switching
-```
-C-x C-j Open direx at current file
-C-c g s Magit status
-F8 Toggle flyspell-mode
-F9 Toggle whitespace mode
-F10 Toggle word wrap
-M-s o Search in buffer and display results in occur-mode
-M-x multi-occur Search in buffers and display results in occur-mode
-M-x eshell Run eshell
-M-x ielm Run Emacs Lisp REPL
-M-x linum-mode Display line numbers
-M-x restclient Open HTTP client
-M-x shell Run bash shell
-M-x slime Run Common Lisp REPL
-M-x smerge-ediff Resolve merge conflicts in multi-window mode
-M-x smerge-mode Resolve merge conflicts by hunks
-M-x term Run terminal
-M-x yas-reload-all Reload all snippets
-```
-
-# Occur
-```
-g Reload
-e Switch to edit mode
-C-c C-c Switch back to occur mode
-M-g M-p Previous occurence
-M-g M-n Next occurence
-```
-
-# Magit / Git gutter
-```
-C-c g d Popup diff
-C-c g p Previous hunk
-C-c g n Next hunk
-C-c g r Revert hunk
-C-c g s Magit status
-C-c g f Magit file specific commands
-C-c g g Magit dispatch popup
-p Previous section
-n Next section
-M-p Previous sibling section
-M-n Next sibling section
-^ Up section
-Tab Toggle visibility of section
-C-Tab Cycle visibility of section and its children
-q Kill window and bury buffer
-C-c C-c Perform action
-C-c C-k Cancel action
-```
-
-# Lisp
-```
-C-M-x Eval top-level form
-C-c C-z Switch to REPL
-C-c C-c Compile and load the top-level form at point
-C-c M-k Compile (but not load) the current buffer's file
-```
-
-# Shell
-```
-M-! Execute command
-M-& Execute command asynchronously
-M-| Execute with region
-C-u M-| Filter with region
-```
-
-# Smerge mode
-```
-C-c ^ p Go to previous hunk
-C-c ^ n Go to next hunk
-C-c ^ Return Keep current
-C-c ^ a Keep all
-C-c ^ m Keep mine
-C-c ^ o Keep other
-```
-
-# Flyspell
-```
-M-$ Correct word
-C-M-i Automatically correct word
-C-; Automatically correct last word
-<mouse-2> Popup word correction
-```
-# Flycheck
+Initialise the emacs package submodules
```
-C-c ! v Verify setup
-C-c ! n Next error
-C-c ! p Previous error
-C-c ! l List errors
-C-c ! x Disable checker
+cd ~/.emacs.d
+git submodule init
+git submodule update
```