====== ed Cheat Sheet ======

ed is a small, powerful, line-oriented, command-line-interfaced text editor. All editors frustrate, but ed often amazes while others disappoint.

[[http://www.gnu.org/fun/jokes/ed.msg.html|ed, man! !man ed]] — ed is the standard text editor.

"man ed" for more information.

Start ed from your shell command line:

"ed //file//"

Edit file by entering ed commands with the following syntax:

"[//range//][//command//]"

//range// specifies the line or block of consecutive lines (syntax: "//from-line//,//to-line//") to which //command// is applied. Default range is the current line except where noted below with a parenthesis preceding the command syntax. Lines are specified as follows:

| //n// | line //n// | "." | current | "$" | last | "'"//c// | mark //c// |
| "-"[//n//] | up //n// (default: 1) | "+"[//n//] | down //n// (default: 1) | "," | 1,$ | ";" | .,$ |
| "?//re//?" | previous regexp match |||| "///re///" | next regexp match |||

===== Input commands =====

| "a" | Append after. | "c" | Change range. | "i" | Insert before. | "." | End input mode. |

===== Edit commands =====

| "d" | Delete. | "s///re/////s///[g|//n//][p]" | Substitute. |
| "m[//line//]" | Move after //line//. | "t[//line//]" | Copy after //line//. |
| "(.,+)j" | Join lines. | "u" | Undo. |
| "(1,$)g///re/////cmds//" | Perform //cmds// for all matching lines. | "(1,$)v///re/////cmds//" | Perform //cmds// for all non-matching lines. |

===== File commands =====

| "e [//file//<sup>*</sup>]" | Edit //file//. | "E [//file//<sup>*</sup>]" | Edit, discarding changes. |
| "($)r [//file//]" | Read and append. | "f [//file//]" | Set/display file name. |
| "(1,$)w [//file//<sup>*</sup>]" | Write. | "(1,$)W [//file//<sup>*</sup>]" | Append to //file//. |
| "(1,$)wq [//file//<sup>*</sup>]" | Write and quit. |

| <sup>*</sup> | In place of //file//, specify ""!"//shell-command//" to read/write text to //shell-command// standard output/input. |

===== Display commands =====

| "p" | List lines. | "l" | … with unprintables. | "n" | … with numbers. |
| "(+)z[//lines//]" | Scroll. | "(+)//null//" | "p" |

===== Other commands =====

| "k//c//" | Mark line. | "($)=" | Display line number. | "h" | Last error text. |
| "!//shell-command//" | Execute //shell-command//. | "q" | Quit. | "Q" | Quit, discarding changes. |

----

$Id: ed.html,v 1.5 2007/10/09 00:27:11 papa Exp $