#LyX 2.3 created this file. For more info see http://www.lyx.org/ \lyxformat 544 \begin_document \begin_header \save_transient_properties true \origin unavailable \textclass article \use_default_options false \maintain_unincluded_children false \language english \language_package default \inputencoding auto \fontencoding global \font_roman "default" "default" \font_sans "default" "default" \font_typewriter "default" "default" \font_math "auto" "auto" \font_default_family default \use_non_tex_fonts false \font_sc false \font_osf false \font_sf_scale 100 100 \font_tt_scale 100 100 \use_microtype false \use_dash_ligatures true \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_package amsmath 1 \use_package amssymb 1 \use_package cancel 1 \use_package esint 1 \use_package mathdots 1 \use_package mathtools 1 \use_package mhchem 0 \use_package stackrel 1 \use_package stmaryrd 1 \use_package undertilde 1 \cite_engine basic \cite_engine_type default \biblio_style plain \use_bibtopic false \use_indices false \paperorientation portrait \suppress_date false \justification true \use_refstyle 0 \use_minted 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 \is_math_indent 0 \math_numbering_side default \quotes_style english \dynamic_quotes 0 \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 11/3/2020 \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 very 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 encountered. \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 single character a-z or 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 P \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 backwards 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 \begin_inset Text \begin_layout Plain Layout \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout -1^X \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Searches are case sensitive \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0^X \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Searches are case insensitive (default) \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 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 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 Copy & 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