CIRCA Unix Services

This handout can be found online at:
http://www.circa.ufl.edu/handouts/unix/card.html

GNU emacs reference card
For version 18

November 23, 1994


Table of Contents

  1. Starting emacs
  2. Leaving emacs
  3. Files
  4. Getting help
  5. Error recovery
  6. Incremental search
  7. Motion
  8. Killing and deleting
  9. Marking
  10. Query replace
  11. Multiple windows
  12. Formatting
  13. Case change
  14. The Minibuffer
  1. Buffers
  2. Transposing
  3. Spelling check
  4. Tags
  5. Shells
  6. Rmail
  7. Regular expressions
  8. Registers
  9. Info
  10. Keyboard macros
  11. Commands dealing with emacs Lisp
  12. Simple customization
  13. Writing commands

Changes for grove at the University of Florida are noted in {braces}.

Starting emacs

To enter emacs, just type its name:

emacs
To read in a file to edit, see Files, below.
Table of Contents
Leaving emacs

Suspend emacs (the ususal way of leaving it)

C-z
Exit emacs permanently C-x C-c
Table of Contents
Files

read a file into Emacs

C-x C-f
save a file back to disk C-x C-s {C-x C-\}
insert contents of another file into this buffer C-x i
replace this file with the file you really want C-x C-v
write buffer to a specified file C-x C-w
run Dired, the directory editor C-x d
Table of Contents
Getting help

The Help system is simple. Type C-h and follow the directions. If you are a first-time user, type C-h t for a tutorial. (This card assumes you know the tutorial.)

get rid of Help window C-x 1
scroll Help window ESC C-v
apropos: show commands matching a string C-h a
show the function a key runs C-h c
describe a function C-h f
get mode-specific information C-h m
Table of Contents
Error recovery
abort partially typed of executing command C-g
recover a file lost by a system crash M-x recover-file
undo an unwanted change C-x u or C-_
restore a buffer to its original contents M-x revert-buffer
redraw garbaged screen C-l
Table of Contents
Incremental search

search forward

C-s {C-\}
search backward C-r
regular expression search C-M-s {C-M-\}
Use C-s {C-\} or C-r again to repeat the search in either direction.
exit incremental search ESC
undo effect of last character DEL
abort current search C-g
If Emacs is still searching, C-g will cancel the part of the search not done, otherwise it aborts the entire search.
Table of Contents
Motion

Cursor motion

entity to move over: backward forward
character C-b C-f
word M-b M-f
line C-p C-n
go to line beginning (or end) C-a C-e
sentence M-a M-e
paragraph M-[ {M-+} M-]
page C-x [ C-x ]
sexp C-M-b C-x-f
function C-M-a C-M-e
go to buffer beginning (or end) M-< M->
Screen motion
scroll to next screen C-v
scroll to previous screen M-v
scroll left C-x <
scroll right C-x >
Table of Contents
Killing and deleting
entity to kill: backward forward
character (delete, not kill) DEL c-d
word M-DEL M-d
line (to end of) M-O C-k C-k
sentence C-x DEL M-k
sexp M-- C-M-k C-M-k
kill region C-w
kill to next occurence of char M-z char
yank back last thing killed C-y
replace last yank with previous kill M-y
Table of Contents
Marking

set mark here

C-@ or C-SPC
exchange point and mark C-x C-x
set mark arg words away M-@
mark paragraph M-h
mark page C-x C-p
mark sexp C-M-@
mark function C-M-h
mark entire buffer C-x h
Table of Contents
Query Replace

interactively replace a text string

M-%
using regular expressions M-x query-replace-regexp
Valid responses in query-replace mode are:
replace this one, go on to next SPC
replace this one, don't move ,
replace this one, don't move DEL
replace all the remaining matches !
back up to the previous match ^
exit query-replace ESC
enter recursive edit (C-M-c to exit) C-r
Table of Contents
Multiple Windows

delete all other windows

C-x 1
delete this window C-x 0
split window in 2 vertically C-x 2
split window in 2 horizontally C-x 5
scroll other window C-M-v
switch cursor to another window C-x o
shrink window shorter M-x shrink-window
grow window taller C-x ^
shrink window narrower C-x {
grow window wider C-x }
select a buffer in other window C-x 4 b
find file in other window C-x 4 f
compose mail in other window C-x 4 m
run Dired in other window C-x 4 d
find tag in other window C-x 4 .
Table of Contents
Formatting

indent current line (mode-dependent)

TAB
indent region (mode-dependent) C-M-\ {C-x C-\}
indent sexp (mode-dependent) C-M-q {C-M-^}
indent region rigidly arg columns C-x TAB
insert newline after point C-o
move rest of line vertically down C-M-o
delete blank lines around point C-x C-o
delete all whitespace around point M-\
put exactly one space at point M-SPC
fill paragraph M-q
fill region M-g
set fill column C-x f
set prefix each line starts with C-x .
Table of Contents
Case Change

uppercase word

