home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / editors / tde150.arj / TDE.DOC < prev    next >
Text File  |  1992-04-01  |  51KB  |  1,121 lines

  1.  
  2.                       tde, the Thomson-Davis Editor
  3.                                Version 1.5
  4.                               April 1, 1992
  5.                                Frank Davis
  6.  
  7.  
  8. Description:
  9.  
  10.    tde is a simple multi-file/multi-window text editor.  It is suitable
  11.    for editing batch files, text files, and various computer language
  12.    source code files.  The only limit on the number and size of files
  13.    that tde can handle is the amount of conventional memory.  Likewise,
  14.    the only limit on the number of windows is the amount of conventional
  15.    memory.  There is no preset maximum number of files or windows that may
  16.    be open at any one time.
  17.  
  18.  
  19. Usage:
  20.  
  21.   At the command line type:
  22.  
  23.         tde [file name(s)]
  24.  
  25.   For example:
  26.  
  27.         tde
  28.         tde foo.bar
  29.         tde c:\c60\tde\main.c
  30.         tde *.c  \qc25\tde\*.h
  31.         tde foo.bar  foobar  f*  foo.*  f??b??
  32.  
  33.   If you don't enter a file name at the command line, tde will prompt you
  34.   for a file name.  If the file does not exist, tde starts out with an
  35.   empty file with the file name you just entered.
  36.  
  37.   tde will handle files as large 465k.  If you try to edit a file larger
  38.   than 465k, only the first portion of the file is loaded into tde.  With
  39.   DOS 5.0, you can edit files as large as 515k if you load DOS high.  tde
  40.   will handle lines as long as 255 characters.  Only the first 255
  41.   characters of long lines are handled - long lines are not truncated.
  42.  
  43.   Starting with tde version 1.3, you can enter multiple file names on the
  44.   command line.  File names may even have wild card characters, * or ?,
  45.   embedded in the name.  To bring in those files, press the EditNextFile
  46.   key, Alt-F4 in the distribution version, at any time.  There are no
  47.   restrictions on how you enter file names, just put any combination of
  48.   valid file names on the line and tde will load the next file when Alt+F4
  49.   is pressed.
  50.  
  51.  
  52.                    New features in tde 1.5 include :
  53.  
  54.                       Ruler                     = @R
  55.                       Block trim trailing       = @T
  56.                       User defined macros:
  57.                          Record macro           = @F3
  58.                          Save macros to file    = #F1
  59.                          Load macros from file  = #F3
  60.                          Clear macro buffer     = ^ESC
  61.                       Critical error handler
  62.  
  63.   If by accident you forget to put a diskette in a floppy drive and try
  64.   to save a file on that diskette or if you forget to turn on the printer
  65.   before printing a block or file, a critical error occurs.  That kind of
  66.   error is the infamous Abort, Retry, Ignore thing.  A routine was written
  67.   to give some information on the kind and the location of those errors
  68.   when they occur.  The tde critical error handler gives you all kinds of
  69.   info and then prompts you for a response.  The timeout for critical
  70.   errors varies quite a bit.  Some timeouts may take a couple of minutes.
  71.  
  72.   When I "work" at the USDA, I often need to create or massage formatted
  73.   data files.  Also, a lot of engineers and scientists at the USDA program
  74.   in FORTRAN and the source code needs to be in a certain format.  When
  75.   working with those types of files, it is really useful to have a ruler
  76.   that explicitly shows which column the cursor is in.  The new ruler in
  77.   tde shows margins, column numbers, and a column pointer.
  78.  
  79.   A feature that should really prove useful is a simple macro record and
  80.   playback function.  To use it, press the macro record key and the key
  81.   you want to assign the recording to.  Then, enter the keystrokes that
  82.   you want recorded.  When you get through, press the record macro key to
  83.   turn recording off.  Whenever you press the key that was assigned the
  84.   recording, it plays back the keystrokes just like they were entered from
  85.   the keyboard.   Any unused function key may be assigned a recording.
  86.   It does not playback answers to prompts.
  87.  
  88.   A typical American, I can only speak and write English and not very
  89.   good, either, my ownself.  For those who are multilingual and speak more
  90.   than one language, you may use macros to assign any ASCII or Extended
  91.   ASCII character to unused function keys.  Some languages use characters
  92.   with marks like the cedilla, dieresis, acute, circumflex, grave, breve,
  93.   tilde, etc...  Just use the macro record function and assign the
  94.   characters as needed.  For example, the Alt+A key could be assigned to Ä
  95.   or the Control+E key could be assigned to é.  The ALT + SHIFT + alphabet
  96.   characters have been added to version 1.4 for just this purpose.
  97.  
  98.  
  99.                    New features in tde 1.4 include :
  100.  
  101.               Split screen vertically            = F8
  102.               Number box block                   = Alt+N
  103.               Directory list                     = Alt+F1
  104.  
  105.   Also added in tdecfg was a choice of cursor styles and a switch for .bak
  106.   files.  Both of those options are in the mode section of tdecfg.
  107.  
  108.  
  109.                    Features in tde 1.3 include :
  110.  
  111.    User configurable color cursor line
  112.    Cursor sync.  - useful for comparing files       = Ctrl+F1
  113.    Horizontal char left                             = Shift+Ctrl+left
  114.    Horizontal char right                            = Shift+Ctrl+right
  115.    BackTab function                                 = Shift+tab
  116.    Added support for stream blocks                  = Alt+X
  117.    Added toggle for writing Control Z at eof        = Alt+Z
  118.    Word Wrap toggle                                 = Alt+V
  119.    Set Left margin                                  = Ctrl+F6
  120.    Set Right margin                                 = Ctrl+F7
  121.    Set Paragraph margin                             = Ctrl+F8
  122.    Left justify                                     = Alt+F8
  123.    Right justify                                    = Alt+F9
  124.    Center justify                                   = Alt+F10
  125.    Format paragraph                                 = Alt+F7 or Ctrl+B
  126.    Format text (format forward from cursor)         = Alt+N
  127.    RepeatFindForward2                               = Alt+F5
  128.    RepeatFindBackward2                              = ALt+F6
  129.    Toggle eol (end of line) display                 = Ctrl+F2
  130.    Added toggle for writing <CR><LF> or <LF> at eol = Ctrl+F3
  131.    Toggle trimming trailing space at eol            = Ctrl+F4
  132.    Block to upper case                              = Alt+<
  133.    Block to lower case                              = Alt+>
  134.    Block strip hi bit - useful with WordStar files  = Alt+?
  135.    SetMarker1                                       = Alt+1!
  136.    ...                                                ...
  137.    SetMarker3                                       = Alt+3(
  138.    GotoMarker1                                      = Shift+Alt+1!
  139.    ...                                                ...
  140.    GotoMarker3                                      = Shift+Alt+3)
  141.    Set file attributes                              = Alt+F2
  142.    Allow multi-file names at command line, eg.      = Alt+F4
  143.  
  144.          tde *.c
  145.          tde *.bat *.doc
  146.          tde *.bat  my.doc  other.doc  *.dat
  147.  
  148.  
  149.  
  150.                           <CR><LF> or <LF> at eol
  151.  
  152.   The functions that write to files were expanded to allow you to choose
  153.   whether you want to write a <CR><LF> or just a <LF> at the end of line.
  154.   Some programs look for just the <LF> at the eol while others want the
  155.   <CR><LF> pair at the eol.  tde has no trouble reading either style but
  156.   allows you to specify the output style.  You may change the style by
  157.   pressing the ToggleCRLF function key or by using tdecfg to set the
  158.   default.  Here's a little diagram that may help explain the new
  159.   functions better than I can write.
  160.  
  161.  
  162.                                                             Output
  163.         Input        tde's internal representation          Toggle
  164.  
  165.          files       ┌────────────────────────────┐          files
  166.          with        │ tde will read files with   │          with
  167.        <CR><LF> ====>│ lines that terminate in    │ =====> <CR><LF>
  168.         at eol       │ either <CR><LF> or <LF>.   │         at eol
  169.                      │                            │
  170.                      │                            │
  171.          files       │ Internally, all lines end  │          files
  172.          with        │ with the <LF> character.   │          with
  173.          <LF>  =====>│                            │ =====>   <LF>
  174.         at eol       └────────────────────────────┘         at eol
  175.  
  176.  
  177.   The default file function assignments write the <CR><LF> pair at the
  178.   eol.  Please feel free to change the function key assignments to suit
  179.   your needs.
  180.  
  181.  
  182.  
  183. Editor fields and information lines:
  184.  
  185.  
  186.                                Sample tde screen
  187.  
  188.  
  189.          ┌─── File number - each window opened to same file has same number
  190.          │ ┌─── Window letter
  191.          │ │
  192.          │ │    ┌─── Dirty file indicater - asterisk
  193.          │ │    │ ┌─── File name
  194.          │ │    │ │                    ┌──── File attributes
  195.          │ │    │ │                    │    ┌──── Total number of lines in file
  196.          │ │    │ │                    │    │                  ┌─── line:column
  197.                                                          
  198.       ┌──────────────────────────────────────────────────────────────┐
  199.       │    The first line on the screen contains file information    │
  200.       ├──────────────────────────────────────────────────────────────┤
  201.       │........1.....   Optional ruler line    ......5........6..│
  202.       ├──────────────────────────────────────────────────────────────┤
  203.       │                                                              │
  204.       │                                                              │
  205.       │                          File area                           │
  206.       │                                                              │
  207.       │                                                              │
  208.       │                                                              │
  209.       ├──────────────────────────────────────────────────────────────┤
  210.       │                 Editor modes and information                 │
  211.       └──────────────────────────────────────────────────────────────┘
  212.                                                           Insert
  213.         │   │    │      │       │    │     │     │     │    │     └─ Overwrite
  214.         │   │    │      │       │    │     │     │     │    └───── ^Z at eof?
  215.         │   │    │      │       │    │     │     │     └───── trim trailing
  216.         │   │    │      │       │    │     │     │     space at eol, T = TRUE
  217.         │   │    │      │       │    │     │     │
  218.         │   │    │      │       │    │     │     └───── CRLF or LF at eol?
  219.         │   │    │      │       │    │     └───── word wrap indicator
  220.         │   │    │      │       │    └───── Sync cursor in all windows?
  221.         │   │    │      │       └───── Ignore / Match search case?
  222.         │   │    │      └───── Indent mode?
  223.         │   │    └───── Available memory for editing files
  224.         │   └───── Total number of windows, including hidden windows
  225.         └───── Total number of open files
  226.  
  227.  
  228.  
  229. Multiple keys:
  230.  
  231.   I use the following abbreviated key definitions throughout this file:
  232.  
  233.                 ^ = Control       # = Shift       @ = Alt
  234.  
  235.   For example, ^F5 means press and hold the Control key and then press F5
  236.   while holding down the Control key.  You will have two keys depressed
  237.   together at the same time.  The function assigned to that key
  238.   combination will be executed as soon as the second key is pressed.  You
  239.   may release the keys in any order you choose.
  240.  
  241.  
  242. Cursor movement:
  243.  
  244.                             101 Keyboard overview
  245.  
  246.             Cursor keys                               Keypad keys
  247.         ┌─────┬─────┬─────┐                ┌───────┬───────┬───────┬───────┐
  248.         │ Ins │Home │PgUp │                │NumLock│Grey / │Grey * │Grey - │
  249.         ├─────┼─────┼─────┤                ├───────┼───────┼───────┼───────┤
  250.         │ Del │ End │PgDn │                │ Home  │  Up   │ Pg Up │ Grey  │
  251.         └─────┴─────┴─────┘                ├───────┼───────┼───────┤   +   │
  252.                                            │ Left  │Center │ Right │       │
  253.               ┌─────┐                      ├───────┼───────┼───────┼───────┤
  254.               │ Up  │                      │  End  │ Down  │ Pg Dn │ Grey  │
  255.         ┌─────┼─────┼─────┐                ├───────┴───────┼───────┤       │
  256.         │Left │Down │Right│                │     Ins       │  Del  │ Enter │
  257.         └─────┴─────┴─────┘                └───────────────┴───────┴───────┘
  258.  
  259.                                                           
  260.     If you like using these grey                   With Num Lock off,
  261.      cursor keys, these function               you can probably guess most
  262.       assignments are for you.                of these function assignments.
  263.  
  264.           Grey cursor keys                            Keypad keys
  265.  
  266.  Up     - move cursor up                    Home   - toggle col 1 & beg of line
  267.  Down   - move cursor down                 ^Home   - first line in window
  268.  Left   - move cursor left                  Pg Up  - page up
  269.  Right  - move cursor right                ^Pg Up  - goto first page in file
  270. ^Up     - scroll screen up                  Center - move to center of window
  271. ^Down   - scroll screen down               ^Center - line to center of window
  272. ^Left   - cursor to previous word           End    - last character in line
  273. ^Right  - cursor to next word              ^End    - last line in window
  274. @Up     - fixed cursor, text scroll up      Pg Dn  - page down
  275. @Down   - fixed cursor, text scroll down   ^Pg Dn  - goto last page in file
  276. @Left   - horizontal char left              Ins    - toggle insert mode
  277. @Right  - horizontal char right             Del    - delete character
  278. @PgUp   - horizontal page left             ^Del    - stream delete character
  279. @PgDn   - horizontal page right             Grey - - scroll screen up
  280. ^#Left  - horizontal char left              Grey + - scroll screen down
  281. ^#Right - horizontal char right            ^Grey - - fixed scroll screen up
  282.                                            ^Grey + - fixed scroll screen down
  283.                                             Enter  - Insert line and move down
  284.                                            #Enter  - 1st char in next line
  285. Note:  The Alt+Cursor keys are not         ^Enter  - column 1 in next line
  286. available on 83/84 key keyboards.    
  287. Pressing the Alt + a number key on   
  288. the keypad generates a character code
  289. and not a cursor movement command.   
  290. FYI, the Alt+keypad is the method for
  291. entering any ASCII or Extended ASCII 
  292. character into the text file.        
  293.                                      
  294.  
  295.  
  296. Function Keys:
  297.  
  298.   I tried to use some logical order when I assigned functions to the
  299.   function keys.   I use a 101 keyboard most of the time, so it should be
  300.   easy to see the logical function grouping with it.  The function keys
  301.   on a 101 keyboard are placed along the top of the keyboard.  Functions
  302.   are arranged as follows:
  303.  
  304.  
  305.         Help    File                Find  &               Window
  306.               Functions          Search/Replace          Commands
  307.          F1  F2  F3  F4          F5  F6  F7  F8          F9  F10  F11  F12
  308.  
  309.  
  310.    F1 = Instantaneous Help
  311.  
  312.   @F1 = Directory List
  313.         List the contents of a directory or matching files.  At the
  314.         prompt, press enter to list all files in the current directory or
  315.         enter any valid subdirectory name, file name, or wild card
  316.         characters.  You don't have to put a *.* at the end of a
  317.         subdirectory name; the directory list function adds those wild
  318.         card characters to subdirectory names as a default.  A '\' is
  319.         added to the end of subdirectory names in the file list.  To list
  320.         the files in other directories, just move the cursor to the
  321.         desired subdirectory name and press enter.  When you see ..\ in
  322.         the directory list, the double periods represent the parent of the
  323.         current directory.  The .\ represents the current directory.  You
  324.         may move up and down the directory tree by selecting the parent
  325.         or childrens of the current directory.
  326.  
  327.  
  328. File Functions:
  329.  
  330.    F2 = Save file
  331.         Saves all changes made to file.  Existing file is overwritten by
  332.         the new file.  It does not prompt for a new file name -
  333.         automatically assumes you want to overwrite the old file.  There
  334.         is no way to get back the contents of the original file if you
  335.         use this function.
  336.  
  337.  
  338.    F3 = Quit file
  339.         Abandons any changes made in the file and closes or kicks the
  340.         file out of the current window.  If you are editing multiple
  341.         files or have multiple windows, tde searches for any invisible
  342.         files to display in the current window.  If no invisible windows
  343.         are found, tde combines windows.  If this is the only file being
  344.         edited, F3 quits tde.  If you made any changes to the file, it
  345.         asks you if you want to abandon them.  You can create an
  346.         invisible window when you load in a file over the current file.
  347.         Nothing happens to the invisible file or window - you just can't
  348.         see it.
  349.  
  350.    F4 = File (save and quit)
  351.         This function is a combination of Save and Quit (F2 & F3 above).
  352.  
  353.    #F2 = Save as
  354.         If you don't want to overwrite the original file but you want to
  355.         save the contents of the current file, you may save the file
  356.         under a different file name.  This function prompts you for a
  357.         file name to save the changes (press escape to abort).
  358.  
  359.    #F4 = Edit new file
  360.         To bring another file into the editor, use this function.  It
  361.         loads the file into the current window and previous window
  362.         becomes invisible.  You can even load several copies of the same
  363.         file.  I like this because I often need to refer back to the
  364.         original unchanged file.  Each time you load a file, it is
  365.         treated as a different file.  Be careful when you have several
  366.         copies of one file open.   Don't forget which version of the file
  367.         you want to keep.  If worse comes to worse you always quit.
  368.  
  369.    @F2 = Set file attributes
  370.         Change the attributes of a file.  Attributes are:  A = Archive,
  371.         S = System, H = Hidden, R = Read-Only.  You can change the
  372.         attributes of a file so that read-only files can be edited.  To
  373.         edit a read-only file:  1) edit the file, 2) change the file
  374.         attributes to archive, 3) save the changes made in the file, 4)
  375.         change the file attributes back to read-only.
  376.  
  377.    @F4 = Edit next file
  378.         If you type mutliple file names or type wildcard characters on
  379.         the command line, press this key to bring in the next file or the
  380.         next matching file into the editor.  You may press this key at any
  381.         time.  When I use this feature, I usually split the screen and
  382.         load the next file into a window.  This feature is useful when you
  383.         need to look in several files for a piece of code or if you know
  384.         that you are going to edit several files at the same time.
  385.  
  386.  
  387. Macros:
  388.  
  389.    @F3 = Macro record
  390.         This key toggles macro recording off and on.  A flashing
  391.         "Recording" is displayed in the lite bar, so it shouldn't be too
  392.         difficult to tell when record is on.  This function assigns a
  393.         keystroke or a series of keystrokes to an unused function key.
  394.         Any ASCII, Extended ASCII, or function key can be part of the
  395.         macro with a couple of exceptions:  1) recursion is not supported
  396.         because there is no way to break out of a macro,  2) the
  397.         RecordMacro, SaveMacro, LoadMacro, and ClearAllMacros functions
  398.         cannot be a part of the series.  As far as I know, those are the
  399.         only two exceptions.  The macro utility does not playback answers
  400.         to prompts.
  401.  
  402.         There is room for 1024 keystrokes in the macro buffer.  There are
  403.         no restrictions on the length of a single macro.  If you want, you
  404.         may define one macro that contains 1024 keystrokes.  When tde
  405.         terminates, all macros definitions disappear.  Macro definitions
  406.         are temporary.  If you want to reuse macros that are defined
  407.         during an editing session, they need to be saved before you exit
  408.         tde.  Use the load macro command to bring in a previously saved
  409.         macro file.
  410.  
  411.         For those who want to permanently assign characters or macros to
  412.         unused function keys, create your favorite macros and save them
  413.         to disk.  Then, use tdecfg, option 5, to permanently save the
  414.         macro file in tde.  Your favorite macros will be available anytime
  415.         you use tde.
  416.  
  417.    #F1 = Save macro file
  418.         Saves all macro definitions to a file.  tde prompts for the macro
  419.         file name.
  420.  
  421.    #F3 = Load macro file
  422.         Prompts for a search pattern or file name.  I can never remember
  423.         macro file or path names, so this function uses a file pick list.
  424.  
  425.    ^ESC = Clear macros
  426.         Resets or clears all macros.
  427.  
  428.  
  429. Find and Search/Replace:
  430.  
  431.    ^F5 = Toggle search case
  432.         Most of the time I don't care about matching the case of the
  433.         search pattern.  The default in tde is to ignore search case.  If
  434.         you want to consider the search case, press this key to toggle
  435.         the case flag.  The state of the flag is displayed, in English,
  436.         in the lite bar at the bottom of the screen.  You can toggle the
  437.         case of the search flag at any time, even after you define the
  438.         search pattern.
  439.  
  440.    #F5 = find forward
  441.         To define the search pattern, use this function.  It prompts you
  442.         for the search pattern.  The pattern is defined (even across
  443.         files) until changed.   If the pattern is not found, an
  444.         information message is displayed at the bottom of the current
  445.         window.
  446.  
  447.    #F6 = find backward
  448.         Same as find forward except search backward in file.
  449.  
  450.    F5 = Repeat find forward
  451.         Once the search pattern has been defined (Shift F5 or Shift F6),
  452.         you can press this key at any time in any file to find the next
  453.         occurrence of pattern.  I decided to use two sets of functions to
  454.         perform searches.  Once I found a pattern, I might do some
  455.         editing and then find the next occurrence.  I hate to define the
  456.         search pattern over and over or set the search direction over and
  457.         over.  This function does a wrap search - when it reaches the eof
  458.         it starts over at the beginning of the file.
  459.  
  460.    F6 = Repeat find backward
  461.         Like repeat find forward, you can press this key at anytime once
  462.         the search pattern has been defined.
  463.  
  464.    @F5 = Repeat find forward2
  465.         Like F5 except the cursor is not repositioned to the middle of the
  466.         screen.
  467.  
  468.    @F6 = Repeat find backward2
  469.         Like F6 except the cursor is not repositioned to the middle of the
  470.         screen.
  471.  
  472.    #F7 = Search/Replace forward
  473.         This function prompts you for the search pattern and the
  474.         replacement text.  If you want to match the search case, remember
  475.         to toggle the search flag (which can be done at any time).  You
  476.         can either do prompt or no prompt replacing.   Regardless of
  477.         prompt or noprompt replacing, this function actually moves the
  478.         cursor to the pattern and displays it on the screen and replaces
  479.         the text.  If you are using tde on a slow machine, you can see
  480.         the search/replace taking place.  I implemented the function this
  481.         way because I just like to see what the search/replace function
  482.         is doing.
  483.  
  484.         The Search/Replace functions WRAP around the file.  tde will prompt
  485.         you when this occurs.
  486.  
  487.    #F8 = Search/Replace backward
  488.         Same as search/replace forward except backwards.
  489.  
  490.  
  491. Window Functions:
  492.  
  493.    F8 = Split window vertically
  494.         Splits the screen at the current cursor location.  The current
  495.         file is displayed in multiple windows.  Changes to a file are
  496.         displayed in all windows opened to the same copy of that file.
  497.         You can also see any marked blocks in the same copy of the file
  498.         in different windows.  There has to be at least 15 columns in
  499.         any window, so the number of visible windows is limited by the
  500.         display screen.
  501.  
  502.    F9 = Split window horizontally
  503.         Splits the screen at the current cursor location.  The current
  504.         file is displayed in multiple windows.  Changes to a file are
  505.         displayed in all windows opened to the same copy of that file.
  506.         You can also see any marked blocks in the same copy of the file
  507.         in different windows.  There has to be at least 1 text line in
  508.         any window, so the number of visible windows is limited by the
  509.         display screen.  Displaying one line in a file is not all that
  510.         helpful but the ability to do so is there.
  511.  
  512.    #F9 = Resize window
  513.         Sometimes there is a need to concentrate on the contents of one
  514.         window.  You can change the size of the current window by using
  515.         this function.  Use the up and down arrow keys to adjust the
  516.         current window to desired size.  When you reach the desired size,
  517.         press either the ESC key or the Return key to make the change
  518.         permanent (the message on the screen says press ESC but either
  519.         Return or ESC will do).  Changing the size of the top window is
  520.         not allowed.
  521.  
  522.    ^F9 = Zoom window
  523.         Makes the current window fill the whole screen.  If the current
  524.         window already fills the screen then nothing is done.  All
  525.         windows on the screen when the zoom command is executed are
  526.         expanded to full size.  Additionally, all windows except the
  527.         current window become invisible.
  528.  
  529.    F10 = Next window
  530.         If more than one window is displayed, you can press one key to
  531.         move to the next open window.
  532.  
  533.    #F10 = Previous window
  534.         Move to previous window - opposite of next window.
  535.  
  536.    ^F10 = Next Hidden Window
  537.         Displays "hidden" or "invisible" windows in the same place as the
  538.         current window.  The current window then becomes invisible.
  539.  
  540.  
  541. Block Commands:
  542.  
  543.   Block operations can be done within or between files.  If you mark a
  544.   block in one file, just move the cursor to the desired location in the
  545.   same or other file and do the block operation.  Operations on line
  546.   blocks that move text are carried out on the line immediately below the
  547.   cursor.  Operations on box or stream blocks that move text begin at the
  548.   column of the cursor.  If you mix block types, tde uses the last
  549.   specified block type.
  550.  
  551.    @B - Mark Box Block
  552.         This key is used to mark both the beginning and ending corner of
  553.         a box block.  Press @B to mark the beginning line/column.  Then,
  554.         move the cursor to the ending line/column and press @B again to
  555.         define the block.  You can move the cursor around and press @B to
  556.         adjust to size of the block as needed.
  557.  
  558.    @L - Mark Line Block
  559.         This key is similar to the operation of the box block, but entire
  560.         lines are marked.
  561.  
  562.    @X - Mark Stream Block
  563.         All the text between the beginning and ending column, sorta like a
  564.         stream of characters, is marked.
  565.  
  566.    @U - Unmark Block
  567.         If you make a booboo when marking blocks, press @U to unmark the
  568.         block and start over.  After certain block operations, the block
  569.         may remain marked - just press @U to unmark it.
  570.  
  571.    @G - Group Delete block
  572.         Sorta self explanatory.  This function deletes the text in the
  573.         marked block and unmarks the block.
  574.  
  575.    @M - Move block
  576.         Move the cursor to the desired location and press @M to move the
  577.         marked block.  In line mode, the text in the original block is
  578.         deleted and then inserted at the line immediately below the
  579.         cursor.  In box mode and stream, the original block is inserted
  580.         into the text beginning at the column of the cursor and then the
  581.         marked box block is deleted.  After block moves, tde unmarks the
  582.         block.  Moving blocks within themselves is not allowed.
  583.  
  584.    @C - Copy block
  585.         With line blocks, the block is copied to the line below the
  586.         cursor.  With box and stream blocks, the block is copied
  587.         beginning at the column of the cursor - everything to the right
  588.         of the cursor is moved right to make room for the block.  Blocks
  589.         may be copied within or between files.  tde unmarks the block
  590.         after the copy is complete.  If you try to copy a Line block
  591.         within itself, the block copy starts at the first line
  592.         immediately after the marked block.
  593.  
  594.    @K - Kopy block
  595.         Same as copy block except block stays marked.  Sorta like a poor
  596.         man's cut-and-paste buffer.
  597.  
  598.    @O - Overlay block
  599.         You can only overlay Box blocks.  Move the cursor to the location
  600.         to begin the overlay and press @O.  The original block stays
  601.         marked after the operation.
  602.  
  603.    @F - Fill box block
  604.         Fills the marked Box block with character.  tde prompts you for
  605.         the fill character.  Press Escape key to abort the command.  This
  606.         function is useful for filling in a column of periods for tables
  607.         and such.
  608.  
  609.    @N - Number box block
  610.         tde prompts you for the starting number, the increment, and
  611.         whether to left or right justify the numbers.  tde only handles
  612.         integers  -  no floating point numbers are allowed.  I felt that
  613.         there were too many things involved in real numbers, eg. number
  614.         of significant places to left of decimal, to right of decimal,
  615.         exponents, engineering form, scientific form, etc....  If you
  616.         want real numbers, just use a combination of the number box
  617.         and fill box functions.  Use the fill box function to make a
  618.         column of decimals and the number box function to fill in the
  619.         left and right side of the decimal.
  620.  
  621.    @P - Print block
  622.         Prints the block to the PRN device.  I haven't tried redirecting
  623.         the PRN, but it should work.  This function prompts for block or
  624.         file printing.  Press ESC to abort.  Once the printing starts,
  625.         press ESC to stop.  The block remains marked after the block is
  626.         printed.
  627.  
  628.    @W - Write block to file
  629.         Writes the marked block to a file.  tde prompts for the file
  630.         name.  If the file exists, it deletes all contents of the
  631.         existing file and replaces it with the marked block.  Press ESC
  632.         to abort.  Once the writing starts, there is no safe way to stop
  633.         it.  The block remains marked after the block is written to a
  634.         file.
  635.  
  636.    @E - Block expand tabs
  637.         Expands the tabs in the marked block, which must be a Line block,
  638.         using the current tab setting.  The default tab setting is 8.  You
  639.         can change the tab setting at any time by pressing @T.  The block
  640.         remains marked after the block is expanded.
  641.  
  642.    @T - Block trim trailing
  643.         Trims trailing space, if any, at the end of each line in a LINE
  644.         block.  The block remains marked after the block is expanded.
  645.  
  646.    @< - Block upper case
  647.         Convert all lower case characters in the block to upper case
  648.         characters.
  649.  
  650.    @> - Block lower case
  651.         Convert all upper case characters in the block to lower case
  652.         characters.
  653.  
  654.    @? - Block strip high bit
  655.         Strip the high bit off all characters in the block.  This function
  656.         is useful when editing files produced by WordStar.
  657.  
  658.  
  659. Word Processing Commands:
  660.  
  661.   A few simple word processing functions are availale:  word wrap, format
  662.   paragraph, format text, left justify a line, right justify a line, and
  663.   center a line.
  664.  
  665.    @V - toggle word wrap
  666.         Turn word wrap on or off.  Typing past the right margin
  667.         automatically moves the word to the next line.  If the cursor
  668.         is somewhere in the line, words are pushed to the next line.  This
  669.         not really an autoformat function, but it's fairly close.
  670.  
  671.         In tde, other than margins, word wrap and format paragraph or
  672.         format text have nothing to do with each other.  Word wrap is
  673.         used to push characters or the cursor to the next line when the
  674.         right margin is violated.  Format paragraph and format text can
  675.         be used at any time - they do not depend on the state of the
  676.         WordWrap flag.
  677.  
  678.   ^F6 - Set Left margin
  679.         May be set to any column equal to or greater than 1 and less than
  680.         the right margin.
  681.  
  682.   ^F7 - Set Right margin
  683.         May be set to any column greater than the left margin and less
  684.         than the maximum line length or 256.
  685.  
  686.   ^F8 - Set Paragraph margin
  687.         The paragraph margin may be set to any column less than the right
  688.         margin.
  689.  
  690.   @F7 - format paragraph
  691.         Text is formatted from the beginning of the paragraph according
  692.         to the current left, right, and paragraph margins.  If the cursor
  693.         is not on the beginning line of a paragraph, tde searches for
  694.         start of the paragraph and formatting starts there.  The entire
  695.         paragraph is formatted according to the margins.
  696.  
  697.   ^B - Format Text
  698.         Text is formatted from the cursor onward.  This function does not
  699.         search for the beginning of the paragraph to start the format.  In
  700.         some situations, I want the text above the cursor to stay like it
  701.         is.  It is useful 'cause it don't mess up special paragraph
  702.         indentation.
  703.  
  704.   @F8 - Left justify
  705.         Beginning of current line is adjusted to start at left margin
  706.  
  707.   @F9 - Right justify
  708.         End of current line is adjusted so it ends at the right margin
  709.  
  710.  @F10 - Center justify
  711.         Current line is centered between the left and right margins.
  712.  
  713.  
  714. Other keys:
  715.  
  716.    Enter
  717.         Insert a newline at the cursor.  If the cursor is in the middle of
  718.         a line, the line is split at the cursor.   The cursor moves to the
  719.         next line.  Indentation is matched if the editor is in the Indent
  720.         mode.
  721.  
  722.    #Enter
  723.         Move the cursor down a line.  The cursor is placed on the first
  724.         non-blank character in the next line.  No lines are added to the
  725.         file.
  726.  
  727.    ^Enter
  728.         Move the cursor down a line.  The cursor is placed on column 1 in
  729.         the next line.  No lines are added to the file.
  730.  
  731.    Up (arrow)
  732.         Move cursor up a line if this is not the first line in a file and
  733.         do appropriate vertical scrolling.
  734.  
  735.    Down (arrow)
  736.         Move cursor down a line if this is not the last line in a file
  737.         and do appropriate vertical scrolling.
  738.  
  739.    Left (arrow)
  740.         Move cursor left one column if this is not column 0 and do
  741.         appropriate horizontal scrolling.
  742.  
  743.    Right (arrow)
  744.         Move cursor right one column up to column 255 and do appropriate
  745.         horizontal scrolling.
  746.  
  747.    Home
  748.         Move cursor to first non-blank character in the current line else
  749.         move to column zero.  Scroll to left as needed.  Press Home to
  750.         toggle between the first non-blank character and column zero.
  751.  
  752.    End
  753.         Move cursor to 1st column past the last character in the current
  754.         line else move to column zero.  Scroll to right as needed.
  755.  
  756.    Page Up
  757.         Move cursor up one page if this is not first page in file.
  758.  
  759.    Page Down
  760.         Move cursor down one page if this is not last page in file.
  761.  
  762.    ^Right
  763.         Move cursor one word right.
  764.  
  765.    ^Left
  766.         Move cursor one word left.
  767.  
  768.    ^#Right   (Control+Shift+Right)
  769.         Pan the screen one character to the right.
  770.  
  771.    ^#Left    (Control+Shift+Left)
  772.         Pan the screen one character to the left.
  773.                                                 
  774.    ^Home
  775.         Move cursor to first line on screen.
  776.  
  777.    ^End
  778.         Move cursor to last line on screen.  If end of file occurs before
  779.         last line of file, move cursor to last line in file.
  780.  
  781.    ^Page Up
  782.         Move cursor to first page in file.
  783.  
  784.    ^Page Down
  785.         Move cursor to last page in file.
  786.  
  787.    Zip to line
  788.         Move to line number.  tde prompts for line number.  Press Escape
  789.         to abort.
  790.  
  791.    Center
  792.         The cursor is moved to the center of the current window.
  793.  
  794.   ^Center
  795.         The line the cursor is on is moved to the center of the current
  796.         window.
  797.  
  798.    ^Up
  799.         Scroll window up 1 line with cursor staying on same line in file.
  800.  
  801.    ^Down
  802.         Scroll window down 1 line with cursor staying on same line in
  803.         file.
  804.  
  805.    Grey - on key pad
  806.         Scroll window up 1 line with cursor staying on same line in file.
  807.  
  808.    Grey + on key pad
  809.         Scroll window down 1 line with cursor staying on same line in
  810.         file.
  811.  
  812.   @Grey Up (the arrow in the cursor/control cluster) or
  813.   ^Grey -  (grey - on keypad)
  814.         Fixed scroll window up 1 line with cursor staying on same line on
  815.         the screen as the file scrolls up.
  816.  
  817.   @Grey Down (the arrow in the cursor/control cluster) or
  818.   ^Grey +  (grey + on keypad)
  819.         Fixed scroll window down 1 line with cursor staying on same line
  820.         on the screen as the file scrolls down.
  821.  
  822.   @Grey PgUp
  823.         Horizontal page left.
  824.  
  825.   @Grey PgDn
  826.         Horizontal page right.
  827.  
  828.    ESC - undo line
  829.         Get back the original unchanged line.  When cursor is moved off a
  830.         line, all changes to the file are made and there is no way to get
  831.         back the contents of a line.
  832.  
  833.    Del
  834.         Delete the character, if any, under the cursor.
  835.  
  836.    ^Del
  837.         Toggle the delete stream mode.  In stream mode, pressing the Del
  838.         key will delete the characters in the file as if they were a
  839.         stream.  Lines will be joined at the cursor and eventually every
  840.         character in the file may be deleted.  In line mode, only the
  841.         characters on a line may be deleted.
  842.  
  843.    Backspace
  844.         Delete the character to the left of the cursor and move left.  If
  845.         the cursor is on the first column of a line, the current line is
  846.         joined with the line above.  If in indent mode and the cursor is
  847.         on the first non-blank character, tde matches the indentation of
  848.         the previous line(s).
  849.  
  850.    Tab
  851.         If in insert mode, insert the appropriate number of spaces for a
  852.         tab and move the cursor left.  If in overwrite mode, just move
  853.         the cursor left w/o inserting text.
  854.  
  855.    Ins
  856.         Toggle between insert and overwrite mode.  In insert mode, the
  857.         cursor is normal size and an "i" is displayed at bottom right of
  858.         screen.  In overwrite mode, the cursor is 3-4 times normal size
  859.         and an "o" is displayed at bottom right of screen.
  860.  
  861.    @I
  862.         Toggle between indent and no indent mode.  In indent mode, tde
  863.         searches for the first non-blank character on previous lines and
  864.         places the cursor on that column when a carriage return is
  865.         pressed.  When backspacing in indent mode, tde lines up the
  866.         indentation with the first non-blank character of the previous
  867.         line(s).
  868.  
  869.    @R - Toggle ruler
  870.         Toggle display of ruler in all visible windows.
  871.  
  872.    @=
  873.         Duplicates the current line.  Duplicating the last (NULL) line in
  874.         a file is not allowed.  The cursor stays on the current line and
  875.         the duplicated line is inserted after the current line.
  876.  
  877.    @-
  878.         Deletes the text from the cursor to the end of line.
  879.  
  880.    ^Y
  881.         Deletes current line, cursor does not move.
  882.  
  883.    @D
  884.         Deletes current line, cursor does not move (exactly same as ^Y).
  885.  
  886.    @Y  or  ^U
  887.         Undelete the most recently deleted line.  The undelete buffer has
  888.         room for 20 lines.  If more than 20 lines are deleted, the oldest
  889.         line is pushed out and the new one is added.  You may press @Y
  890.         repeatedly to undelete all the lines in the buffer.
  891.  
  892.         Deleted lines from line delete, delete to end of line, word
  893.         delete, join line, and backspace are stored in the undelete
  894.         buffer.
  895.  
  896.    @A
  897.         Add a blank line below cursor.
  898.  
  899.    @S
  900.         Split line at column of cursor.  If in indent mode, the split
  901.         line is autoindented.
  902.  
  903.    @J
  904.         Join the current line with the line below.  The text from the
  905.         cursor to the end of the current line is deleted and the first
  906.         character of the line below becomes the new character under the
  907.         cursor.
  908.  
  909.    @T
  910.         Set tabs.  tde prompts for new tab setting.  The default is 8.
  911.  
  912.    ^]
  913.         Paren Balance.  This function is really nice for C programmers
  914.         because it balances parenthesis, brackets, and braces.  If the
  915.         character under the cursor is a paren, bracket, or brace, tde
  916.         searches either forward or backward through the file for the
  917.         balancing opposite.  The cursor is moved to the balancing
  918.         opposite if found.
  919.  
  920.    @Z
  921.         Toggle writing control Z at the end of file.  The default is leave
  922.         the control z out.
  923.  
  924.    @1 - @3
  925.         Set a file marker.  There is not a total of 3 markers for your
  926.         use.  Each file may have up to 3 markers.
  927.  
  928.    #@1 - #@3    (Shift+Alt+1 thru Shift+Alt+3)
  929.         Goto a previously defined file marker.
  930.  
  931.  
  932. Toggles:
  933.  
  934.    ^F1
  935.         Toggle cursor sync.  Only cursor movement commands are synced.
  936.         Commands that change text are not synced.  This feature is
  937.         really handy when comparing different files.  You will also notice
  938.         that this feature is a lot easier to use when you use a hilited
  939.         cursor line because you can see what the cursor is doing in
  940.         other windows.
  941.  
  942.    ^F2
  943.         Toggle eol display.  A special character is diplayed in the column
  944.         of the actual new line.
  945.  
  946.    ^F3
  947.         Toggle writing <CR><LF> or <LF> at end of line.  tde will read a
  948.         text file with lines that end in either method; however, you may
  949.         want to write the file in a different method.  I think *nix
  950.         systems only want a <LF> of the end of line.
  951.  
  952.    ^F4
  953.         Toggle trimming trailing space at the end of line.  A 'T' is displayed
  954.         in the bottom right of the mode line to indicate trailing space is
  955.         trimmed.
  956.  
  957.  
  958.  
  959. WordStar type commands:
  960.  
  961.   A limited number of WordStar type commands are implemented in tde.  I
  962.   have no plans whatsoever to implement any additional WordStar type
  963.   commands.  This implementation may not correspond exactly to the
  964.   WordStar command convention.  WordStar is a trademark of WordStar
  965.   International.
  966.  
  967.    ^A - word left
  968.    ^B - format paragraph
  969.    ^C - screen down
  970.    ^D - character right
  971.    ^E - line up
  972.    ^F - word right
  973.    ^G - delete character
  974.    ^H - backspace
  975.    ^I - tab
  976.    ^J - help
  977.    ^K - n/a
  978.    ^L - n/a
  979.    ^M - return (carriage control, enter)
  980.    ^N - add line below cursor
  981.    ^O - n/a
  982.    ^P - n/a
  983.    ^Q - n/a
  984.    ^R - page up
  985.    ^S - character left
  986.    ^T - word delete
  987.    ^U - undelete line
  988.    ^V - toggle insert mode
  989.    ^W - scroll up line
  990.    ^X - line down
  991.    ^Y - delete line
  992.    ^Z - scroll line down
  993.    ^\ - redraw screen
  994.  
  995.  
  996. Editor command summary:
  997.  
  998.    Function                      Description
  999.  
  1000. Help                    Display instantaneous help screen
  1001. Rturn                   Insert newline and move down while matching indentation
  1002. NextLine                Move cursor to first character in next line
  1003. BegNextLine             Move cursor to first column in next line
  1004. LineDown                Move cursor down a line
  1005. LineUp                  Move cursor up a line
  1006. CharRight               Move cursor right one character
  1007. CharLeft                Move cursor left one character
  1008. ScrollRight             Pan screen one character right
  1009. ScrollLeft              Pan screen one character left
  1010. WordRight               Move cursor to beginning of next word
  1011. WordLeft                Move cursor to beginning of previous word
  1012. ScreenDown              Page screen down
  1013. ScreenUp                Page screen up
  1014. EndOfFile               Move to the last page in a file
  1015. TopOfFile               Move to the first page in a file
  1016. BotOfScreen             Move cursor to bottom of current window
  1017. TopOfScreen             Move cursor to top of current window
  1018. EndOfLine               Move cursor to end of line
  1019. BegOfLine               Move cursor to first character in line or column 1
  1020. JumpToLine              Move cursor to line entered by user
  1021. CenterWindow            Move cursor to center of current window
  1022. CenterLine              Move current line and cursor to center of window
  1023. HorizontalScreenRight   Page screen right
  1024. HorizontalScreenLeft    Page screen left
  1025. ScrollDnLine            Scroll screen down 1 line and cursor moves with line
  1026. ScrollUpLine            Scroll screen up 1 line and cursor moves with line
  1027. FixedScrollUp           Scroll screen up 1 line and cursor does not move
  1028. FixedScrollDn           Scroll screen down 1 line and cursor does not move
  1029. ToggleOverWrite         Toggle insert/overwrite mode and cursor changes shape
  1030. ToggleIndent            Toggle indent mode on/off and clear indent in mode line
  1031. ToggleWordWrap          Toggle word wrap on/off and clear ww in mode line
  1032. ToggleCRLF              Toggle CRLF/LF at eol and display current mode
  1033. ToggleTrailing          Toggle trim trailing space at eol and display mode
  1034. ToggleZ                 Toggle writing ^Z at eof and display current mode
  1035. ToggleEol               Toggle display of eol character
  1036. ToggleSync              Toggle cursor sync
  1037. ToggleRuler             Toggle ruler display
  1038. SetTabs                 Set file tabs
  1039. SetLeftMargin           Set left margin
  1040. SetRightMargin          Set right margin
  1041. SetParagraphMargin      Set paragraph margin
  1042. FormatParagraph         Format the entire paragraph according to margins
  1043. FormatText              Format from the cursor line to end of paragraph
  1044. LeftJustify             Left justify a line
  1045. RightJustify            Right justify a line
  1046. CenterJustify           Center justify a line
  1047. Tab                     Move cursor to next tab and add spaces if insert mode
  1048. BackTab                 Move cursor to previous tab and delete if insert mode
  1049. ParenBalance            Match (), {}, or [] under the cursor
  1050. BackSpace               Delete previous character
  1051. DeleteChar              Delete current character, but do not join lines
  1052. StreamDeleteChar        Delete current character and join lines if at eol
  1053. DeleteLine              Delete current line
  1054. DelEndOfLine            Delete from the cursor to the eol
  1055. WordDelete              Delete from the cursor to the end of word
  1056. AddLine                 Insert a blank line under the cursor
  1057. SplitLine               Split the current line at the cursor
  1058. JoinLine                Join next line with current line at the cursor
  1059. DuplicateLine           Duplicate the current line
  1060. AbortCommand            Abort editor functions
  1061. UndoLine                Get back the original contents of a line
  1062. UndoDelete              Get back up to the last 20 deleted lines
  1063. ToggleSearchCase        Toggle matching/ignoring search case and display mode
  1064. FindForward             Prompt for pattern and search forward
  1065. FindBackward            Prompt for pattern and search backward
  1066. RepeatFindForward1      Repeat find forward and adjust cursor to center window
  1067. RepeatFindForward2      Repeat find forward and do not adjust cursor
  1068. RepeatFindBackward1     Repeat find backward and adjust cursor to center window
  1069. RepeatFindBackward2     Repeat find backward and do not adjust cursor
  1070. ReplaceForward          Search and replace pattern forward
  1071. ReplaceBackward         Search and replace pattern backward
  1072. MarkBox                 Mark start or end of a box block
  1073. MarkLine                Mark start or end of a line block
  1074. MarkStream              Mark start or end of a stream block
  1075. UnMarkBlock             Unmark a block
  1076. FillBlock               Fill a box block with prompted character
  1077. NumberBlock             Fill a box block with starting number using increment
  1078. CopyBlock               Copy a block to cursor and unmark block
  1079. KopyBlock               Copy a block to cursor and leave block marked
  1080. MoveBlock               Move a block to cursor and unmark block
  1081. OverlayBlock            Overlay a box block
  1082. DeleteBlock             Delete a block
  1083. BlockToFile             Write a marked block to a file
  1084. PrintBlock              Print a block or file
  1085. BlockExpandTabs         Expand tabs in marked LINE block using tab setting
  1086. BlockTrimTrailing       Trim trailing space from all lines in a line block
  1087. BlockUpperCase          Convert all lower case in block to upper case
  1088. BlockLowerCase          Convert all upper case in block to lower case
  1089. BlockStripHiBit         Strip the high bit from all characters in block
  1090. EditFile                Editor prompts for file to edit
  1091. DirList                 List matching files in subdirectories
  1092. File                    Save file and quit window
  1093. Save                    Save file
  1094. SaveAs                  Save file under a new file name
  1095. SetFileAttributes       Set current file attributes
  1096. EditNextFile            Edit next file on command line
  1097. RedrawScreen            Redraw the screen
  1098. SizeWindow              Change size of current window
  1099. SplitHorizontal         Split current window horizontally
  1100. SplitVertical           Split current window vertically
  1101. NextWindow              Move to next window
  1102. PreviousWindow          Move to previous window
  1103. ZoomWindow              Make current window the maximum window size
  1104. NextHiddenWindow        Switch to next hidden window
  1105. SetMark1                Set a file marker
  1106. SetMark2
  1107. SetMark3
  1108. GotoMark1               Move cursor to previously defined marker
  1109. GotoMark2
  1110. GotoMark3
  1111. RecordMacro             Record keystrokes
  1112. PlayBack                Play back keystrokes
  1113. SaveMacro               Save macro to a file
  1114. LoadMacro               Load macro from a file
  1115. ClearAllMacros          Clear the macro buffer
  1116. Quit                    Quit current window and file and abandon changes.
  1117.  
  1118. If you need a hard copy of all key assigments, run tdecfg.  In tdecfg,
  1119. there is an option to print the key assigments to the printer or a file
  1120. in the redefine keys section.
  1121.