What is Emacs?
- Emacs is another editor available in UNIX. Like vi, emacs is a screen editor. Unlike vi, emacs is not an insertion mode editor, meaning that any character typed in emacs is automatically inserted into the file, unless it includes a command prefix.
- Commands in emacs are either control characters (hold down the <Ctrl> key while typing another character) or are prefixed by one of a set of reserved characters: <Esc> or <Ctrl>-X. The <Esc> key can be typed by itself (because it really is a character) and then followed by another character; the <Ctrl> key must be held down while the next character is being typed. The conventions for describing these characters (since it takes too long to type out the whole thing) are ESC means <Esc> and C- means <Ctrl>.
- One other distinction between emacs and vi is that emacs allows you to edit several files at once. The window for emacs can be divided into several windows, each of which contains a view into a buffer. Each buffer typically corresponds to a different file. Many of the commands listed below are for reading files into new buffers and moving between buffers.
- To use emacs on a file, type
emacs filename
If the file named filename exists, then the first screen's worth of the file is displayed; if it doesn't exist, a help message is displayed. - The easiest way to learn emacs is to start it up and go through the on-line tutorial. To access the on-line tutorial, type
ESC help-with-tutorial
immediately after you have started emacs. The tutorial directs you further in learning the basic commands. One notational point you should know is that the tutorial uses M- to mean ESC. - To give you a head start, the following table lists the basic commands you need to know to use emacs to edit a file. An asterisk (* or star) to the left of a command indicate it is one to learn immediately.
Help Commands
* | C-h | help-command: first character in lots of useful help commands |
---|---|---|
* | C-h t | help-with-tutorial: command to run the tutorial |
C-h i | information: describes most of the emacs commands in man style pages | |
C-h k | describe-key: tells you what a particular key stroke does | |
* | C-h a | command-apropos: prompts for a string and then searches for all emacs commands that contains that string |
ESC ? | also does command-apropos | |
* | C-h ? | help-for-help: describes how to use the help facilities |
File Reading and Writing Commands
* | C-x C-f | find-file: first prompts for a filename and then loads that file into a editor buffer of the same name |
---|---|---|
* | C-x C-s | save-buffer: saves the buffer into the associated filename |
C-x C-w | write-named-file: prompts for a new filename and writes the buffer into it | |
Cursor/Screen Movement Commands
- Depending on the terminal, some of the cursor movement can be handled by the arrow keys.
* | C-a | move cursor to (at) beginning-of-line |
---|---|---|
C-e | move cursor to end-of-line | |
* | C-f | move cursor forward one character |
* | C-b | move cursor backward one character |
* | C-n | move cursor to next line |
* | C-p | move cursor to previous line |
C-v | scroll file forward by one screenful | |
ESC v | scroll file backward by one screenful | |
* | ESC < | go to beginning-of-buffer |
* | ESC > | go to end-of-buffer |
ESC f | move cursor forward one word | |
ESC b | move cursor backward one word | |
Copy and Delete Commands
C-d | delete-char: delete character under cursor | |
---|---|---|
ESC d | delete-word: delete from cursor to end of word immediately ahead of the cursor | |
* | C-k | kill-line: delete the rest of the current line |
* | C-@ | set-mark-command: mark is used to indicate the beginning of an area of text to be yanked |
* | C-w | kill-region: delete the area of text between the mark and the current cursor position |
* | C-y | yank: insert at current cursor location whatever was most recently deleted |
ESC w | copy-region-as-kill: copy area between mark and cursor into kill-buffer so that it can be yanked into someplace else | |
Search Commands
* | C-s | isearch-forward: prompts for text string and then searches from the current cursor position forwards in the buffer |
---|---|---|
C-r | isearch-backward: like isearch-forward, but searches from the current cursor position to end of buffer for text string | |
ESC % | query-replace: prompts for a search string and a string with which to replace the search string | |
Window and Buffer Commands
C-x 0 | zero-window: deletes current window | |
---|---|---|
C-x 2 | double-window: splits current window into two parts, allowing you to edit at two different locations in the same file or permitting you to view two different files at the same time | |
C-x b | switch-to-buffer: display a different buffer on the screen | |
C-x o | other-window: move the cursor to the other window (assuming that you have two windows/buffers open at once | |
* | C-x C-b | list-buffers: lists those buffers currently loaded into emacs |
Exiting Emacs, Fixing Mistakes and Other Important Stuff
* | C-x C-c | save-buffers-kill-emacs: when you are finished editing, to save the edited but unsaved buffers and to return you to the UNIX prompt |
---|---|---|
* | C-g | keyboard-quit: if while typing a command you make a mistake and want to stop, this aborts a command in progress |
C-u | universal-argument: if you want to do a command several times, type this command followed by a number (for the number of times) followed by the command you wish repeated | |
* | C-x u | undo: undoes the last command typed, in case you made a mistake |
* | ESC x | execute-extended-command: prompts for the name of an emacs command; allows you to execute a command if you know roughly what it is called but cannot remember the key strokes for it |
Post a Comment