M-u
lowercase word M-1
capitalize word M-c
uppercase region C-x C-u
lowercase region C-x C-1
capitalize region M-x capitalize-region
Table of Contents
The Minibuffer

The following keys are defined in the minibuffer.

complete as much as possible TAB
complete up to one word SPC
complete and execute RET
show possible completions ?
abort command C-g
Type C-x ESC to edit and repeat the last command that used the minibuffer. The following keys are then defined.
previous minibuffer command M-p
next minibuffer command M-n
Table of Contents
Buffers
select another buffer C-x b
list all buffers C-x C-b
kill a buffer C-x k
Table of Contents
Transposing
transpose characters C-t
transpose words M-t
transpose lines C-x C-t
transpose sexps C-M-t
Table of Contents
Spelling check

check spelling of current word

M-$
check spelling of all words in region M-x spell-region
check spelling of entire buffer M-x spell-buffer
Table of Contents
Tags

find tag

M-.
find next occurence of tag C-u M-.
specify a new tag file M-x visit-tags-table
regexp search on all files in tags table M-x tags-search
query replace on all the files M-x tags-query-replace
continue last tags seearch of query-replace M-,
Table of Contents
Shells

execute a shell command

M-!
run a shell command on the region M-|
filter a region through a shell command C-u M-|
start a shell in window *shell* M-x shell
Table of Contents
Rmail

scroll forward

SPC
scroll reverse DEL
beginning of message . (dot)
next non-deleted message n
previous non-deleted message p
next message M-n
previous message M-p
delete message d
delete message and back up C-d
undelete message u
reply to message r
forward message to someone f
send mail m
get newly arrived mail g
quit Rmail q
output message to anouther Rmail file o
output message in Unix-mail style C-o
show summary of headers h
Table of Contents
Regular Expressions

The following have special meaning inside a regular expression.

any single character . (dot)
zero or more repeats *
one or more repeats +
zero or one repeat ?
any character in set [ ... ]
any character not in set [^ ... ]
beginning of line ^
end of line $
quote a special character c \c
alternative ("or") \|
grouping \( ... \)
nth group \n
beginning of buffer \‘
end of buffer \’
word break /b
not beginning or end of word /B
beginning of word \<
end of word \>
any word-syntax character \w
any non-word-syntax character \W
character with syntax c \sc
character with syntax not c \Sc
Table of Contents
Registers

copy region to register

C-x x
insert register contents C-x g
save point in register C-x /
move point to a saved location C-x j
Table of Contents
Info

enter the info documentation reader

C-h i
Moving within a node
scroll forward SPC
scroll reverse DEL
beginning of node . (dot)
Moving between nodes
next node n
previous node p
move up u
select menu item by name m
select nth menu item by number (1-5) n
follow cross reference (return with 1) f
return to last node you saw l
return to directory node d
go to any node by name g
Other
run info tutorial h
list info commands ?
quit info q
search nodes for regexp s
Table of Contents
Keyboard macros

start defining a keyboard macro

C-x (
end keyboard macro definition C-x )
execute last-defined keyboard macro C-x e
append to last keyboard macro C-u C-x
name last keyboard macro M-x name-last-kbd-macro
insert lisp definition in buffer M-x insert-kbd-macro
Table of Contents
Commands dealing with emacs Lisp

eval sexp before point

C-x C-e
eval current defun C-M-x
eval region M-x eval region
eval entire buffer M-x eval current buffer
read and eval buffer M-ESC
re-executer last minibuffer command C-x ESC
read and eval emacs Lisp file M-x load file
load from standard system directory M-x load library
Table of Contents
Simple customization

Here are some examples of binding global keys in Emacs Lisp. Note that you cannot say"\M-#"; you must say "\e#".

(global-set-key "\C-cg" 'goto-line)
(global-set-key "\e\C-r" 'isearch-backward-regexp)
(global-set-key "\e#" 'query-replace-regexp)
an example of setting a variable in Emacs Lisp:
(setq backup-by-copying-when-linked t)
Table of Contents
Writing commands
    (defun <command-name> (<args>)
    "<documentation>"
    (interactive "<template>")
    <body>)
An example:
    (defun this-line-to-top-of-screen (line)
    "Reposition line point is on to the top of the screen. With ARG, put point on line ARG. Negative counts from bottom." (interactive "p") (recenter (if (null line)
      0
      (prefix-numeric-value line))))
The argument to interactive is a string specifying how to get the arguments when the function is called interactively. Type C-h f for more information.
Table of Contents
GNU emacs reference card info
Copyright 1987 Free Software Foundation, Inc.
designed by Stephen Gildea, March 1987 v1.9
for GNU Emacs version 18 on Unix systems

Permission is granted to make and distribute copies of this card previded the copyright notice and this permission notice are preserved on all copies.

For copies of the GNU Emacs manual, write to the Free Software Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139.

Table of Contents


Center for Instructional and Research Computing Activities • E520 CSE • University of Florida, Gainesville, FL
Call the UF Computing Help Desk for Assistance • (352) 392-HELP • SUNCOM 622-HELP