GNU Emacs

Keyboard macros

Eappend to last keyboard macro

Ctrl + X then E

All hotkeys for GNU Emacs

Files
Read a file into Emacs

Ctrl + X then Ctrl + F

Files
Save a file back to disk

Ctrl + X then Ctrl + S

Files
Save all files

Ctrl + X then S

Files
Insert contents of another file into this buffer

Ctrl + X then I

Files
Replace this file with another file

Ctrl + X then Ctrl + V

Files
Write buffer to specified file

Ctrl + X then Ctrl + W

Files
Toggle read only status of buffer

Ctrl + X then Ctrl + Q

Leaving Emacs
Suspend or iconify Emacs

Ctrl + Z

Leaving Emacs
Exit Emacs completely

Ctrl + X then Ctrl + C

Multiple windows
Delete all other windows

Ctrl + X then 1

Multiple windows
Scroll other window

Ctrl + Meta + V

Help
Show commands matching a string

Ctrl + H then A

Help
Describe the function a key runs

Ctrl + H then K

Help
Describe a function

Ctrl + H then F

Help
Get mode specific information

Ctrl + H then M

The minibuffer
Abort command

Ctrl + G

Simple customization
(then customize) Customize variables and faces

Meta + X

Error recovery
Undo an unwanted change

Ctrl + X then U

Error recovery
Undo an unwanted change

Ctrl + _

Error recovery
Undo an unwanted change

Ctrl + /

Motion
Scroll current line to center, top, bottom

Ctrl + L

Incremental search
Search forward

Ctrl + S

Query replace
Enter recursive edit

Ctrl + R

Incremental search
Regular expression search

Ctrl + Meta + S

Incremental search
Reverse regular expression search

Ctrl + Meta + R

The minibuffer
Fetch previous minibuffer input

Meta + P

The minibuffer
Fetch later minibuffer input or default

Meta + N

The minibuffer
Complete and execute

⤶ Enter

Info
Scroll reverse

Del

Motion
Character - backward

Ctrl + B

Motion
Character - forward

Ctrl + F

Motion
Word - backward

Meta + B

Motion
Word - forward

Meta + F

Motion
Line - backward

Ctrl + P

Motion
Line - forward

Ctrl + N

Motion
Go to line beginning

Ctrl + A

Motion
Go to line ending

Ctrl + E

Motion
Sentence - backward

Meta + A

Motion
Sentence - forward

Meta + E

Motion
Paragraph - backward

Meta + {

Motion
Paragraph - forward

Meta + }

Motion
Page - backward

Ctrl + X then [

Motion
Page - forward

Ctrl + X then ]

Motion
sexp - backward

Ctrl + Meta + B

Motion
sexp - forward

Ctrl + Meta + F

Motion
function - backward

Ctrl + Meta + A

Motion
function - forward

Ctrl + Meta + E

Motion
Go to beginning of buffer

Meta + <

Motion
Go to end of buffer

Meta + >

Motion
Scroll to next screen

Ctrl + V

Motion
Scroll to previous screen

Meta + V

Motion
Scroll left

Ctrl + X then <

Motion
Scroll right

Ctrl + X then >

Motion
Go to line

Meta + G then G

Motion
Go to character

Meta + G then C

Motion
Back to indentation

Meta + M

Killing and deleting
Character (delete, not kill) - forward

Ctrl + D

Killing and deleting
Word - backward

Meta + Del

Killing and deleting
Word - forward

Meta + D

Killing and deleting
Line (to end of) - backward

Meta + 0 then Ctrl + K

Killing and deleting
Line (to end of) - forward

Ctrl + K

Killing and deleting
Sentence - backward

Ctrl + X then Del

Killing and deleting
Sentence - forward

Meta + K

Killing and deleting
sexp - backward

Meta + - then Ctrl + Meta + K

Killing and deleting
sexp - forward

Ctrl + Meta + K

Killing and deleting
Kill region

