Key Binding |
Backend Function |
What it does |
Quiting Things |
C-x C-c |
M-x save-buffers-kill-emacs |
Quit Emacs. Exits out of Emacs. If you have open
buffers that have been modified you are prompted to save the changes or
discard them. |
C-g |
M-x keyboard-quit |
If you are in a key request sequence that you can't get out
of, this returns you to the main buffer. |
ESC ESC ESC |
M-x keyboard-escape-quit |
Does about the same thing as "C-g" |
C-x k |
M-x kill-buffer |
Kills the current buffer. If the buffer is modified you are
prompted to save it. |
Files and directories |
C-x C-f |
M-x find-file |
Open a file. This prompts for the name of a file. Once
you have typed the file it opens it in the current buffer. If the file
doesn't exist, a blank buffer is created and Emacs allows you to begin
typing (In this case the file will not exist on the system until you save
it the first time). When you are typing the name of the file, you may use
the tab key for filename completion. Also you may use M-p and M-n to go to
the "previous" and "next" files that have been found using
find-file. |
C-x C-s |
M-x save-buffer |
Save a file. This saves the current buffer. |
C-x d |
M-x dired (directory edit) |
More Here. This
opens the directory specified (same way as find-file). It opens a buffer
that lists the directory and allows you to perform operations on the
files. listed in that directory. There are many features (to many to list
here) that I will go into later. The most basic is to put the cursor on
the file you want and hit ENTER. This does a find-file on that file. |
C-x C-w |
M-x write-file |
Save the current file as... |
C-x i |
M-x insert-file |
Insert a file |
Buffers |
C-x C-b |
M-x list-buffers |
This lists all buffers that are open. Emacs will typically
open a buffer for each file that you visit (if you visit a new file
without closing an old one). This will give you a list of all of the
currently open buffers and will allow you to choose one from the list to
switch to. (You will notice there are a couple of buffers beginning with
an *. These are buffers used by Emacs to store output. You may kill them
if you like.) If you have a file opened multiple times, you will see it
listed as "file" and "file <2>". This list of buffers is called the
buffer ring |
C-x b |
M-x switch-to-buffer |
Switch buffers. Does just that. The default buffer to
switch to is the last one that you came from. (Typing C-x b ENTER
repeatedly swaps between the current and the last buffer like ALT-TAB in
windows.) You may type a TAB to complete the buffer name or TAB TAB to see
a list of all of the buffer names you can type. |
C-x k |
M-x kill-buffer |
Kills the current buffer. If the buffer is modified you are
prompted to save it. |
Windows and frames |
C-x 0 |
M-x delete-window |
Kills the current window if more than one is visible. The
buffer contained in the window is put back to the buffer ring. |
C-x 1 |
M-x delete-other-windows |
If more than one window is visible in the current viewing
frame, it removes all but the current window. Other buffers remain open
but unviewed. |
C-x 2 |
M-x split-window-vertically |
Splits the current viewing window into two windows placed one
over the other. |
C-x 3 |
M-x split-window-horizontally |
Splits the current viewing window into two windows placed side
to side. |
C-x o |
M-x other-window |
Switches between two windows. |
Moving Around |
C-p (up arrow) |
M-x previous-line |
Moves to the previous line. |
C-n (down arrow) |
M-x next-line |
Moves to the next line. |
C-f (right arrow) |
M-x forward-char |
Move forward one character |
C-f (left arrow) |
M-x backward-char |
Move backward one character |
M-f |
M-x forward-word |
Move forward one word. |
M-b |
M-x backward-word |
Move backward one word. |
C-a |
M-x beginning-of-line |
Move to the beginning of the line. |
C-e |
M-x end-of-line |
Move to the beginning of the line. |
M-a |
M-x backward-sentence |
Move backward one sentence. |
M-e |
M-x forward-sentence |
Move forward one sentence. |
C-v |
M-x scroll-up |
Page down one page. |
M-v |
M-x scroll-down |
Page up one page. |
M-> |
M-x end-of-buffer |
Moves to the end of the buffer. |
M-< |
M-x beginning-of-buffer |
Moves to the beginning of the buffer. |
C-x ] |
M-x forward-page |
In most modes does the same as M-> |
C-x [ |
M-x backward-page |
In most modes does the same as M-< |
|
M-x goto-line |
Goto line. Does what it says. I can't believe that
there is not a default key binding for this (there is in XEmacs). I
usually set up in my .emacs file the line
(global-set-key "\M-g" 'goto-line) which tells emacs to use M-g
to run the command. |
C-x o |
M-x other-window |
Switches between two windows. |
C-x b |
M-x switch-to-buffer |
Switch buffers. Does just that. The default buffer to
switch to is the last one that you came from. (Typing C-x b ENTER
repeatedly swaps between the current and the last buffer like ALT-TAB in
windows.) You may type a TAB to complete the buffer name or TAB TAB to see
a list of all of the buffer names you can type. |
C-SPC |
M-x set-mark-command |
Set Mark. Sets the mark to the current cursor location
(point). Many commands are run on the region in between the point and
mark. |
C-x C-x |
M-x exchange-point-and-mark |
Exchanges the point (cursor location) and the mark. |
Copying and Deleting stuff |
C-_ |
M-x undo |
Undo. Undoes the last command. Can be done
repeatedly. |
C-d |
M-x delete-char |
Delete. Deletes the character under the point (after
the cursor location). |
BACKSPC |
M-x delete-backward-char |
Delete. Deletes the character before the point (before
the cursor location). |
M-d |
M-x kill-word |
Kills the word after the cursor location. Places on the kill
ring. |
M-BACKSPC |
M-x backward-kill-word |
Kills the word before the cursor location. Places on the kill
ring. |
C-k |
M-x kill-line |
Kill. Kills from the point to the end of the line. If
repeated in a row, all of kills go into the same kill ring entry. Doing
this once does not kill the new line at the end of the line. Repeating
kills the newline. (for example, to kill the entire current line you would
type C-a to move to the beginning of the line, and C-k C-k to kill the
line and the newline). |
C-y |
M-x yank |
Yank. Inserts the last entry from the kill ring. This
can be done repeatedly. |
M-y |
M-x yank-pop |
Cycle through the kill ring. Operates only if the last command
was C-y |
C-SPC |
M-x set-mark-command |
Set Mark. Sets the mark to the current cursor location
(point). Many commands are run on the region in between the point and
mark. |
C-w |
M-x kill-region |
Kills the text between the mark and the point. Places on the
kill ring. If the buffer is read only, places text on kill ring but warns
about not being able to modify buffer. |
M-w |
M-x kill-ring-save |
Places text between mark and point on the kill ring without
killing text. |
M-z |
M-x zap-to-char |
Deletes the text from the point up to the first instance of
the specifed character |
Search and Replace |
C-s |
M-x isearch-forward |
Searches forward for the typed in text. C-s repeatedly
searches forward multiple times. C-r switches direction of search. |
C-r |
M-x isearch-backward |
Searches backward for the typed in text. C-r repeatedly
searches backward multiple times. C-s switches direction of search. |
M-% |
M-x query-replace |
Requests two patterns. Searches for first pattern and replaces
with second pattern. Prompts at each match. (y for "yes replace", n for
"no next", and ! for "replace all"). |
C-u C-s |
M-x isearch-forward-regexp |
Search using a regular expression (as you type it).
|
M-C-% |
M-x query-replace-regexp |
Query replaces using a regular expression as the match. |
Fixing up the text |
TAB |
M-x indent-relative-maybe |
Indent the text according to the program mode you are
in. |
M-C-\ |
M-x indent-region |
Runs the "TAB" on all lines in the region. |
M-u |
M-x upcase-word |
Upper casifies from the point to the end of the word. |
M-l |
M-x downcase-word |
Lower casifies from the point to the end of the word. |
C-t |
M-x transpose-chars |
Swaps characters before and after point with one
another. |
M-t |
M-x transpose-words |
Swaps current and next word with one another. |
Dired - Directory Editor |
C-x d |
M-x dired (directory edit) |
This opens the directory specified (same way as find-file). It
opens a buffer that lists the directory and allows you to perform
operations on the files. listed in that directory. There are many features
(to many to list here) that I will go into later. The most basic is to put
the cursor on the file you want and hit ENTER. This does a find-file on
that file. |
All commands in this section will only operate when you are in dired
mode. |
ENTER |
M-x dired-advertised-find-file |
Runs a C-x C-f (find-file) on the currently highlighted
file. If the file is a directory, that directory will be opened in
dired mode in a new buffer. |
+ |
M-x dired-create-directory |
Prompts for a new directory name and creates it. |
d |
M-x dired-flag-file-deletion |
Flags the current file for deletion. |
~ |
M-x dired-flag-backup-files |
Flags all files ending with ~ for deletion
(backup files) |
x |
M-x dired-do-flagged-delete |
Delete all files marked for deletion (lines beginning
with a D |
D |
M-x dired-do-delete |
Deletes the currently highlighted file(s) |
C |
M-x dired-do-copy |
Copies the currently highlighted file(s). Prompts for
the destination. |
R |
M-x dired-do-rename |
Renames the currently highlighted file(s). Prompts for
the destination. |
% R |
M-x dired-do-rename-regex |
Renames the currently highlighted file(s) using regular
expressions. Prompts for a regex for from and to. (example - from
regex \(.+\).txt, to regex \1.text) |
m |
M-x dired-mark |
Mark the current file (marks with a *) |
u |
M-x dired-unmark |
Unmark the current file (marks with SPC - SPC is
blank) |
* c |
M-x dired-change-marks |
Changes marks from first prompted letter to second
prompted letter (example - * c D SPC - this will clear the
deletion flag) |
! |
M-x dired-do-shell-command |
Execute command on files marked with *. If your
command contains a *, the list of marked files will be
substituted in place and executed. Otherwise, the command will be
played once with each marked file as the last argument. |
g |
M-x revert-buffer |
Refreshes the current dired
directory. | |
Help - Finding it |
C-h t |
M-x help-with-tutorial |
Begins the Emacs built in Tutorial - highly recommended |
C-h k |
M-x describe-key |
Allows you to type in key strokes and see the backend function
that they are running. |
C-h f |
M-x describe-function |
Allows you to type a function name and receive an explanation
of what it does. |
C-h v |
M-x describe-variable |
Allows you to type a Emacs variable name and see its
contents |
C-h b |
M-x describe-bindings |
Show a table of all of the current key bindings. |
C-h i |
M-x info |
This one is possibly the most important. It enters into the
Emacs help browser which allows you to read in depth about just about any
subject relating to Emacs. (Basic commands are "l" for last, "n" for next,
and "p" for previous.) I'll talk more about this later. |
Text Registers |
C-x r s |
M-x copy-to-register |
Prompts for register letter. Saves text between point and mark
in the register. |
C-x r i |
M-x insert-register |
Prompts for register letter. Inserts the text saved in that
register at point. |
Position Registers |
C-x r SPC |
M-x point-to-register |
Prompts for register letter. Saves point in register. |
C-x r j |
M-x jump-to-register |
Prompts for register letter. Jumpts to point saved in that
register. |
Bookmarks |
C-x r m |
M-x bookmark-set |
Prompts for bookmark name (default is buffer name). Saves
point in a bookmark. This information is saved even if you close
Emacs. |
C-x r b |
M-x bookmark-jump |
Prompts for bookmark name. Jumpts to point saved in that
bookmark (Even if you had closed your emacs session). |
C-x r l |
M-x bookmark-bmenu-list |
Lists all saved bookmarks. Typing "j" when on a bookmark jumps
to the file. Dired commands are used to delete bookmarks (Type "d" when on
file - then "x" to delete bookmark). |
Rectangles - (Priceless) |
C-x r o |
M-x open-rectangle |
Opens rectangle of whitespace between point and mark. |
C-x r t |
M-x string-rectangle |
Replaces text between point and mark with rectangle of text
(prompts for text). This is a major timesaver. Typing
C-x r t "Other Text" RET would replace
<mark> |
Some Text Some Text Some Text<point> |
With |
<mark> |
Other Text Other Text Other
Text<point> | |
C-x r k |
M-x kill-rectangle |
Kills text between point and mark and places in rectangle kill
ring. |
C-x r y |
M-x yank-rectangle |
Inserts last killed rectangle at
point. |