This is an old revision of the document!


Emacs Cheatsheet

Basic Movement and Editing Commands

C-x C-f Find file and load into buffer (Emacs prompts for filename)
C-x C-s Save the current buffer
C-x C-w Save the current buffer under a different name (Emacs prompts for the new name)
C-x C-c Quit Emacs, prompting if you have not saved any buffers
Arrow keys or C-f, C-b, C-n, C-p Right (forward), left (back), down (next), up (previous), respectively
C-k Delete from cursor to end of line
C-a Go to start of line
C-e Go to end of line
C-v Go down a page
M-v Go up a page
M-f Go to next word
M-b Go back one word
M-a Go to previous sentence
M-b Go to next sentence
C-x u Undo
C-g Abort the current command
C-l Redraw and center screen at cursor
M-< Go to start of buffer
M-> Go to end of buffer
C-d Delete next character
M-d Delete next word
M- Execute shell command on region
Backspace Delete previous character

Kill & Yank (Cut/Copy and Paste)

C-space Set the mark
C-w Cut (kill)
M-w Copy (kill)
C-y Paste (yank)
M-y Paste (yank) next saved selection
C-x h Set point to start of buffer and mark to end of buffer (select the entire buffer)
C-x C-x Swap point and mark

Search & Replace

C-s Incremental search forward
C-r Incremental search backward
C-M-s Regexp search forward
C-M-r Regexp search backward
M-% Search and replace
M-x query-replace-regexp Search and replace with regexps
C-g Abort a search
C-w During a search, highlight the word around the cursor
Up, down arrow keys or M-p, M-n Access search string history

Case Change

M-u uppercase word
M-l lowercase word
M-c capitalize word
C-x C-u uppercase region
C-x C-l lowercase region

Emacs Modes

M-x modename Toggle the given major or minor mode
C-h m Display help on the current major mode, including any special key bindings in effect
M-q Used in text-mode to reformat a paragraph of text manually
M-x global-font-lock-mode Toggle syntax highlighting

Buffers

C-x b Switch to another buffer
C-x C-b Display buffer list
C-x k Kill current buffer (Emacs prompts for confirmation)
M-x iswitchb-mode Enable iswitch mode, for smart buffer name completion with C-x b

Windows

C-x 0 Close this window
C-x 1 Close all other visible windows
C-x 2 Split horizontally
C-x 3 Split vertically
C-x o Switch to other window
C-M-v Scroll other window

Dired Mode

M-x dired Load dired mode (Emacs prompts for directory name)
C-x C-f Dired mode loaded when a directory is specified as load file
Left, right arrow keys or p, n Previous and next file, respectively
Enter Visit this file in this window
o Visit this file in a new window
g Refresh directory view
m Mark file
u Un-mark file
d Mark a file for later deletion
x Delete all files marked for deletion (Emacs prompts for confirmation)
D Delete this file right now (Emacs prompts for confirmation)
C Copy this file, or copy currently marked files (Emacs prompts for destination)
R Rename/move this file, or rename/move currently marked files (Emacs prompts for destination)
M Chmod this file, or chmod currently marked files (Emacs prompts for new permissions)
O Chown this file, or chown currently marked files (Emacs prompts for new owner)
G Chgrp this file, or chgrp currently marked files (Emacs prompts for new group)
+ Create directory (Emacs prompts for directory name)
! Execute shell command on this file, or currently marked files (Emacs prompts for command)

Shell Modes

M-x shell Shell mode, use M-p and M-n for command history
M-x eshell Cross-platform Emacs Lisp shell emulator, use arrow keys for command history
M-x ansi-term Full terminal emulator, suitable for full-screen applications.

Getting Help

C-h t Emacs tutorial
C-h a Apropos (Emacs prompts for keyword or regexp)
C-h i Load info browser
C-h m Display help on current mode
C-h f Display help on function (Emacs prompts for function)
C-h k Display help on key (Emacs prompts for key)
M-x man Display a man page in a new buffer (Emacs prompts for man page)

w3m mode

M-x w3m Start browsing web with emacs-w3m.
q Close all emacs-w3m windows, without deleting buffers.
Q Exit browsing web. All emacs-w3m buffers will be deleted.
RET Display the page pointed to by the link under point.
C-c C-c Submit the form at point.
R Reload the current page.
r Redisplay the current page.
TAB Move the point to the next anchor.
M-TAB Move the point to the previous anchor.
B Move back to the previous page in the history.
N Move forward to the next page in the history.
U Visit the web page.
H Go to the Home page.
M-d Download the URL.
d Download the URL under point.
\ Display the html source of the current page.
SPC Scroll up the current window, or go to the next page.
b Scroll down the current window, or go to the previous page.
> Scroll to the left.
< Scroll to the right.
. Shift to the left.
, Shift to the right.
M-l Recenter horizontally.
j Next line.
k Previous line.
l Forward char.
h Backward char.
s Display the history of pages you have visited in the session.
S Prompt for a search query and submit it to google.
v Display the bookmarks list.
a Add a url of the current page to a new bookmark.
M-a Add the url under point to a new bookmark.

Sample .emacs

  ;; Sample ~/.emacs file
  ;;
  ;; Un-comment what you want to enable and re-start Emacs
  ;;
  ;;Load iswitch mode
  ;;(require 'iswitchb)

  ;;Make text mode the default for new buffers
  ;;(setq default-major-mode 'text-mode)

  ;;Turn on refill-mode whenever text mode is entered
  ;;(add-hook 'text-mode-hook
  ;;  '(lambda () (refill-mode 1)))

  ;;Enable syntax highlighting when it's allowed
  ;;(when (fboundp 'global-font-lock-mode)
  ;;  (global-font-lock-mode t))

  ;;Fix the backspace key
  ;;(normal-erase-is-backspace-mode 1)

  ;;Use cperl-mode for editing Perl code, it is better than perl-mode
  ;;(defalias 'perl-mode 'cperl-mode)

  ;;Don't blink my cursor, please
  ;;(blink-cursor-mode nil)

  ;;Display the current time in the modeline
  ;;(display-time-mode t)

  ;;Start the emacs server
  ;;
  ;;When this is running, programs calling emacsclient open a buffer
  ;;in the already running emacs. Useful in mutt or pine for composing
  ;;mail in Emacs. Type C-x # to exit client buffer and send the text
  ;;back to the application that called it.
  ;;(server-start)

$Id: emacs-cheatsheet.html,v 1.3 2011/12/04 02:06:19 slugmax Exp $