User Tools

Site Tools


survival_teco

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
survival_teco [2023/06/29 18:42] – [Survival TECO] hc9survival_teco [2023/06/29 19:34] (current) – [Survival TECO] add "use" hc9
Line 1: Line 1:
 +====== Survival TECO ======
 +
 +Below is a subset of commands for minimal useful editing with TECO, the venerable command-based, character-oriented text editor.
 +
 +  * Commands are executed by following them with the key sequence **Esc Esc** instead of **Enter**. An arbitrarily long sequence of commands can be entered and executed together.
 +  * TECO doesn't use file name arguments passed on the command line. Instead, after starting TECO you have to specify the input and/or output file with the commands **ER**, **EW**, or **EB**, then read the input file into the edit buffer with the command **Y**.
 +  * TECO considers files containing form-feed characters (ASCII 0x0b, **^L**) to be composed of multiple pages with each page consisting of the text between form-feed characters or the beginning or end of the file. TECO will only read into the buffer and edit one page at a time. To edit a multi-page file, complete editing on the first page then use the **P** command to save the page to the output file, reinitialize the buffer, and read the next page from the input file. Once a page has been saved with the **P** command, it may not be revisited except by saving the entire file and restarting the editing process from the beginning. Repeat the process until all necessary pages have been edited. The **EX** command automatically copies any unedited pages in the input file to the output file before exiting.
 +
 +^  File I/O and Termination  ^^
 +| EB//file//**Esc** | Open //file// for **B**oth input and output |
 +| ER//file//**Esc** | Open //file// for **R**ead-only (input) |
 +| EW//file//**Esc** | Open //file// for **W**rite-only (output) |
 +| Y | Initialize buffer and read from input file (one page) |
 +| P | Append buffer to output file, reinitialize buffer, read next **P**age from input file |
 +| EX | Write buffer to output file and **EX**it |
 +| **^C ^C** | Abandon buffer changes and exit |
 +^  Movement  ^^
 +| [//n//]C | Move one///n// **C**haracter(s) forward |
 +| -[//n//]C\\ [//n//]R | Move one///n// **C**haracter(s) backward (**R**everse) |
 +| [//n//]L | Move to beginning of first///n//th following **L**ine |
 +| -[//n//]L | Move to beginning of first///n//th preceding **L**ine |
 +| 0L | Move to beginning of current line |
 +| :L | Move to end of current **L**ine |
 +| [//n//]J | **J**ump to first///n//+1 character in buffer |
 +| ZJ | **J**ump to end of buffer |
 +^  Display  ^^
 +| [//n//]T | **T**ype from current position to end of current///n//-1 following line(s) |
 +| 0T | **T**ype from beginning of line to curent position |
 +| -[//n//]T | **T**ype one///n// preceding line(s) and current line up to position |
 +| HT | **T**ype whole buffer |
 +^  Useful Combinations  ^^
 +| 0TT | Type current line (current position unchanged) |
 +| 0LT | Type current line, moving position to beginning of line |
 +^  Insertion  ^^
 +| I//text//**Esc** | **I**nsert //text// at current position |
 +^  Deletion  ^^
 +| [//n//]D | **D**elete one///n// character(s) after position |
 +| -[//n//]D | **D**elete one///n// character(s) before position |
 +| [//n//]K | Delete from position through end of current///n//-1 following line(s) |
 +| -[//n//]K | Delete one///n// preceding lines to current position |
 +| 0K | Delete from beginning of current line to position |
 +| :K | Delete from position to end of current line leaving end-of-line |
 +| HK | Delete whole buffer |
 +^  Search/Replace  ^^
 +| [//n//]S//text//**Esc** | **S**earch for next///n//th occurrence of //text// |
 +| [//n//]FS//text1//**Esc**//text2//**Esc** | Replace next///n//th occurrence of //text1// with //text2// |
 +^  Copy/Paste  ^^
 +| [//n//]X//q// | Copy from position through end of current///n//-1 following line(s) to register //q// (single character A-Z, 0-9) |
 +| G//q// | Insert text in register //q// into buffer at current position |
 +
 +===== References =====
 +
 +  * [[http://www.avanthar.com/~healyzh/_info_/its.primer|Golden, V. Ellen. An Introduction to ITS for the MACSYMA User. Massachusetts Institute of Technology Laboratory for Computer Science Mathlab Group. 14 April 1981.]] - <nowiki><http://www.avanthar.com/~healyzh/_info_/its.primer></nowiki> accessed 4 June 2010.
 +  * [[http://www.avanthar.com/~healyzh/teco/TecoPocketGuide.html|TECO Pocket Guide. Digital Equipment Corporation. 1978.]] - <nowiki><http://www.avanthar.com/~healyzh/teco/TecoPocketGuide.html></nowiki> accessed 4 June 2010.
 +  * [[http://www.hactrn.net/sra/alice/alices.pdp10|You can hack anything you want, with TECO and DDT.]]
 +
 +----
 +
 +<nowiki>|Edited with|</nowiki>**TECO**|
 +
 +$Id: survival-teco.html,v 1.4 2010/06/12 09:44:01 papa Exp $ [[http://sdf.org/?tutorials/survival-teco|Survival TECO]] - traditional link (using [[wp>Revision_Control_System|RCS]])