!!!Emacs Editor

The emacs editor

!! Exiting Emacs

| exit | ^X^C

!!Files

|^x ^f|read a file into emacs
|^x ^s|save a file
|^x s|save all files
|^x i|insert a file at current location
|^x ^w|write buffer to a named file

!!Motion

|^a | beginning of line
|^e | end of line
|Esc < | beginning of buffer
|Esc > | end of buffer

!!Deleting

| ^d | delete character
| Esc d | delete following word
| Esc Del | delete previous word
| ^k | delete to end-of-line
| Ctl-Shft-Bksp | delete line

!!Locations and Regions

The current position/location is considered the space between the location of the cursor and the previous character.  
This is called the point.  A point that is remembered is called a mark.
A region is between the last mark and the current cursor position (the point).

|^space | set mark here
|^x ^x | exchange point and mark
| ^u ^space | go to previous mark

!!Cutting and Pasting

Unlike other editors, rather than a single cut / paste buffer where only a single item can be cut and paste at a time,
emacs remembers all cuts and copies so that you can paste the last cut or any prior one.

| ^w | delete region and put on kill ring
| Esc w | copy region to kill ring
| ^y | yank back (paste) the last thing in the kill ring
| Esc y | replace last yank with prior thing in the kill ring

!!Incremental Search

Incremental search differs from a typical search feature in that it starts the search with the first character and 
refines the search as you type each subsequent character in the search.  This way one may find what one is looking for
as soon as possible without typing any more characters than necessary.

| ^s | incremental search forward
| ^r | incremental search backward
| ^g | abort search

^s and ^r can be used while searching in order to find the next occurrence.

!!Search and Replace

| Esc % | interactive search & replace
| Esc x query-replace-regexp | interactive search & replace utilizing regular expressions

The following valid responses are accepted during the interactive search and replace process.

| space | replace and find next
| del | no replace, find next
| ! | replace all remaining non-interactively
| ^ | go back to previous find
| , | replace current one and don't find next
| return | exit function
| ^r | recursive edit *

* recursive edit allows you to go back to a normal edit process.  You then type "Esc ^c" to exist the recursive edit and return to the search and replace process.