GNU Emacs keyboard shortcuts

GNU Emacs  

Zeynel Abidin Öztürk -
5 years ago
- Shortcuts
-1
Ctrl + X then Ctrl + F

Read a file into Emacs

0
Ctrl + X then Ctrl + S

Save a file back to disk

0
Ctrl + X then S

Save all files

0
Ctrl + X then I

Insert contents of another file into this buffer

0
Ctrl + X then Ctrl + V

Replace this file with another file

0
Ctrl + X then Ctrl + W

Write buffer to specified file

1
Ctrl + X then Ctrl + Q

Toggle read only status of buffer

0
Ctrl + Z

Suspend or iconify Emacs

1
Ctrl + X then Ctrl + C

Exit Emacs completely

The help system is simple. Type Ctrl + H or F1 and follow the directions. If you are a first time user, type Ctrl + H for a tutorial.
0
Ctrl + X then 1

Remove help window

0
Ctrl + ♦ Meta + V

Scroll help window

0
Ctrl + H then A

Show commands matching a string

0
Ctrl + H then K

Describe the function a key runs

0
Ctrl + H then F

Describe a function

0
Ctrl + H then M

Get mode specific information

0
Ctrl + G

Abort partially typed or executing command

0
♦ Meta + X

then type recover-session to recover files lost by a system crash

0
Ctrl + X then U

Undo an unwanted change

1
or Ctrl + _
0
or Ctrl + /
0
♦ Meta + X

then type revert-buffer to restore a buffer to its original contents

0
Ctrl + L

Redraw garbaged screen

0
Ctrl + S

Search forward

0
Ctrl + R

Search backward

0
Ctrl + ♦ Meta + S

Regular expression search

0
Ctrl + ♦ Meta + R

Reverse regular expression search

0
♦ Meta + P

Select previous search string

0
♦ Meta + N

Select next later search string

0
⤶ Enter

Exit incremental search

0
Del

Undo effect of last character

0
Ctrl + G

Abort current search

Use Ctrl + S or Ctrl + R again to repeat the search in either direction. If Emacs is still searching, Ctrl + G cancels only the part not matched.
1
Ctrl + B

Character - backward

0
Ctrl + F

Character - forward

0
♦ Meta + B

Word - backward

1
♦ Meta + F

Word - forward

0
Ctrl + P

Line - backward

0
Ctrl + N

Line - forward

0
Ctrl + A

Go to line beginning

0
Ctrl + E

Go to line ending

0
♦ Meta + A

Sentence - backward

0
♦ Meta + E

Sentence - forward

1
♦ Meta + {

Paragraph - backward

0
♦ Meta + }

Paragraph - forward

0
Ctrl + X then [

Page - backward

0
Ctrl + X then ]

Page - forward

0
Ctrl + ♦ Meta + B

sexp - backward

0
Ctrl + ♦ Meta + F

sexp - forward

0
Ctrl + ♦ Meta + A

function - backward

0
Ctrl + ♦ Meta + E

function - forward

1
♦ Meta + <

Go to beginning of buffer

1
♦ Meta + >

Go to end of buffer

0
Ctrl + V

Scroll to next screen

0
♦ Meta + V

Scroll to previous screen

0
Ctrl + X then <

Scroll left

0
Ctrl + X then >

Scroll right

0
Ctrl + L

Scroll current line to center, top, bottom

0
♦ Meta + G then G

Go to line

0
♦ Meta + G then C

Go to character

0
♦ Meta + M

Back to indentation

0
Del

Character (delete, not kill) - backward

0
Ctrl + D

Character (delete, not kill) - forward

0
♦ Meta + Del

Word - backward

0
♦ Meta + D

Word - forward

0
♦ Meta + 0 then Ctrl + K

Line (to end of) - backward

0
Ctrl + K

Line (to end of) - forward

0
Ctrl + X then Del

Sentence - backward

0
♦ Meta + K

Sentence - forward

0
♦ Meta + - then Ctrl + ♦ Meta + K

sexp - backward

0
Ctrl + ♦ Meta + K

sexp - forward

0
Ctrl + W

Kill region

0
♦ Meta + W

Copy region to kill ring

0
♦ Meta + Z

then press char to kill through next occurence of char

0
Ctrl + Y

Yank back last thing killed

0
♦ Meta + Y

Replace last yank with previous kill

0
Ctrl + @

Set mark here

