You can perform useful editing with TECO, the venerable, line-noise-for-command-language Editor that Time Forgot, knowing just 3 rules and 16 commands.
|1.||ERfile$Y1||Open file for input||9.||J||Jump to beginning of file|
|2.||EWfile$1||Open file for output||10.||ZJ||Jump to end of file|
|3.||EX||Save and exit||11.||T3||Type from pointer to end of line|
|4.||^C ^C||Exit (no save)||12.||V||Type current line|
|5.||C2||Move character forward||13.||D2||Delete character at pointer|
|6.||R2||Move character backward||14.||K3||Delete current line|
|7.||L3||Move to beginning of next line||15.||Stext$||Search for text|
|8.||Itext$||Insert text||16.||FStext1$text2$||Substitute text2 for text1|
|1||Some versions of TECO accept a file name as a command line argument, making 1. and 2. unnecessary. Some versions of TECO have a command EBfile$Y that does the same as 1. and 2. in one step.|
|2||Numeric prefix: move/delete multiple characters (negative reverses direction)|
|3||Numeric prefix: move/type/delete multiple lines (negative reverses direction); (T, K only) prefix H: type/delete whole file|
TECOCis a port originally for VMS. There are four subcommands:
This is for those use TECO as a programming language. Q-Registers are like registers in assembly, and have hold a string and a number at the same time.
|1.||nUq||Save number n to register q||2.||n%q||Increment q by n, default is 1|
|3.|| ^Uq||Save string to q, the original content would be lost||4.||:^Uq||Append string to q|
|5.||Fetch the number from register||6.||nQq||ASCII value of (n+1)th character in the string|
|7.||Gq||Copy the register string into buffer||8.||:Gq||Print the register string|
The previous version of this tutorial is available here.