All hotkeys for GNU Emacs
FilesRead a file into Emacs |
Ctrl + X then Ctrl + F |
FilesSave a file back to disk |
Ctrl + X then Ctrl + S |
FilesSave all files |
Ctrl + X then S |
FilesInsert contents of another file into this buffer |
Ctrl + X then I |
FilesReplace this file with another file |
Ctrl + X then Ctrl + V |
FilesWrite buffer to specified file |
Ctrl + X then Ctrl + W |
FilesToggle read only status of buffer |
Ctrl + X then Ctrl + Q |
Leaving EmacsSuspend or iconify Emacs |
Ctrl + Z |
Leaving EmacsExit Emacs completely |
Ctrl + X then Ctrl + C |
Multiple windowsDelete all other windows |
Ctrl + X then 1 |
Multiple windowsScroll other window |
Ctrl + Meta + V |
HelpShow commands matching a string |
Ctrl + H then A |
HelpDescribe the function a key runs |
Ctrl + H then K |
HelpDescribe a function |
Ctrl + H then F |
HelpGet mode specific information |
Ctrl + H then M |
The minibufferAbort command |
Ctrl + G |
Simple customization(then customize) Customize variables and faces |
Meta + X |
Error recoveryUndo an unwanted change |
Ctrl + X then U |
Error recoveryUndo an unwanted change |
Ctrl + _ |
Error recoveryUndo an unwanted change |
Ctrl + / |
MotionScroll current line to center, top, bottom |
Ctrl + L |
Incremental searchSearch forward |
Ctrl + S |
Query replaceEnter recursive edit |
Ctrl + R |
Incremental searchRegular expression search |
Ctrl + Meta + S |
Incremental searchReverse regular expression search |
Ctrl + Meta + R |
The minibufferFetch previous minibuffer input |
Meta + P |
The minibufferFetch later minibuffer input or default |
Meta + N |
The minibufferComplete and execute |
⤶ Enter |
InfoScroll reverse |
Del |
MotionCharacter - backward |
Ctrl + B |
MotionCharacter - forward |
Ctrl + F |
MotionWord - backward |
Meta + B |
MotionWord - forward |
Meta + F |
MotionLine - backward |
Ctrl + P |
MotionLine - forward |
Ctrl + N |
MotionGo to line beginning |
Ctrl + A |
MotionGo to line ending |
Ctrl + E |
MotionSentence - backward |
Meta + A |
MotionSentence - forward |
Meta + E |
MotionParagraph - backward |
Meta + { |
MotionParagraph - forward |
Meta + } |
MotionPage - backward |
Ctrl + X then [ |
MotionPage - forward |
Ctrl + X then ] |
Motionsexp - backward |
Ctrl + Meta + B |
Motionsexp - forward |
Ctrl + Meta + F |
Motionfunction - backward |
Ctrl + Meta + A |
Motionfunction - forward |
Ctrl + Meta + E |
MotionGo to beginning of buffer |
Meta + < |
MotionGo to end of buffer |
Meta + > |
MotionScroll to next screen |
Ctrl + V |
MotionScroll to previous screen |
Meta + V |
MotionScroll left |
Ctrl + X then < |
MotionScroll right |
Ctrl + X then > |
MotionGo to line |
Meta + G then G |
MotionGo to character |
Meta + G then C |
MotionBack to indentation |
Meta + M |
Killing and deletingCharacter (delete, not kill) - forward |
Ctrl + D |
Killing and deletingWord - backward |
Meta + Del |
Killing and deletingWord - forward |
Meta + D |
Killing and deletingLine (to end of) - backward |
Meta + 0 then Ctrl + K |
Killing and deletingLine (to end of) - forward |
Ctrl + K |
Killing and deletingSentence - backward |
Ctrl + X then Del |
Killing and deletingSentence - forward |
Meta + K |
Killing and deletingsexp - backward |
Meta + - then Ctrl + Meta + K |
Killing and deletingsexp - forward |
Ctrl + Meta + K |
Killing and deletingKill region |
Ctrl + W |
Killing and deletingCopy region to kill ring |
Meta + W |
Killing and deletingthen press char to kill through next occurence of char |
Meta + Z |
Killing and deletingYank back last thing killed |
Ctrl + Y |
Killing and deletingReplace last yank with previous kill |
Meta + Y |
MarkingSet mark here |
Ctrl + @ |
MarkingSet mark here |
Ctrl + Space |
MarkingExchange point and mark |
Ctrl + X then Ctrl + X |
MarkingSet mark arg words away |
Meta + @ |
MarkingMark paragraph |
Meta + H |
MarkingMark page |
Ctrl + X then Ctrl + P |
MarkingMark sexp |
Ctrl + Meta + @ |
MarkingMark function |
Ctrl + Meta + H |
MarkingMark entire buffer |
Ctrl + X then H |
Query replace(then query-replace-regexp) Interactively replace a text string using regular expressions |
Meta + % then Meta + X |
InfoScroll forward |
Space |
Query replaceReplace this one, go to next |
Y |
InfoGo to next node |
N |
Query replaceReplace all remaining matches |
! |
Query replaceBack up to the previous match |
^ |
Query replaceExit recursive edit |
Ctrl + Meta + C |
Multiple windowsDelete all other windows (for frame) |
Ctrl + X then 5 then 1 |
Multiple windowsSplit window, above and below |
Ctrl + X then 2 |
Multiple windowsSplit window, above and below (for frame) |
Ctrl + + X then 5 then 2 |
Multiple windowsDelete this window |
Ctrl + X then 0 |
Multiple windowsDelete this window (for frame) |
Ctrl + X then 5 then 0 |
Multiple windowsSplit window, side by side |
Ctrl + X then 3 |
Multiple windowsSwitch cursor to another window |
Ctrl + X then O |
Multiple windowsSwitch cursor to another window (for frame) |
Ctrl + X then 5 then O |
Multiple windowsSelect buffer in other window |
Ctrl + X then 4 then B |
Multiple windowsSelect buffer in other window (for frame) |
Ctrl + X then 5 then B |
Multiple windowsDisplay buffer in other window |
Ctrl + X then 4 then Ctrl + O |
Multiple windowsDisplay buffer in other window (for frame) |
Ctrl + X then 5 then Ctrl + O |
Multiple windowsFind file in other window |
Ctrl + X then 4 then F |
Multiple windowsFind file in other window (for frame) |
Ctrl + X then 5 then F |
Multiple windowsFind file read-only in other window |
Ctrl + X then 4 then R |
Multiple windowsFind file read-only in other window (for frame) |
Ctrl + X then 5 then R |
Multiple windowsRun Dired in other window |
Ctrl + X then 4 then D |
Multiple windowsRun Dired in other window (for frame) |
Ctrl + X then 5 then D |
Multiple windowsFind tag in other window |
Ctrl + X then 4 then . |
Multiple windowsFind tag in other window (for frame) |
Ctrl + X then 5 then . |
Multiple windowsGrow window taller |
Ctrl + X then ^ |
Multiple windowsShrink window smaller |
Ctrl + X then { |
Multiple windowsGrow window wider |
Ctrl + X then } |
The minibufferComplete as much as possible |
⭾ Tab |
FormattingIndent region (mode-dependent) |
Ctrl + Meta + \ |
FormattingIndent sexp (mode-dependent) |
Ctrl + Meta + Q |
FormattingIndent region rigidly arg columns |
Ctrl + X then ⭾ Tab |
FormattingIndent for comment |
Meta + ; |
FormattingInsert newline after point |
Ctrl + O |
FormattingMove rest of line vertically down |
Ctrl + Meta + O |
FormattingDelete blank lines around point |
Ctrl + X then Ctrl + O |
FormattingJoin line with previous (with arg, next) |
Meta + ^ |
FormattingDelete all white space around point |
Meta + \ |
FormattingPut exactly one space at point |
Meta + Space |
FormattingFill paragraph |
Meta + Q |
FormattingSet fill column to arg |
Ctrl + X then F |
FormattingPrefix each line starts with |
Ctrl + X then . |
FormattingSet face |
Meta + O |
Case changeUppercase word |
Meta + U |
Case changeLowercase word |
Meta + L |
Case changeCapitalize word |
Meta + C |
Case changeUppercase region |
Ctrl + X then Ctrl + U |
Case changeLowercase region |
Ctrl + X then Ctrl + L |
The minibufferShow possible completions |
? |
The minibufferRegexp search backward through history |
Meta + R |
The minibufferRegexp search forward through history |
Meta + S |
The minibufferEdit and repeat the last command that used the minibuffer |
Ctrl + X then Esc then Esc |
The minibufferActivate menu bar items in text terminals |
F10 |
BuffersSelect another buffer |
Ctrl + X then B |
BuffersList all buffers |
Ctrl + X then Ctrl + B |
BuffersKill a buffer |
Ctrl + X then K |
TransposingTranspose characters |
Ctrl + T |
TransposingTranspose words |
Meta + T |
TransposingTranspose lines |
Ctrl + X then Ctrl + T |
TransposingTranspose sexps |
Ctrl + Meta + T |
Spelling checkCheck spelling of current word |
Meta + $ |
TagsFind a tag (a definition) |
Meta + . |
TagsFind next occurence of a tag |
Ctrl + U then Meta + . |
TagsContinue last tags search on query-replace |
Meta + , |
ShellsExecute a shell command |
Meta + ! |
ShellsExecute a shell command asynchronously |
Meta + & |
ShellsRun a shell command on the region |
Meta + | |
RectanglesCopy rectangle to register |
Ctrl + X then R then R |
RectanglesKill rectangle |
Ctrl + X then R then K |
RectanglesYank rectangle |
Ctrl + X then R then Y |
RectanglesOpen rectangle, shifting text right |
Ctrl + X then R then O |
RectanglesBlack out rectangle |
Ctrl + X then R then C |
RectanglesPrefix each line with string |
Ctrl + X then R then T |
AbbrevsAdd global abbrev |
Ctrl + X then A then G |
AbbrevsAdd mode-local abbrev |
Ctrl + X then A then L |
AbbrevsAdd global expansion for this abbrev |
Ctrl + X then A then I then G |
AbbrevsAdd mode-local expansion for this abbrev |
Ctrl + X then A then I then L |
AbbrevsExplicitly expand abbrev |
Ctrl + X then A then E |
AbbrevsExpand previous word dynamically |
Meta + / |
MiscellaneousNumeric argument |
Ctrl + U then Num 0 - Num 9 |
MiscellaneousNegative argument |
Meta + - |
Miscellaneousthen char: Quoted insert |
Ctrl + Q |
International character setsEnable or disable input method |
Ctrl + \ |
InfoEnter the Info documentation reader |
Ctrl + H then I |
InfoFind specified function or variable in Info |
Ctrl + H then S |
InfoBeginning of node |
B |
InfoGo to previous node |
P |
InfoMove up |
U |
InfoSelect menu item by name |
M |
InfoSelect menu item by number |
Num 1 - Num 9 |
InfoFollow cross reference (return with 1) |
F |
InfoReturn to last node you saw |
L |
InfoReturn to directory node |
D |
InfoGo to top node of Info file |
T |
InfoGo to any node by name |
G |
InfoRun info tutorial |
H |
InfoLook up a subject in the indices |
I |
InfoSearch nodes for regexp |
S |
InfoQuit Info |
Q |
RegistersSave region in register |
Ctrl + X then R then S |
RegistersInsert register contents into buffer |
Ctrl + X then R then I |
RegistersSave value of point in register |
Ctrl + X then R then Space |
RegistersJump to point saved in register |
Ctrl + X then R then J |
Keyboard macrosStart defining a keyboard macro |
Ctrl + X then ( |
Keyboard macrosEnd keyboard macro definition |
Ctrl + X then ) |
Keyboard macrosEappend to last keyboard macro |
Ctrl + X then E |
Dealing with Emacs LispEval sexp before point |
Ctrl + X then Ctrl + E |
Dealing with Emacs LispEval current defun |
Ctrl + Meta + X |
Dealing with Emacs LispRead and eval minibuffer |
Meta + : |