0
or Ctrl + Space
0
Ctrl + X then Ctrl + X

Exchange point and mark

0
♦ Meta + @

Set mark arg words away

0
♦ Meta + H

Mark paragraph

0
Ctrl + X then Ctrl + P

Mark page

0
Ctrl + ♦ Meta + @

Mark sexp

0
Ctrl + ♦ Meta + H

Mark function

0
Ctrl + X then H

Mark entire buffer

0
♦ Meta + % then ♦ Meta + X

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

Valid responses in query-replace mode are replace, skip, back up and exit.
0
Space

Replace this one, go to next

0
or Y
0
Del

Skip to next without replacing

0
or N
0
!

Replace all remaining matches

0
^

Back up to the previous match

0
⤶ Enter

Exit query-replace

0
Ctrl + R

Enter recursive edit

0
Ctrl + ♦ Meta + C

Exit recursive edit

0
Ctrl + X then 1

Delete all other windows

0
Ctrl + X then 5 then 1

Delete all other windows (for frame)

0
Ctrl + X then 2

Split window, above and below

0
Ctrl + + X then 5 then 2

Split window, above and below (for frame)

0
Ctrl + X then 0

Delete this window

0
Ctrl + X then 5 then 0

Delete this window (for frame)

0
Ctrl + X then 3

Split window, side by side

0
Ctrl + ♦ Meta + V

Scroll other window

0
Ctrl + X then O

Switch cursor to another window

0
Ctrl + X then 5 then O

Switch cursor to another window (for frame)

0
Ctrl + X then 4 then B

Select buffer in other window

0
Ctrl + X then 5 then B

Select buffer in other window (for frame)

0
Ctrl + X then 4 then Ctrl + O

Display buffer in other window

0
Ctrl + X then 5 then Ctrl + O

Display buffer in other window (for frame)

0
Ctrl + X then 4 then F

Find file in other window

0
Ctrl + X then 5 then F

Find file in other window (for frame)

0
Ctrl + X then 4 then R

Find file read-only in other window

0
Ctrl + X then 5 then R

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

0
Ctrl + X then 4 then D

Run Dired in other window

0
Ctrl + X then 5 then D

Run Dired in other window (for frame)

0
Ctrl + X then 4 then .

Find tag in other window

0
Ctrl + X then 5 then .

Find tag in other window (for frame)

0
Ctrl + X then ^

Grow window taller

0
Ctrl + X then {

Shrink window smaller

0
Ctrl + X then }

Grow window wider

0
Tab

Indent current line (mode-dependent)

0
Ctrl + ♦ Meta + \

Indent region (mode-dependent)

0
Ctrl + ♦ Meta + Q

Indent sexp (mode-dependent)

0
Ctrl + X then Tab

Indent region rigidly arg columns

-1
♦ Meta + ;

Indent for comment

0
Ctrl + O

Insert newline after point

-1
Ctrl + ♦ Meta + O

Move rest of line vertically down

0
Ctrl + X then Ctrl + O

Delete blank lines around point

0
♦ Meta + ^

Join line with previous (with arg, next)

0
♦ Meta + \

Delete all white space around point

0
♦ Meta + Space

Put exactly one space at point

0
♦ Meta + Q

Fill paragraph

0
Ctrl + X then F

Set fill column to arg

0
Ctrl + X then .

Prefix each line starts with

0
♦ Meta + O

Set face

0
♦ Meta + U

Uppercase word

0
♦ Meta + L

Lowercase word

1
♦ Meta + C

Capitalize word

1
Ctrl + X then Ctrl + U

Uppercase region

1
Ctrl + X then Ctrl + L

Lowercase region

The following keys are defined in the minibuffer.
1
Tab

Complete as much as possible

0
Space

Complete up to one word

0
⤶ Enter

Complete and execute

0
?

Show possible completions

0
♦ Meta + P

Fetch previous minibuffer input

0
♦ Meta + N

Fetch later minibuffer input or default

-1
♦ Meta + R

Regexp search backward through history

0
♦ Meta + S

Regexp search forward through history

0
Ctrl + G

Abort command

0
Ctrl + X then Esc then Esc

Edit and repeat the last command that used the minibuffer

0
F10

Activate menu bar items in text terminals

0
Ctrl + X then B

Select another buffer

0
Ctrl + X then Ctrl + B

List all buffers

0
Ctrl + X then K

Kill a buffer

0
Ctrl + T

Transpose characters

0
♦ Meta + T

