Emacs
Contents
Overview
The features of GNU Emacs include:
- Content-sensitive editing modes, including syntax coloring, for a wide variety of file types including plain text; source code (for pretty much any programming/scripting language you can imagine); LaTeX.
- Complete built-in documentation, including a tutorial for new users.
- Support for many languages and their scripts, including all the European “Latin” scripts, Russian, Greek, Japanese, Chinese, Korean, Thai, Vietnamese, Lao, Ethiopian, and some Indian scripts.
- Highly customizable, using Emacs Lisp code or a graphical customization interface.
- Games such as Tetris, Snake, etc.
- Spell checking as you type or when required (can also just check spelling of comments when in programming modes) with ability to add words.
- A large number of extensions that add other functionality, including a project planner, mail and news reader, calculator (simple or programmable), PDF viewer, web browser, debugger interface, calendar, twitter client and more. Many of these extensions are distributed with GNU Emacs; others are available separately.
Commands
After learning a few basic keystroke commands, you can become a lot more productive in Emacs.
When typing a command you can use [TAB] completion, which will complete the command name for you or list the possible commands.
Guide to keys
C-x = (hold [CONTROL], press x, then release [CONTROL])
C-x C-s = (hold [CONTROL], press x, then press s, then release [CONTROL])
M-2 = (hold [ALT], press 2, then release [ALT])
[note M = META usually [ALT] or [ESCAPE] when using [ESCAPE] as META release it before pressing the next key (i.e. M-2 = press and release [ESCAPE] then press 2)].
Written commands
Sometimes the required action doesn't have an associated key-sequence, in these cases the written command must be used (M-x is pressed followed by the command):
ispell-buffer = (hold [ALT], press x, release [ALT], then type "ispell-buffer" in the mini buffer)
Lookup table
The following is a lookup table of basic commands. Emacs has so many commands it would be impossible to list them all, but hopefully this will be enough to get you started.
Action | Key-sequence | Command |
---|---|---|
Open file | C-x C-f | find-file |
Close | C-x C-c | save-buffers-kill-emacs |
Save file | C-x C-s | save-buffer |
Save as | C-x C-w | write-file |
Page down | C-v | scroll-up |
Page up | M-v | scroll-down |
Goto top | M-< | beginning-of-buffer |
Goto end | M-> | end-of-buffer |
Goto line | M-g g | goto-line |
Goto start of line | C-a | beginning-of-line |
Goto end of line | C-e | end-of-line |
Search forwards | C-s search term | isearch-forward search term |
Repeat last search forwards | C-s C-s | isearch-repeat-forward |
Search backwards | C-r search term | isearch-backward search term |
Repeat last search backwards | C-r C-r | isearch-repeat-backward |
Cancel command | C-g | keyboard-quit |
Kill line | C-k | kill-line |
Kill sentence | M-k | kill-sentence |
Yank last kill | C-y | yank |
Yank previous kill | M-y | yank-pop |
Split window horizontally | C-x 2 | |
Split window vertically | C-x 3 | |
Swap active window | C-x o | |
Merge windows | C-x 1 | |
List buffers | C-x C-b | list-buffers |
Switch to buffer | C-x b | switch-to-buffer |
Switch active buffer left | C-x [LEFT] | previous-buffer |
Switch active buffer right | C-x [RIGHT] | next-buffer |
Kill Buffer | C-x k | kill-buffer |
Spell-check current buffer | none | ispell-buffer |
Spell-check current word | none | ispell-word |
Indent code | C-M-\ | indent-region |
Goto matching closing bracket | C-M-f | |
Goto matching opening bracket | C-M-b | |
Comment a region | M-; | comment-or-uncomment-region |
Performing other tasks
Reading
Rmail
The simplest (to set up) E-mail client in Emacs, is Rmail, to invoke Rmail press:
M-x rmail
To use Rmail for reading E-mail, other than system mail, you will have to use a program to fetch your E-mail from the server, such as fetchmail or offlineimap.
Gnus
Another option is Gnus, which is primarily a newsreader, but can also be used for reading E-mail, and can be configured to get your E-mails from the server without the aforementioned mail fetching programs, but will take a little more setting up than Rmail.
Sending
Mail can send your E-mail, which is invoked with:
M-x mail
You can also specify your: E-mail address, name, signature, etc in your ~/.emacs file, so that it is already filled in when you start composing an E-mail.
Newsreader
Gnus
Gnus is an outstanding newsreader and can be started by pressing:
M-x gnus
To use Gnus, you will first have to setup your ~/.gnus.el file, a brief guide to Gnus is available at: Gnus
IRC client
ERC is an Emacs IRC client which can be started with:
M-x erc
You must first add the following to your ~/.emacs file:
(require 'erc)
Getting Started
When you start ERC, you will be asked for some information:
IRC server:
irc.freenode.net
IRC port:
6667
Nickname:
your nickname
Password:
your password (optional)
The commands for ERC are just standard IRC commands.