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 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
EBfileEsc Open file for Both input and output
ERfileEsc Open file for Read-only (input)
EWfileEsc Open file for Write-only (output)
Y Initialize buffer and read from input file (one page)
P Append buffer to output file, reinitialize buffer, read next Page from input file
EX Write buffer to output file and EXit
^C ^C Abandon buffer changes and exit
[n]C Move one/n Character(s) forward
Move one/n Character(s) backward (Reverse)
[n]L Move to beginning of first/nth following Line
-[n]L Move to beginning of first/nth preceding Line
0L Move to beginning of current line
:L Move to end of current Line
[n]J Jump to first/n+1 character in buffer
ZJ Jump to end of buffer
[n]T Type from current position to end of current/n-1 following line(s)
0T Type from beginning of line to curent position
-[n]T Type one/n preceding line(s) and current line up to position
HT Type whole buffer
Useful Combinations
0TT Type current line (current position unchanged)
0LT Type current line, moving position to beginning of line
ItextEsc Insert text at current position
[n]D Delete one/n character(s) after position
-[n]D Delete 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
[n]StextEsc Search for next/nth occurrence of text
[n]FStext1Esctext2Esc Replace next/nth occurrence of text1 with text2
[n]Xq Copy from position through end of current/n-1 following line(s) to register q (single character A-Z, 0-9)
Gq Insert text in register q into buffer at current position