Some Emacs Basics
Emacs is a class of text editors that have an extensive set of features and that are popular with computer programmers and other technically proficient computer users.
GNU Emacs, a part of the GNU project, is under active development and is the most popular version. The GNU Emacs manual describes it as “the extensible, customizable, self-documenting, real-time display editor.” It is also the most portable and ported of the implementations of Emacs. As of March 2008, the latest stable release of GNU Emacs is version 22.2. Emacs should be included in most distro’s or easily installable from your distro’s repo’s.
Emacs Basics
These are only some very basic facts about emacs. To learn more, the on-line tutorial within emacs itself is very good. To get to it type (within emacs):
CTRL-h t
To execute Control commands, written as CTRL-letter, hold down the Control key while typing the letter indicated.
To execute Escape commands, written as ESC letter, press the Escape key (once) and then type the letter indicated.
To start emacs, type
emacs filename
and hit the Return key.
To exit emacs, type
CTRL-x CTRL-c
You will be asked whether you want to save the file.
You can also save your work without exiting, by typing
CTRL-x CTRL-s
It is a good idea to do this regularly while editing your files, although emacs is pretty good at making backup copies (the names of those files end in ~) and saving your files if the system crashes (the names of those files begin with #).
Emacs displays a certain number of characters per line until it gets to the right margin of the display. Longer lines will wrap to the next physical line; this is indicated by a \ at the end of each wrapped line. To avoid wrapping lines, either hit the Return key before you reach the right margin of the display, type ESC q to re-format a paragraph after finishing it (careful - if you don’t have blank lines around the paragraph you might end up messing up your whole document - in that case do CTRL-x u (for ‘undo’)), or choose the auto-fill option (either as a default, in your .emacs file, or by typing ESC x auto-fill-mode (a toggle, i.e. doing the same thing again will turn it off.
Getting Help
You can invoke the general emacs help files by typing CTRL-h CTRL-h and following the instructions at the bottom of the screen.
CTRL-h a FUNCTION- lists commands related to
FUNCTION CTRL-h F FUNCTION- get help about the specified function
CTRL-x 1- get rid of Help window
ESC CTRL-v- scroll Help window forward
CTRL-h i- fancy emacs information browser
Error Recovery
CTRL-g- cancel partially typed or accidental command
CTRL-l- redraw garbaged screen
CTRL-x u- undo the last change
ESC x recover-file- recover lost file
ESC x revert-buffer- restore buffer to original contents
Screen Motion
CTRL-v- scroll to next screen
ESC v- scroll to previous screen
Cursor Movement
CTRL-b- go backwards one character without deleting (usually you can also use the cursor key for this)
CTRL-f- go forward one character without deleting (usually you can also use the cursor key for this)
ESC b- go backwards one word
ESC f- go forward one word
CTRL-p- go up one line (usually you can also use the cursor key for this)
CTRL-n- go down one line (usually you can also use the cursor key for this)
CTRL-a- go to beginning of the line
CTRL-e- go to end of the line
ESC a- go to end of the sentence
ESC e- go to end of the sentence
ESC <- go to the beginning of the file
ESC >- go to the end of the file
ESC x goto-line- go to the line specified
Buffers
The buffer is the basic editing unit. One buffer corresponds to one piece of text being edited. You can have several buffers open at once, but can edit only one at a time. Several buffers can be visible at the same time when you’re splitting your window.
CTRL-x b- select another buffer
CTRL-x CTRL-b- list all buffers
CTRL-x 1- get rid of buffer list
CTRL-x k- kill a buffer
Multiple Windows
CTRL-x 0- dismiss this window
CTRL-x 1- dismiss all other windows
CTRL-x 2- split window in two horizontally
CTRL-x o- switch cursor to other window
Files
CTRL-x s- save the file
CTRL-x CTRL-w- save a file with a new name
CTRL-x CTRL-v- read a different file into emacs, replacing the current buffer
CTRL-x CTRL-f- read a different file into emacs and put it into another buffer
CTRL-x i- insert contents of another file into this buffer
Cutting and Pasting Text
In emacs, to “kill” means to delete something in a way that lets you recover it if you change your mind. DEL refers to the key on your keyboard that deletes backward one character–this may be the Backspace, Delete, or Rubout key depending on your particular keyboard.
DEL- delete previous character
CTRL-d- delete next character
ESC DEL- kill previous word
ESC d- kill next word
ESC 0 CTRL-k- kill line to beginning
CTRL-k- kill line to end
CTRL-x DEL- kill sentence to beginning
ESC k- kill sentence to end
To move or copy a region of text in emacs, you must first “mark” it, then kill or copy the marked text, move the cursor to the desired location, and restore the killed or copied text. A region of text is defined by marking one end of it, then moving the cursor to the other end.
CTRL-@- set mark here
CTRL-x CTRL-x- exchange cursor and mark
(used to verify you have marked the desired region) ESC h- mark current paragraph
CTRL-x h- mark entire buffer
CTRL-w- kill the marked region
ESC w- copy the marked region
All killed text (except single characters deleted with DEL or CTRL-d) can be restored to the buffer. The most recently killed text is the first to be restored, then previously killed text blocks are restored in reverse order.
CTRL-y- re-insert (’yank’) the last text that was killed
ESC y- replace that restored text with previously killed text.
Repeated use will cycle through killed text blocks in reverse order.
Searching and Replacing
In both forward and backward incremental searching, you can repeat the same command for next occurrences. The right cursor key exits the current search without moving the cursor. CTRL-g aborts the current search and moves the cursor back to the initial position.
CTRL-s- incremental search forward.
Note: On some terminals and serial connections,CTRL-scauses the display to freeze. If this happens, useCTRL-qto fix the problem, and useESC x search-forward(CTRL-x Escfor further occurrences). CTRL-r- incremental search backward
ESC %- (query-replace) - ask before replacing each OLD STRING with NEW STRING. Type
yto replace this one and go to the next one, and typento skip to next without replacing. ESC x replace-string- replace all occurrences of OLD STRING with NEW STRING.
If you need to replace aReturncharacter (^J), type CTRL-j instead (because typingReturnis interpreted directly in the minibuffer). -
ESC-x list-matching-lines - lists all the lines matching your pattern in a separate buffer, along with their numbers. Use
ESC-x goto-lineto go to the occurrence you’re interested in.
Keyboard Macros
Not everyone will agree these are ‘basic’, but they’re extremely useful if you tend to do repetitive things and want to avoid getting Carpal Tunnel Syndrome…
-
CTRL-x ( - lets you start define a keyboard macro - basically records what you do, so do exactly what you want your macro to do (with some slight differences - e.g.\ in the new version of emacs on turing i-searches have to be terminated by
Returnin a macro, but not otherwise). -
CTRL-x ) - end the definition of the keyboard macro
-
CTRL-x e - executes the keyboard macro. You can also tell it how many times to execute the macro, for example if you want it executed 15 times, type
CTRL-u 15 CTRL-x e. If you want your macro to be executed indefinitely, i.e until it runs out of things to do, useCTRL-u 0 CTRL-x e.
Here is a Reference Card from DCG, another Reference Card, and a comprehensive Emacs Manual














Post a comment