Emacs & VI Commands
C-b

Move forward one character

h
C-f

Move forward one character

l or <space>
C-p

Move to previous line

j
C-n

Move to next line

k
C-a

Move to start of line

^ or 0
C-e

Move to end of line

$
M-x goto-char

Move n columns from BOL

[0-9] .. [0-9]<space>
M-b

Move back one word

b
M-f

Move forward one word

w
M-x goto-line

Goto indicated line number

:[0-9] .. [0-9]
C-v

Move to next page

C-f
M-v

Move to previous page

C-b
M-<

Move to start of file

:1 or 1G
M->

Move to end of file

G
C-s

Search forward

/
C-r

Search backward

?
C-w

Delete the indicated region

:[0-9]..[0-9], [0-9]..[0-9]d
M-% OLD <CR> NEW <CR>

Query search-replace

:g/OLD/s//NEW/gc
M-x query-replace-regexp

Query search-replace regular expressions

:g/oldRE/s//newRE/gc
M-x OLD <CR> NEW <CR>

Search - Replace

:g/OLD/s//NEW/g
M-x replace-string

Search - Replace

:g/OLD/s//NEW/g
M-x replace-regexp

Search - Replace

:1,$s/^../../
M-u, M-l, M-c

Convert the word to [up-low]er case

~
C-g

Cancel operation (end of input)

ESC or C-[
C-d

Delete character

x
M-d

Delete to the end of the word

[cd]w
C-k

Kill (delete) to end of line

d$ or D
C-k C-k

Delete line

dd
C-y

Yank (paste) killed text

yy
C-x r s c

Copy region into 'c' register

"c[0-9]..[0-9]dd <CR> u
C-x r i c

Paste contents of 'c' register at point 

"cp
C-x  C-f

Read file

:e
C-x u

Undo most recent change

:u
M-x eshell

Shell out to another process 

:!sh
M-! cmdline <CR>

Execute command line in a sub-process

:!cmd
C-x  C-s

Save file

:w
M-x hexl-mode

Display text and embedded binary data

:1,$l
M-x revert-buffer

Dump changes and restore previous data

:q! and then $ vi fn
M-~

Forget changes made

:q!, :n!, :r!
M-x set-visited-file-name

Save current data in buffer for fn

:w fn
Alt-a, Alt-e

Goto Begin/End of Func

%
C-x C-w

Save as

:w fn
Emacs Commands Only

M-x set-variable <CR>varname <CR>value <CR>

Set variable name varname to value

C-x r <space> [a-z]

Save point in register [a-z]

M-x visit-tags-table

Return point to place in register [a-z]

M-. <CR>

Find the first instance of tagname

C-u M-.

Find next instance of tagname

C-u - M-.

Go back to previous instance of tagname

C-M-. pattern <CR>

Find next instance which matches pattern

C-u C-M-.

Find previous instance which matches pattern

C-x 4 . tagname

Find the next tagname and display in other window

C-x 5 . tagname

Find the next tagname and display in new frame

M-x kill-compile

Interupt an in progress compilation

M-| cmdline <CR>

Execute cmdline and pass contents of region as stdin

C-h v varname

Describe variable varname

M-x shell

Run sub-shell interactively with stdin and stdout through Emacs buffer

C-g

Cancel the Minibuffer

C-x n n

Narrow selected editing area to selected region

C-x n w

Widen from selected region back to full text

C-x n p

Narrow down to current page

C-x s

Save all buffers (files)

DEL

Delete character to left of point

M-DEL

Delete word to left of point

C-x DEL

Delete from point to begining of line (left)

M-x overwrite-mode

Toggle insert/overwrite mode

C-x k bufname <CR>

Kill buffer bufname (kill-buffer)

M-x kill-some-buffers

Offer to kill each buffer, one by one

C-x 2

Make 2 windows horizontally

C-M-v

Scroll the next window (scroll-other-window)

C-x 0

Delete the selected window (delete-window)

C-x 1

Delete all windows in the selected frame except selected window (delete-other-windows)

C-x ^

Make selected window taller (enlarge-window)

C-x }

Make selected window wider (enlarge-window-horizontally)

C-x o

Select another window (other-window)

Emacs Commands Only
C-M-v

Scroll the next window (scroll-other-window)

C-x 4 b bufname <CR>

Select buffer bufname in another window

C-x 4 C-o bufname <CR>

Display buffer bufname in another window; don't select that buffer or window

C-x 4 f filename <CR>

Visit filename and select its buffer other window

C-x 4 d dirname <CR>

Select Dired buffer for dirname in other window

C-<space>

Sets the region mark begining to the current pt

M-x what-page

Display current page number

M-x print-buffer

lpr current buffer with page header="fn pg#"

C-x C-[l|u]

Convert region to [up-low]er case

M-a

Function Begin

M-e

Function End

M-h

Put region around current or following func

M-x tabify

Auto adjust indentation of source code

M-x untabify

Repeal auto adjust indentation of source code

M-x v i

Register current file for version control

C-c C-c

To complete comment entry

C-x C-q

Command to 'check' out/in registered file

C-x v u

Undo: Revert buffer/file to most recently checked-in version

C-x v c

Remove most recently checked-in delta from file

C-x v a

Add an entry to the change log in the current dir

C-u C-x C-q version <CR>

Select file version as the current working file

M-x

Auto adjust indentation of source code

C-x v ~ version <CR>

Visit file version in another buffer

C-x v =

Compare the version in the current buffer with the most recent check-in file version

C-u C-x v = file <CR> oldVer <CR> newVer <CR>

Compare file's old and new versions

M-x gnus

Read netnews

C-u C-L

Force a rehighlighting of the entire buffer

C-x C-b

Display list of buffers in use

M-x shell-command <CR> cmd <CR>

Display list of buffers in use

C-x ESC ESC

Re-execute a recent mini buffer command

M-x repeat-complex-command

Same as 'C-x ESC ESC '

 
                 $ emacs --no-init-file --no-site-file -batch -f batch-byte-compile *.el