| means “or”, I use it to group similar instructions
C means Ctrl keyboard button
M means Alt (A.K.A. Meta) keyboard button
- means that you need to push both keys, the next one and the previous one


Very often Meta characters are used for operations related to the units defined by language (words, sentences, paragraphs), while Control characters operate on basic units that are independent of what you are editing (characters, lines, etc).

Commands that start with C-x have to do with windows, buffers, files or related things.

You can autocomplete with <TAB> or <SPC> on the minibuffer.

Cursor movement

C|M-v move one screen forward|backward
C-l reposition screen based on cursor position
C-p|n previous or next line
C|M-f|b move cursor one character|word forward|backward
C|M-a|e move over line|sentence to the beggining|end
M-<|> move to the beggining|end of buffer


C|M-d delete/kill character|word after cursor
M|-<DEL> delete word|character before cursor
C|M-k kill from cursor to end of line|sentence
C-<SPC> start selection (mark) then move cursor and type C-w to kill region
C-y yank text, type M-y afterwards to replace that yank for a previous one


C-x s save all changed files interactively
C-x C-c end emacs session
C-z suspend emacs, resume with the fg command or %emacs


C-x C-f find a file
C-x C-s save file
C-x C-b list buffers
C-x b switch buffer


C-x 1 expand window with the cursor (delete all other windows)
C-x 2|3 split window horizontally|vertically
C-x 4 C-f open file in new horizontal window
C-x 5 2|0 create|delete frame
C-M-v scroll secondary window
C-x o move cursor to other window

A window is a buffer which is shown next to other buffer on the same screen. A frame is a windows container.


C-h ? help about help
C-h c|k <keys> describe key combination briefly|in-detail
C-h m describe currently enabled modes
C-h f describe a function
C-h v describe a variable
C-h a apropos
C-h i info files (manuals)


C-/|_ undo, also C-x u
C-s|r forward|backward search
C-u<n>|M<n> <next-command> numeric argument (n), usually repeats next command
C-g stop a command in the middle of its execution
<ESC> <ESC> <ESC> all purpose get out command, used to eliminate extra windows and to leave minifuffer.
M-x execute named extended command (A.K.A. functions). For instance replace-string, recover-this-file, text-mode (major mode) or auto-fill-mode (minor mode). Modes are toggled each time you execute them.
C-x f set fill column length
M-q fill paragraph


Love your freedom <3

Take notes on your work and share to the world :D Everybody can!

Released under CC0 terms

Felix Freeman < sir arroba hacktivista punto com > 2019