Ed Cheat Sheet
Tags: learning, linux, tips, tutorial
Published: 2020-09-17 12:34:10

---
title: Ed Cheat Sheet
published: true
date: 2020-09-11 00:00:00 UTC
tags: [learning, Linux, tips, tutorial]
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/62332z6kyglfzso088lo.png
description: A standard cheat sheet for the standard editor.
canonical_url: https://0066cc.com/blog/edCheatSheet/
---
# What's Ed?
This post is not intended as a general introduction to Ed however the essentials you may need to know are that:
- Ed was the text editor written by [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson) while initially developing Unix.
- It is famed for its terseness, often giving no error messages or any form of communication to the user at all.
- With just a few commands you can probably match the speed you work in in your regular text editor.
 
A more general view of Ed can be found [here](https://en.wikipedia.org/wiki/Ed_(text_editor)).

# Cheat Sheet
Note that X and Y are used to indicate user-given values. 
FILE is used to indicate a user-given filename.

## Single Commands

| Command | Description |
| --- | --- |
| (Any number) | Set current line to given value if line exists. |
| P | Display prompt. |
| p | Print current line. |
| n | Same as 'p' but print with line numbers. |
| H | Display verbose errors. |
| a | Append : insert new line and start editing. |
| i | Insert: start editing on line above current line. |
| c | Replace current line. |
| w | Write (save) file |
| z | Print as much of the file as will fit on the screen. Set current line as last visible line. |
| l | Place a `$` at the end of a command to show where a line ends, useful for showing trailing white space. |
| u | Undo last command. |
| $ | Go to last line of file. |
| + | Go to next line. |
| - | Go to previous line. |
| = | Current line number. |
| . | Exit edit mode. |
| , | Symbol that indicates the entire file. |
| ; | Current line to end of file. |

## Compound Commands

| Command | Description |
| --- | --- |
| wq | Write and quit. |
| ,p | Print whole file to screen. |
| ,n | Print current line with line number. |
| XmY | Move line X and insert it after line Y. |
| ,np | Print numbered listing of all lines. |
| XzY | Starting on line X, print the next Y lines. |
| Xd | Delete line X. |
| Xr FILE | Read a file in and insert it at line X. |
| X,Yj | Join line X to Y. |
| XtY | Copy line X to Y. |
| XW FILE | Append line X to another file. |
| X,YW FILE | Append lines X through Y to another file. |
| f X | When saving the file, save it as X (effectively a save as option). |
| e X | Switch to editing file X. |
| E X | Force switch to other file without checking if current file has been saved. |
| X,Yw FILE | Save the text between lines X and Y to another file. |
| !X | Run command X outside of `ed` and return. |
| !! | Run previous external command again. |
| r !X | Read external command X into the current file. |
| w !X | Write your current program to another file/program. This functions similarly to Unix Pipes. |
| kX | Assign a bookmark called X. Bookmarks can only be assigned to the current line. |
| 'X | Go to bookmark X. |
| /X/ | Search for X on current line. |
| g/X/p | Search for X on all lines and print matching lines. |
| g/X/np | Search for X on all lines and print matching lines with line numbers. |
| $= | Print last line number. |
| .= | Display current line number. |