#LyX 2.0 created this file. For more info see http://www.lyx.org/
\lyxformat 413
\begin_document
\begin_header
\textclass article
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize 11
\spacing single
\use_hyperref false
\papersize letterpaper
\use_geometry true
\use_amsmath 1
\use_esint 1
\use_mhchem 0
\use_mathdots 1
\cite_engine basic
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\use_refstyle 0
\index Index
\shortcut idx
\color #008000
\end_index
\leftmargin 1in
\topmargin 1in
\rightmargin 1in
\bottommargin 1in
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header
\begin_body
\begin_layout Standard
\align center
\size largest
TECO Summary
\begin_inset Foot
status open
\begin_layout Plain Layout
Blake McBride (blake@mcbride.name), rev 6/6/2015
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
Teco is a character oriented editor.
This differs from
\emph on
ed
\emph default
which is line oriented, and
\emph on
vi
\emph default
which is screen oriented.
Teco deals with one character at a time and makes only little distinction
between one line and another.
Therefore, at any given time, the current location teco sees is a character
position and not a line.
\end_layout
\begin_layout Standard
Interestingly, the original emacs editor was written as a series of teco
macros.
\end_layout
\begin_layout Standard
In what follows the $ character is the Escape key.
$ is used to separate one command from another.
$$ is used to cause teco to execute the entire command.
Therefore, teco doesn't actually do anything until $$ is hit.
\end_layout
\begin_layout Standard
Even though the command are shown in capitol letters, one would normally
use lower case letters.
They are shown in upper case to avoid confusion (l vs.
L, etc.).
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Escape key - command delimiter
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
$$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Two escape keys - execute string
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
n
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Some number (implied default is usually 1)
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
file
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
The name of a file
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
text / find / replace
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Arbitrary text
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
q
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
A named storage area called a q-register.
Use any
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
character a-z and 0-9 to name the register.
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
Exiting
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
EX$$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
save & exit
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
-1EX$$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Forced exit without saving
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
File commands
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
EC
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Save, close, and clear current buffer
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
EKHK
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Abort edit
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
EBfile$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Open file
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Y
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Read file
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
Displaying text (not for Video Teco)
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
T
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Type current character to EOL
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
HT
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Type entire file
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nT
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Type n lines starting at current character
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
V
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
View entire line
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nV
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
View n lines around current line
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace vfill
\end_inset
\begin_inset Newpage pagebreak
\end_inset
\end_layout
\begin_layout Standard
Cursor movement commands
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
\series bold
Macro
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\series bold
Command
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\series bold
Description
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nC
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Move n characters forward
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nR
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Move n characters reverse
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nL
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Move n lines forward (to the beginning of that line)
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nBW
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Go to beginning of n'th next (previous if negative) word
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nEW
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Go to end of n'th next (previous if negative) word
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
BL
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
0L
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Move to beginning of line
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
EL
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
L-2C
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Move to end of line
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nJMP
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Go to line n
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
J
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Beginning of buffer
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
ZJ
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
End of buffer
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nStext$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Search forward for the n'th occurrence of text (leaves point at end of text)
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
S$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Search again
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
-nStext$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Search backwords for text
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nES
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Scroll screen n lines
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
Entering text
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
Itext$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Insert text
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nFSfind$replace$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Find and replace n'th occurrence of text
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
Deleting text
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
\series bold
Macro
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\series bold
Command
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\series bold
Description
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nD
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Delete n characters
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
nDW
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Delete n following (previous if negative) words
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
DLR
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Delete line remainder
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
K
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Delete from current position to beginning of next line
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
0K
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Delete from current position to beginning of the line
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
0KK
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Delete entire line
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
0KnK
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Delete n lines from current line
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
HK
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Delete entire buffer
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
FDtext$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Find & delete text
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
FKtext$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Delete from point to beginning of text
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
FRtext$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Replace last found text with text
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
Variables
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
B
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Zero
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Z
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Number of characters in file
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
H
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
B,Z
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
.
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Current position
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
x=
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Display value of variable x
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
\begin_inset Newpage newpage
\end_inset
\end_layout
\begin_layout Standard
Cut & Paste
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
nXq
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Copy text from current position and the next n lines into q-register
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
n.mXq
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Copy text from character positions n to m into q-register q
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
.,.+5Xq
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Copy following 5 characters into q-register q
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Gq
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Insert contents of q-register into current position (paste)
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
E%qFILE$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Save q-register to file FILE
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
EQqFILE$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Read file contents into q-register (good for insert file)
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
Iteration
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
n
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Execute CMD n times
\end_layout
\end_inset
|
\end_inset
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
\series bold
\size largest
Macros
\series default
\size default
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
One can put a series of teco commands in a file and execute that command
file while editing a file.
This is one way teco macros are created.
Within one of these command files the $ character acts like an escape key.
Once command files are created they can be executed as follows:
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
EIfile$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Execute command file when the command line is complete
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
EIfile$$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Execute command file immediately
\end_layout
\end_inset
|
\end_inset
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
\series bold
\size largest
Q-Registers
\series default
\size default
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
Commands, text, and contents of files can also be put into and executed
from q-registers.
These are in-memory registers named with a single character a-z or 0-9.
The following operations are supported:
\end_layout
\begin_layout Standard
\begin_inset VSpace bigskip
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Tabular
\begin_inset Text
\begin_layout Plain Layout
^UqCMD$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Put CMD into q-register q (note ^U are two characters, not ctl-U)
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
EQqFILE$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Put contents of file FILE into q-register q
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Mq
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Execute q-register q
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
E%qFILE$
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Save contents of q-register q to file FILE
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
:Gq
\end_layout
\end_inset
|
\begin_inset Text
\begin_layout Plain Layout
Display contents of q-register q
\end_layout
\end_inset
|
\end_inset
\begin_inset VSpace bigskip
\end_inset
\end_layout
\end_body
\end_document