Ctrl + W

Killing and deleting
Copy region to kill ring

Meta + W

Killing and deleting
then press char to kill through next occurence of char

Meta + Z

Killing and deleting
Yank back last thing killed

Ctrl + Y

Killing and deleting
Replace last yank with previous kill

Meta + Y

Marking
Set mark here

Ctrl + @

Marking
Set mark here

Ctrl + Space

Marking
Exchange point and mark

Ctrl + X then Ctrl + X

Marking
Set mark arg words away

Meta + @

Marking
Mark paragraph

Meta + H

Marking
Mark page

Ctrl + X then Ctrl + P

Marking
Mark sexp

Ctrl + Meta + @

Marking
Mark function

Ctrl + Meta + H

Marking
Mark entire buffer

Ctrl + X then H

Query replace
(then query-replace-regexp) Interactively replace a text string using regular expressions

Meta + % then Meta + X

Info
Scroll forward

Space

Query replace
Replace this one, go to next

Y

Info
Go to next node

N

Query replace
Replace all remaining matches

!

Query replace
Back up to the previous match

^

Query replace
Exit recursive edit

Ctrl + Meta + C

Multiple windows
Delete all other windows (for frame)

Ctrl + X then 5 then 1

Multiple windows
Split window, above and below

Ctrl + X then 2

Multiple windows
Split window, above and below (for frame)

Ctrl + + X then 5 then 2

Multiple windows
Delete this window

Ctrl + X then 0

Multiple windows
Delete this window (for frame)

Ctrl + X then 5 then 0

Multiple windows
Split window, side by side

Ctrl + X then 3

Multiple windows
Switch cursor to another window

Ctrl + X then O

Multiple windows
Switch cursor to another window (for frame)

Ctrl + X then 5 then O

Multiple windows
Select buffer in other window

Ctrl + X then 4 then B

Multiple windows
Select buffer in other window (for frame)

Ctrl + X then 5 then B

Multiple windows
Display buffer in other window

Ctrl + X then 4 then Ctrl + O

Multiple windows
Display buffer in other window (for frame)

Ctrl + X then 5 then Ctrl + O

Multiple windows
Find file in other window

Ctrl + X then 4 then F

Multiple windows
Find file in other window (for frame)

Ctrl + X then 5 then F

Multiple windows
Find file read-only in other window

Ctrl + X then 4 then R

Multiple windows
Find file read-only in other window (for frame)

Ctrl + X then 5 then R

Multiple windows
Run Dired in other window

Ctrl + X then 4 then D

Multiple windows
Run Dired in other window (for frame)

Ctrl + X then 5 then D

Multiple windows
Find tag in other window

Ctrl + X then 4 then .

Multiple windows
Find tag in other window (for frame)

Ctrl + X then 5 then .

Multiple windows
Grow window taller

Ctrl + X then ^

Multiple windows
Shrink window smaller

Ctrl + X then {

Multiple windows
Grow window wider

Ctrl + X then }

The minibuffer
Complete as much as possible

⭾ Tab

Formatting
Indent region (mode-dependent)

Ctrl + Meta + \

Formatting
Indent sexp (mode-dependent)

Ctrl + Meta + Q

Formatting
Indent region rigidly arg columns

Ctrl + X then ⭾ Tab

Formatting
Indent for comment

Meta + ;

Formatting
Insert newline after point

Ctrl + O

Formatting
Move rest of line vertically down

Ctrl + Meta + O

Formatting
Delete blank lines around point

Ctrl + X then Ctrl + O

Formatting
Join line with previous (with arg, next)

Meta + ^

Formatting
Delete all white space around point

Meta + \

Formatting
Put exactly one space at point

Meta + Space

Formatting
Fill paragraph

Meta + Q

Formatting
Set fill column to arg

Ctrl + X then F

Formatting
Prefix each line starts with

Ctrl + X then .

Formatting
Set face

Meta + O