Transpose words

0
Ctrl + X then Ctrl + T

Transpose lines

0
Ctrl + ♦ Meta + T

Transpose sexps

1
♦ Meta + $

Check spelling of current word

0
♦ Meta + X

(then ispell-region) Check spelling of all words in region

0
♦ Meta + X

(then ispell-buffer) Check spelling of entire buffer

0
♦ Meta + X

(then flyspell-mode) Toggle on-the-fly spell checking

0
♦ Meta + .

Find a tag (a definition)

0
Ctrl + U then ♦ Meta + .

Find next occurence of a tag

0
♦ Meta + X

(then visit-tags-table) Specify new tags file

0
♦ Meta + X

(then tags-search) Regexp search on all files in tags table

-1
♦ Meta + X

(then tags-query-replace) Run query-replace on all the files

0
♦ Meta + ,

Continue last tags search on query-replace

0
♦ Meta + !

Execute a shell command

0
♦ Meta + &

Execute a shell command asynchronously

0
♦ Meta + |

Run a shell command on the region

0
♦ Meta + X

(then type shell) Start a shell window *shell*

0
Ctrl + X then R then R

Copy rectangle to register

0
Ctrl + X then R then K

Kill rectangle

0
Ctrl + X then R then Y

Yank rectangle

0
Ctrl + X then R then O

Open rectangle, shifting text right

0
Ctrl + X then R then C

Black out rectangle

0
Ctrl + X then R then T

Prefix each line with string

0
Ctrl + X then A then G

Add global abbrev

0
Ctrl + X then A then L

Add mode-local abbrev

0
Ctrl + X then A then I then G

Add global expansion for this abbrev

0
Ctrl + X then A then I then L

Add mode-local expansion for this abbrev

0
Ctrl + X then A then E

Explicitly expand abbrev

0
♦ Meta + /

Expand previous word dynamically

0
Ctrl + U then Num 0 - Num 9

Numeric argument

0
♦ Meta + -

Negative argument

0
Ctrl + Q

then char: Quoted insert

0
Ctrl + \

Enable or disable input method

0
Ctrl + H then I

Enter the Info documentation reader

0
Ctrl + H then S

Find specified function or variable in Info

0
Space

Scroll forward

0
Del

Scroll reverse

0
B

Beginning of node

0
N

Go to next node

0
P

Go to previous node

0
U

Move up

0
M

Select menu item by name

0
Num 1 - Num 9

Select menu item by number

0
F

Follow cross reference (return with 1)

0
L

Return to last node you saw

0
D

Return to directory node

0
T

Go to top node of Info file

0
G

Go to any node by name

0
H

Run info tutorial

0
I

Look up a subject in the indices

0
S

Search nodes for regexp

0
Q

Quit Info

0
Ctrl + X then R then S

Save region in register

0
Ctrl + X then R then I

Insert register contents into buffer

0
Ctrl + X then R then Space

Save value of point in register

0
Ctrl + X then R then J

Jump to point saved in register

0
Ctrl + X then (

Start defining a keyboard macro

0
Ctrl + X then )

End keyboard macro definition

0
Ctrl + X then E

Eappend to last keyboard macro

0
♦ Meta + X

(then name-last-kbd-macro) name last keyboard macro

0
♦ Meta + X

(then insert-kbd-macro) Instert Lisp definition in buffer

0
Ctrl + X then Ctrl + E

Eval sexp before point

0
Ctrl + ♦ Meta + X

Eval current defun

0
♦ Meta + X

(then eval-region) Eval region

0
♦ Meta + :

Read and eval minibuffer

0
♦ Meta + X

(then load-library) load a Lisp library from load-path

0
♦ Meta + X

(then customize) Customize variables and faces


Share this page on:
Is this page helpful?
0 0

Program information

Program name: GNU Emacs GNU Emacs (Text editing)

GNU Emacs is the most popular port of the Emacs text editor. It's developed by GNU Project's founder Richard Stallman and dubbed "most powerful text editor of today". GNU Emacs can open text files in multiple character sets and its functionality can be enhanced with Emacs Lisp programs.

Web page: gnu.org/s/emacs

Last update: 11/11/2019 8:10 PM UTC

How easy to press shortcuts: 53%

More information >>

Shortcut count: 220

Platform detected: Windows or Linux (not macOS)

Similar programs



Advertisement

Join our mailing list!

Your email is kept private and we don't spam.