Case change
Uppercase word

Meta + U

Case change
Lowercase word

Meta + L

Case change
Capitalize word

Meta + C

Case change
Uppercase region

Ctrl + X then Ctrl + U

Case change
Lowercase region

Ctrl + X then Ctrl + L

The minibuffer
Show possible completions

?

The minibuffer
Regexp search backward through history

Meta + R

The minibuffer
Regexp search forward through history

Meta + S

The minibuffer
Edit and repeat the last command that used the minibuffer

Ctrl + X then Esc then Esc

The minibuffer
Activate menu bar items in text terminals

F10

Buffers
Select another buffer

Ctrl + X then B

Buffers
List all buffers

Ctrl + X then Ctrl + B

Buffers
Kill a buffer

Ctrl + X then K

Transposing
Transpose characters

Ctrl + T

Transposing
Transpose words

Meta + T

Transposing
Transpose lines

Ctrl + X then Ctrl + T

Transposing
Transpose sexps

Ctrl + Meta + T

Spelling check
Check spelling of current word

Meta + $

Tags
Find a tag (a definition)

Meta + .

Tags
Find next occurence of a tag

Ctrl + U then Meta + .

Tags
Continue last tags search on query-replace

Meta + ,

Shells
Execute a shell command

Meta + !

Shells
Execute a shell command asynchronously

Meta + &

Shells
Run a shell command on the region

Meta + |

Rectangles
Copy rectangle to register

Ctrl + X then R then R

Rectangles
Kill rectangle

Ctrl + X then R then K

Rectangles
Yank rectangle

Ctrl + X then R then Y

Rectangles
Open rectangle, shifting text right

Ctrl + X then R then O

Rectangles
Black out rectangle

Ctrl + X then R then C

Rectangles
Prefix each line with string

Ctrl + X then R then T

Abbrevs
Add global abbrev

Ctrl + X then A then G

Abbrevs
Add mode-local abbrev

Ctrl + X then A then L

Abbrevs
Add global expansion for this abbrev

Ctrl + X then A then I then G

Abbrevs
Add mode-local expansion for this abbrev

Ctrl + X then A then I then L

Abbrevs
Explicitly expand abbrev

Ctrl + X then A then E

Abbrevs
Expand previous word dynamically

Meta + /

Miscellaneous
Numeric argument

Ctrl + U then Num 0 - Num 9

Miscellaneous
Negative argument

Meta + -

Miscellaneous
then char: Quoted insert

Ctrl + Q

International character sets
Enable or disable input method

Ctrl + \

Info
Enter the Info documentation reader

Ctrl + H then I

Info
Find specified function or variable in Info

Ctrl + H then S

Info
Beginning of node

B

Info
Go to previous node

P

Info
Move up

U

Info
Select menu item by name

M

Info
Select menu item by number

Num 1 - Num 9

Info
Follow cross reference (return with 1)

F

Info
Return to last node you saw

L

Info
Return to directory node

D

Info
Go to top node of Info file

T

Info
Go to any node by name

G

Info
Run info tutorial

H

Info
Look up a subject in the indices

I

Info
Search nodes for regexp

S

Info
Quit Info

Q

Registers
Save region in register

Ctrl + X then R then S

Registers
Insert register contents into buffer

Ctrl + X then R then I

Registers
Save value of point in register

Ctrl + X then R then Space

Registers
Jump to point saved in register

Ctrl + X then R then J

Keyboard macros
Start defining a keyboard macro

Ctrl + X then (

Keyboard macros
End keyboard macro definition

Ctrl + X then )

Keyboard macros
Eappend to last keyboard macro

Ctrl + X then E

Dealing with Emacs Lisp
Eval sexp before point

Ctrl + X then Ctrl + E

Dealing with Emacs Lisp
Eval current defun

Ctrl + Meta + X

Dealing with Emacs Lisp
Read and eval minibuffer

Meta + :

Similar combinations for other applications