home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / sedit281.zip / editor.doc < prev    next >
Text File  |  1996-10-05  |  32KB  |  648 lines

  1. Introduction
  2.  The sedit editor is a fully featured professional text and binary editor. The
  3.  editor is modeled after the E PC editor. This editor is however a functional 
  4.  superset of E with many useful additional features (except that there is no 
  5.  REXX support). The OS/2 EPM editor is another editor with the same ancestors. 
  6.  Users of E or EPM will quickly feel at home with this editor since basic 
  7.  operation is quite similar. 
  8.  
  9. Documentation
  10.  This file is the ASCII text version of the editor documentation and is the
  11.  most general format but the ugliest looking. A Postscript version of the 
  12.  documentation is the file editdoc.ps and the Latex source and DVI files are 
  13.  *.tex and *.dvi respectively. 
  14.  
  15. Highlights
  16.  Highlights of this editor are as follows:
  17.  
  18.  Complete OS/2 PM applications with all editor commands available either from
  19.  drop down menus or by using CTRL and ALT key combinations. Appearance and
  20.  operation of this editor are highly configurable.
  21.  
  22.  Edits text files of arbitrary size and line length.
  23.  
  24.  Edits binary files in either hex or in a special alphanumeric coded form that
  25.  allows easy identification of strings in a binary file. 
  26.  
  27.  Unlimited undo of previous changes and corresponding step for step redo. Lines
  28.  can be restored to their previous state even if subsequent edits on other 
  29.  lines have been made that are to be kept. 
  30.  
  31.  Column editing features to allow movement of columns of text. This allows easy
  32.  change of indentation for example and is extremely useful for manipulating 
  33.  columns of numbers. Columns can be moved, copied, deleted, overlaid and 
  34.  filled. 
  35.  
  36.  Bracket matching of all sorts of brackets and C code comment delimiters.
  37.  
  38.  Single key left justification of moved code blocks with first non-blank line
  39.  above.
  40.  
  41.  Run programs such as dir, grep or compilers from the command line. These may
  42.  optionally run as a separate thread so you can continue to edit while they run 
  43.  or synchronously for predictable behaviour in a macro. Output from programs 
  44.  started from the command line is piped into another file in the ring of loaded 
  45.  files. Files can be loaded from these read only output files by double 
  46.  clicking on any file names with a trailing number, if any, interpreted as a 
  47.  line number. 
  48.  
  49.  Programming support. Run compilers from the command line and jump to file and
  50.  line containing the error by double clicking on the file name. Opens on-line 
  51.  programming reference information by double clicking on key words. 
  52.  
  53.  There is full folding support with 6 different fold mechanisms. Four of these
  54.  are toggles which displays either only the lines starting in the first column,
  55.  only the changed lines, only lines containing a place mark or only the lines
  56.  containing the last search string. The remaining two are incremental and
  57.  selectively hide or display portions of the text. One of these is indentation
  58.  based and the other requires fold tags embedded in a comment in the file.
  59.  
  60.  Changed lines optionally appear in a different colour from the unchanged text.
  61.  
  62.  A whole ring of files can be loaded up at once allowing painless copying of
  63.  text between files. One particularly nice feature is the ability to load up a
  64.  set of files in a ring and rapidly cycle through them using then CTRL N and
  65.  CTRL P key combinations. Text can be copied between these files by using the
  66.  block and line mark commands.
  67.  
  68.  This editor has very few built in hard coded limits. The number of files
  69.  simultaneously loaded is limited only by available memory. The number of lines
  70.  in a file or the length of a line is also limited only to the size of
  71.  available memory or the size of a 4 byte integer whichever is smaller.
  72.  
  73.  The editor has very powerful search options which allow searching with any of
  74.  the following modifiers singly or combined. Search up, Search marked block 
  75.  only, Ignore case, whole word only, loop through all loaded files or interpret 
  76.  as regular expression. For search and replace a dialog allows the following; 
  77.  replace, skip, replace all, quit, undo last replace, and redo last skipped. 
  78.  
  79.  There are all also some features to facilitate carrying out complex repetitive
  80.  editing tasks. In particular sequences of key strokes can be saved and
  81.  assigned to a function key for subsequent reuse. Furthermore, any command
  82.  including function key macros can be repeated a number of times automatically
  83.  by entering a command multiplier. Bound macros are saved between editing
  84.  sessions.
  85.  
  86.  The editor is completely key configurable. A set of keystrokes can be mapped
  87.  to an editor function simply by specifying the sequence in the auxiliary key
  88.  map file. The combination of key mapping and key macros allow the editor to
  89.  imitate the user interface of other editors or allow the construction of a
  90.  custom user interface to the taste of the user.
  91.  
  92.  
  93. Control keys
  94.  The editor is extremely easy to use and largely self explanatory. Text is
  95.  input by straight typing anywhere on the screen. Cursor movement is controlled 
  96.  by the arrow keys and auxiliary keypad keys as per their standard definitions 
  97.  as well as accelerated movement with CTRL combinations. The cursor can also be 
  98.  positioned using the mouse by clicking with the left button at the desired 
  99.  cursor location. The cursor position control keys are as follows: 
  100.  
  101.  
  102. Cursor Motion Keys
  103.  
  104.     left arrow      left one space
  105.     right arrow     right one space
  106.     up arrow        up one line
  107.     down arrow      down one line
  108.     end             end of line
  109.     home            beginning of line
  110.     PgDn            scroll down one screen
  111.     PgUp            scroll up one screen
  112.     Center Key      fast motion toggle
  113.     CTRL left       left one word
  114.     CTRL right      right one word
  115.     CTRL up         scroll up five lines
  116.     CTRL down       scroll down five lines
  117.     CTRL end        end of file
  118.     CTRL PgDn       end of file
  119.     CTRL home       beginning of file
  120.     CTRL PgUp       beginning of file
  121.     ALT home        top of page
  122.     ALT end         bottom of page
  123.     ALT PgUp        scroll up half a page
  124.     ALT PgDn        scroll down half a page
  125.  
  126.  
  127.  
  128.  
  129. Editor Control Keys
  130.  
  131.     CTRL A     set place mark
  132.     CTRL B     bracket match {, (, [, <, or /*
  133.     CTRL C     change case of character under cursor
  134.     CTRL D     delete character
  135.     DEL        delete character
  136.     CTRL E     delete to end of line
  137.     CTRL F     find next occurance of search string
  138.     CTRL H     destructive backspace
  139.     CTRL I     tab
  140.     CTRL J     join next line to current line
  141.     CTRL K     cut current line at cursor
  142.     CTRL L     return to previous set place mark
  143.     CTRL M     insert new line (also return key)
  144.     CTRL N     edit next file in ring
  145.     CTRL 0     switch to other window if screen split
  146.     CTRL P     edit previous file in ring
  147.     CTRL Q     quit without saving file
  148.     CTRL R     redo previous undo                       
  149.     CTRL S     swap current and next character          
  150.     CTRL T     toggle insert/replace                    
  151.     CTRL U     undo changes to last modified line       
  152.     CTRL V     view only lines starting in 1st column   
  153.     CTRL W     write file to disk                       
  154.     CTRL X     delete line                              
  155.     CTRL Y     split edit window horizontally in two    
  156.     CTRL BACK    delete line                            
  157.     CTRL Z     zap word
  158.     CTRL DEL   zap word                                 
  159.     ALT A      alternate binary representation          
  160.     ALT E      execute last macro                       
  161.     ALT H      view only lines with placemark
  162.     ALT I      clear all placemarks                     
  163.     ALT K      enter next char literally
  164.     ALT P      position curs at previous location
  165.     ALT Q      restore a line from undo record
  166.     ALT R      re-flow paragraph, stops at blank line
  167.     ALT S      view lines containing search string
  168.     ALT T      teach (end) new macro
  169.     ALT V      view only changed lines
  170.     ALT X      enter control character
  171.     ALT Z      zero command multiplier
  172.     ALT 0-9    enter command multiplier
  173.  
  174.  
  175.  
  176.  The following section provides more detailed information for a selection
  177.  of the above commands that are perhaps not inherently obvious.
  178.  
  179.  
  180.  
  181.  The CTRL A command sets a place mark on the current line in the current file.
  182.  Any number of place marks can be set. Hitting CTRL L will return the
  183.  cursor to these place marks in the reverse order that they where set. To
  184.  remove a place mark hit CTRL A again on the line with the place mark and it
  185.  will be removed. ALT I removes all currently set placemarks and ALT H shows
  186.  only lines on which a placemark has been set.
  187.  
  188.  
  189.  The bracket match command CTRL B moves the cursor to the bracket matching the
  190.  one under the cursor. If the cursor does not move it means that a
  191.  matching bracket could not be found or that the cursor is not presently
  192.  sitting on a bracket. The matchable characters are <, >, (, ), {, }, [, ]
  193.  
  194.  and the C style comment delimiter pairs /* and */.
  195.  
  196.  CTRL C changes the case of the letter under the cursor. If the case of a
  197.  whole region is to be changed. Block mark the region (ALT B) and then use
  198.  the change case option of the block fill command (ALT F).
  199.  
  200.  
  201.  CTRL F finds the next occurance of the search string. The first occurance
  202.  must be found be going to the command line with ESC and entering the
  203.  desired search string after a '/' as in "/string". The search string can
  204.  also be set using the search dialog from the menu bar. In the OS/2 version
  205.  shift CTRL F changes direction and then find the previous occurance of the
  206.  search string.
  207.  
  208.  
  209.  CTRL J, K, M. Unlike most editors hitting return ( CTRL M ) does not split the
  210.  current line at the cursor. Instead a line is split at the cursor using CTRL
  211.  K. This usage may take some getting use to but it is the same as used by the
  212.  editor E and optionally by the EPM editor. If, however, you prefer more
  213.  conventional return key behaviour this can be set in the configuration menu.
  214.  CTRL J is used to join two lines together. Return or CTRL M inserts a new
  215.  blank line below the current line but the current line is not split.
  216.  Conventional return key behaviour may optionally be selected in the
  217.  configuration menu.
  218.  
  219.  
  220.  CTRL N, P. If more than one file is currently in memory then CTRL N
  221.  switches to the next one in the ring while CTRL P switches to the
  222.  previous file. If the switched to file has been modified since it was
  223.  last seen you will be prompted for an optional reload.
  224.  
  225.  
  226.  CTRL Q. Quits the current file which will be removed from memory and all
  227.  changes will be lost. If changes have been made and the file has not been
  228.  saved then you will be prompted for confirmation. It is possible to
  229.  configure the editor to prompt for a confirmation of over writing an old
  230.  version of the file.
  231.  
  232.  
  233.  CTRL U, R. Undo the change to the last edited line. The number of undo
  234.  levels is set in the configuration dialog and is essentially unlimited.
  235.  By repeatedly hitting CTRL U all the changes made to a file since it was
  236.  loaded can be undone. CTRL R re-does a previous undo. The changes to a
  237.  file can only be undone in the order that they where made except that any
  238.  line for which a line undo record exists can be restored using ALT Q.
  239.  Only simple edits that only operate on a single line generate
  240.  undo records of the type that can be undone using ALT Q. In some instances
  241.  it may be desirable to turn off the undo record generation for example if
  242.  column manipulations are to be done on very long columns since in that
  243.  case the entire file will have to be duplicated may times for the undo
  244.  records which will adversely affect performance. Undo record generation
  245.  may be turned off by setting the undo limit to zero in the config dialog
  246.  of the file menu.
  247.  
  248.  
  249.  CTRL V ALT V ALT S ALT H. These commands toggle folding on and off.
  250.  See  section on folding below.
  251.  
  252.  
  253.  CTRL W. Saves the current file to disk using the file name displayed on
  254.  the command line. The file name can be changed by moving to the command
  255.  line ESC and using the rename command. The file can also be saved with a
  256.  different name using the "save as" menu item of the file menu.
  257.  
  258.  
  259.  CTRL Y splits the editor window horizontally in to two windows separated
  260.  by a second command line. Hitting CTRL Y again un splits the screen. Use
  261.  CTRL O or the left mouse button to change the current window.
  262.  
  263.  
  264.  ALT A selects the alternate binary representation. This key is only
  265.  active for files loaded using the binary switch (-b). The default binary
  266.  representation is hex with two hex characters per byte and 32 bytes per
  267.  line. The alternate representation uses the following codes: Printable
  268.  characters appear with a leading underscore and control characters with a
  269.  leading ^. This second representation also has 32 bytes per line
  270.  and is more useful for identifying text in binary files. Individual hex
  271.  numbers may be converted to decimal or the reverse by using the command
  272.  line commands "hex", "dec" and "asc".
  273.  
  274.  
  275.  ALT B,C,D,F,L,M,N,O,U,W,Y are used with marked regions see
  276.  
  277.  
  278.  
  279.  ALT E executes the last defined macro see section on macros.
  280.  
  281.  
  282.  ALT I removes all previously set (CTRL A) placemarks.
  283.  
  284.  
  285.  ALT K interprets the next character as a literal without re-mapping. This
  286.  key may be useful for enter characters that have been mapped onto editor
  287.  commands. This should not be needed with the default configuration since
  288.  only CTRL and ALT keys are used to control the editor.
  289.  
  290.  
  291.  The ALT P command is useful if the cursor was accidentally moved away from
  292.  the region of interest with a CTRL Home or search for example. In these
  293.  situations ALT P will restore the cursor to its previous location. This
  294.  action is similar to using place marks except that unlike place marks these
  295.  are automatically set by any command that causes the cursor to jump by more
  296.  than one line. Only one previous location is remembered though.
  297.  
  298.  
  299.  The ALT R command reflows a paragraph with the right and left margins
  300.  and the first line indentation set as specified in the config dialog.
  301.  It starts at the current line and stops at the first encountered blank
  302.  line. Optionally if a region is ALTB marked and the cursor is currently
  303.  in the marked region the marked region only will be reformatted with
  304.  the right and left margins set by the marking and no initial indentation.
  305.  
  306.  
  307.  ALT T start and end the definition of a new macro see section on macros.
  308.  
  309.  
  310.  ALTH, ALTS, ALTV toggles folding on and off. See discussion for folding below.
  311.  
  312.  
  313.  ALT X queries the user for the 3 digit hex code of the character to be
  314.  inserted. ALT X can thus be used to enter characters for which there is
  315.  no keyboard key such as the characters above 127 in the ASCII table.
  316.  
  317.  
  318.  ALT 0-9, Z. These keys are used to enter a command multiplier to be used
  319.  on the next command. Entering a multiplier has the same effect as
  320.  entering the following keystroke n times. ALT Z resets the multiplier to zero.
  321.  
  322.  
  323. In the OS/2 version of the editor there are also a number of additional defined
  324. control keys.
  325.  
  326.  ALT - and ALT + fold and unfold the current file to the next fold tag.
  327.  
  328.  CTRL - and CTRL + fold and unfold the current file to the next tab position.
  329.  
  330.  ALT * and ALT / finds the next or previous word matching the word currently
  331.  under the cursor respectively. This is equivalent to doing a search for the
  332.  curent word with the /w whole word flag turned on so only whole words matching
  333.  the current word are found. The current search string is not updated however.
  334.  
  335.  
  336.  ALT F4. The OS/2 system default close application key removes all loaded files
  337.  and terminates the editor. If there are any changed, unsaved files a
  338.  confirmation dialog appears. Other system menu ALT F* keys perform their usual
  339.  task. These keys are intercepted before reaching the editor and thus cannot be
  340.  used for bound macros.
  341.  
  342.  
  343.  CTRL SHFT A. Saves all currently loaded files that have been changed.
  344.  
  345.  
  346.  CTRL SHFT F. Changes the current search direction and locates the next search
  347.  string. Thus is the current direction is down then a CTRL SHFT F finds
  348.  previous location of the search string having set the direction to up. If it
  349.  is now desired to continue searching in the up direction use CTRL F.
  350.  
  351.  
  352.  Other CTRL SHFT combinations. These predifined key sequences open the
  353.  corresponding dialog as if they had been chosen from the menus. 
  354.  
  355.  
  356. Folding
  357.  
  358.  Folding refers to the ability of the editor to selectively hide parts of the
  359.  file in order to give a better overview of the whole file. This may be used
  360.  to rapidly find sections in the text. The folding control keys are as follows:
  361.  
  362.         Folding Keys
  363.  
  364.     CTRL V     first column lines only
  365.     ALT V      changed lines only
  366.     ALT S      lines containing search string only
  367.     ALT H      lines containing place mark only
  368.     ALT -      Fold to next lower fold tag
  369.     ALT +      Unfold to next greater fold tag
  370.     CTRL -     Fold to next tab position to left
  371.     CTRL +     Unfold to next tab position to right
  372.  
  373.  
  374.  The first 4 of these commands are toggles i.e. hitting CTRL V twice returns
  375.  the file to the unfolded state. Only one type of folding may be active at any
  376.  one time. The file may be fully edited while folded. These commands are useful
  377.  for rapidly finding a section of the file.
  378.  
  379.  CTRL V causes only lines starting in the first column to be displayed. If the
  380.  text is organized so that only section headings or sub-routine headings start
  381.  in the first column then CTRL V can be used to rapidly locate a section in a
  382.  file. To do this hit CTRL V then move cursor to desired sub-routine heading
  383.  and hit CTRL V to expand again. ALT V and ALT S work similarly except they
  384.  show only changed lines and lines containing the last search string
  385.  respectively. For example in a large case statement the start of any branch
  386.  may be found by doing a search for "case" and then selecting ALT S. This will
  387.  show only lines containing the word "case" on the screen. The cursor may then
  388.  be put on the desired line and the file expanded again. ALT H can be used to
  389.  view only lines on which a place mark has been previously set using CTRLA When
  390.  folded the visible lines may still be edited. See also section on
  391.  
  392.  The ALT - and ALT + pair are complementary keys and unlike the toggles above
  393.  several levels of this type of folding are possible. To use this folding
  394.  mechanism fold tags must be inserted in the text. By default these are of the
  395.  form // Lnnn where nnn is an integer. This is in the form of a C++ comment
  396.  and can thus be put into source code without perturbing the program. The form
  397.  of the tag string may be edited in the config dialog by changing the fold tag
  398.  regular expression. Note that the fold tags must contain an integer counter as
  399.  part of the tag. The first time ALT - is hit the largest value of all the
  400.  found fold tags is found and the lines between tags of this number and tags
  401.  with smaller numbers are hidden. A subsequent ALT - will decrement the folding
  402.  tag number and hide more lines. Thus multiple levels of folding are possible
  403.  with this mechanism. An ALT + will increment the fold tag number and reveal
  404.  the corresponding hidden lines. A sufficient number of ALT + hits will return
  405.  the file to its unfolded state. This folding mechanism differs from the others
  406.  since the file must be modified to contain the fold tags as special comments
  407.  but it has the flexibility to place fold markers anywhere in the file.
  408.  
  409.  The CTRL - and CTRL + pair is similar in operation to ALT - ALT + but does not
  410.  use fold tags. Instead on the first CTRL - the greatest number of tab
  411.  indentations (depends on the set tab size) on the current page is determined
  412.  and the file folded to hide all the lines indented this far. A further CTRL -
  413.  decrements this number and hides more lines. CTRL + counter acts a CTRL -.
  414.  This type of folding is useful with structured program code that uses a tab
  415.  indentation to delineate a block. Thus for example the start of both branches
  416.  of an if else block may be seen by hiding the bodies.
  417.  
  418.  
  419. Block manipulations
  420.  
  421.  Block mark and line mark are somewhat different. Use line mark for moving,
  422.  copying or deleting one or more whole lines and block mark for moving,
  423.  copying, deleting, filling or overlaying columns of text. Note also that a
  424.  block marked region can also be moved to the left with CTRL ^ and to the right
  425.  with CTRL _ but the behaviour is different than if the ALT arrow keys are
  426.  used. ALT left and ALT right (or CTRL _ and CTRL ^) are meaningless for line
  427.  marked regions. Block marked regions can furthermore be filled with a
  428.  character, a string or incrementing or decrementing numbers. Marked blocks are
  429.  also used to constrain a search, indicate a target region for column math and
  430.  indicate the desired margins for reflowing a paragraph. ALT N marking is the
  431.  industry standard marking useful for text but not of much use for programming.
  432.  Regions can also be marked by dragging the mouse with one of the three buttons
  433.  down. The type of region mark created depends on the settings in the "config" 
  434.  notebook accessed from the "file" menu. Lastly, ALTN type marking can be 
  435.  achieved by moving the cursor with the shift key held down. 
  436.  
  437.  
  438.  
  439.  
  440. Block Manipulation Keys
  441.  
  442.     ALT B      mark column block start, end
  443.     ALT C      copy marked block
  444.     ALT D      delete marked block
  445.     ALT F      fill B marked block with char, change case or inc/dec
  446.     ALT J      justify last copied block to match lines above
  447.     ALT L      mark LINE(s) start, end
  448.     ALT M      move marked block
  449.     ALT O      overlay B marked block
  450.     ALT U      un mark block
  451.     ALT W      write block to `editblck.tmp'
  452.     ALT Y      yank back deleted block
  453.     CTRL _      shift B marked block right
  454.     CTRL ^      shift B marked block left
  455.  
  456.  
  457.  
  458. Macros
  459.  
  460.  There is also a macro capability for repetitive, complex editing tasks. The
  461.  editor is taught a macro by hitting the ALT T combination. After this all 
  462.  subsequent keystrokes are stored as the macro definition until ALT T is hit 
  463.  again. There is a 128 keystroke limit on the length of a macro. A macro can 
  464.  consist of any keystrokes except ALT T and ALT E. At the end of the macro 
  465.  definition the macro can be bound to a function key by hitting the desired
  466.  function key. Available function keys are F1 - F12 as well as shift, alt and 
  467.  ctrl F1 - F12. In OS/2 some of these are not available as they are used by the 
  468.  system to resize windows etc. and are trapped before they even reach the 
  469.  editor. As a special case F10 has been partially activated by defining it as 
  470.  an accelerator key in the resources. As a consequence a macro defined for F10 
  471.  in the editor.cfg can be executed but no macro can be bound to it from within 
  472.  the editor using ALT T. A bound macro is subsequently executed by hitting that 
  473.  function key. The predefined macro for that key will of course be lost. The 
  474.  last learned macro, whether bound or unbound, can be executed by hitting ALT 
  475.  E. If the macro involves a search and another item is not found the rest of 
  476.  the macro is not executed. If macros have been bound to function keys they 
  477.  will be written to the current configuration file editor.cfg which so that the 
  478.  macros will be preserved in between editing sessions. The editor.cfg file as 
  479.  received contains a number of predefined macros that emulate the E editor 
  480.  usage of the function keys. For example F1 is predefined as help, F2 as save 
  481.  (CTRL W), F3 is predefined as quit (CTRL Q) and F4 is save and quit (CTRL W 
  482.  CTRL Q). These may of course be over written. 
  483.  
  484.  A repeat factor for a keystroke can also be entered by prefixing the command
  485.  with a multiplier which is input using the ALT number keys. The multiplier can 
  486.  be reset to zero during input using ALT Z. This feature also facilitates 
  487.  repetitive editing as an operation can be repeated several times. This is 
  488.  particularly powerful in conjunction with macros. 
  489.  
  490.  
  491. Command Line
  492.  
  493.  Lastly, there are a small number of commands which require typed input on the
  494.  command line. The command line is reached by hitting ESC. This places the 
  495.  cursor at the beginning of the command line which is on the last row and 
  496.  ordinarily displays some status information. After ESC however text can be 
  497.  input here for the following functions: 
  498.  
  499.  
  500.  
  501. Command Line Operations (requires text input so terminate line with a return)
  502.  
  503.      ESC             goto or leave command line
  504.  
  505.              Change current line
  506.     number        goto line number n
  507.     +number       down n lines
  508.     -number       up n lines
  509.  
  510.            Change current column offset
  511.     @number       start at column n
  512.     @+number      scroll left n columns
  513.     @-number      scroll right n columns
  514.                                                         
  515.            Search and Replace.                          
  516.      find string str (/ actually any punct)             
  517.     /str[/-bclr] return                                
  518.      replace str1 with str2                             
  519.     c/str1/str2[/-bcl] return                           
  520.                                                         
  521.            The optional search suffixes are             
  522.     /-            search up (down is default)           
  523.     /b            search marked block only              
  524.     /c            ignore case                           
  525.     /l            loop through all files
  526.     /r            interpret as regular expression
  527.     /w            match whole words only
  528.  
  529.            For regular expression the following symbols have special meaning
  530.     ^ start of line
  531.     $ end of line
  532.     . any character
  533.     \ quote next character
  534.     * match zero or more times
  535.     + match one or more times
  536.     [aei0-9]     match a,e,i and 0 through 9
  537.     [^aei0-9]    match anything but a,e,i and 0 through 9
  538.     (  )         sub expression
  539.     a(ab)*b      matches ab aabb aababb aabababb etc.
  540.  
  541.            Add other files to ring
  542.     e name1,name2,...[-r]
  543.            The optional edit suffixes are
  544.     -r            read only
  545.     -b            binary mode
  546.  
  547.      display directory and choose one to edit
  548.              e [*.*]
  549.      activate this help file
  550.              ?
  551.      insert named file at current location
  552.              m name  or merge name
  553.      rename current file to name
  554.              r name  or rename name
  555.      show and modify editor configuration
  556.              cfg or configure
  557.      exit without saving changes
  558.              quit
  559.      fill marked block with result of column math
  560.              col num1 [+-*/] num2
  561.      fill marked block with string
  562.              fill string
  563.      sort lines using field number col as key
  564.              sort col
  565.      convert decimal num to hex
  566.              hex num
  567.      convert hex num to decimal
  568.              dec num
  569.      previous command line entered
  570.              up arrow
  571.      next command line entered
  572.              down arrow
  573.      send command to operating system
  574.              os command
  575.      also any unrecognized string
  576.  
  577.  
  578.  
  579.  There is an important difference between OS system calls initiated using the
  580.  "os" prefix on the command line and those initiated without the "os" prefix.
  581.  The later are run as a separate thread which allows editing to continue while
  582.  the called program runs. The system calls initiated with the "os" prefix
  583.  however do not run as a separate thread. This means that the editor will wait
  584.  until the system call is done before allowing any further editing. This
  585.  behaviour is desirable when a system call is part of a macro since then the
  586.  macro can be made to wait for the results of the system call.
  587.  
  588.  In order to fill a B marked block with a string be sure that the width of the
  589.  block in characters matches the width of the fill string otherwise the fill 
  590.  word will wrap around to the next line or repeat. For filling a marked block 
  591.  with the result of column math also be sure to define a sufficiently wide box 
  592.  otherwise the results will be truncated. 
  593.  
  594.  
  595. Configuration Files
  596.  The startup file editor.cfg preserves the values selected from the
  597.  configuration menu item between sessions. You can have multiple editor.cfg
  598.  files in different directories since the current directory is searched before 
  599.  using the default editor.cfg stored in the same directory as the executable. 
  600.  This is useful since a configuration suitable for text (auto wrap on, auto 
  601.  indent off) is not ideal for programming (auto wrap off, auto indent on) thus 
  602.  text specific editor.cfg files may be kept in text directories and programming 
  603.  specific ones in program directories. The editor.cfg file is plain ASCII and 
  604.  can thus be edited with a text editor as an alternative means of changing the 
  605.  settings or the macro definitions. If changes have been made to the 
  606.  configuration the editor will update the editor.cfg in the directory from 
  607.  which it was read. Thus in order to create a custom cfg file for use only 
  608.  within one directory copy the default editor.cfg to the current directory 
  609.  before starting the editor. 
  610.  
  611.  The macros are defined in plain text and thus in order to accommodate control
  612.  and cursor keys as well each macro keystroke is defined by a pair of letters 
  613.  using the following scheme. Starting in the first column of a definition must 
  614.  appear the key word or function key identifying the macro. This is followed by 
  615.  the macro body. Function keys may not appear in macro bodies. Keystroke and 
  616.  are encoded as follows with implied sequences in ASCII order. 
  617.  
  618.  
  619.     Ordinary characters     prepend with _
  620.     Control Keys            prepend with ^         ^M Return, ^[ esc
  621.     Alt Keys                prepend with %
  622.     Cursor keys             prepend with #          #. Del,  #0 Ins - #9 PgUp
  623.     Ctrl Cursor Keys        prepend with #          #N Del,  #P Ins - #Y PgUp
  624.     Alt Cursor Keys         prepend with #          #n Del,  #p Ins - #y PgUp
  625.     Function Keys           prepend with $          $1 -  $<
  626.     Shift Function Keys     prepend with $          $= - $H
  627.  
  628.  
  629.  Consult also the keynames.h file which contains text labels for all these two
  630.  character codes as well as for some codes which do not correspond to keyboard
  631.  keys but might be useful in certain cases. There are also a set of codes
  632.  corresponding to the editor dialogs. By mapping these to key strokes
  633.  accelerator keys may be defined for these dialogs.
  634.  
  635.  This same key naming scheme is used in the key re-mapping file editkey.map.
  636.  The first entry in a line of the editkey.map file is one or more key codes
  637.  describing a key sequence followed by the code for the un-mapped key name that
  638.  the sequence is to replace. For example the line '^Y ^?' maps CTRL Y onto the
  639.  delete line command. The line `^[ %A' maps "ESC A" onto the ALT A function.
  640.  The example unixkey.map file maps all ALT letter combinations to ESC letter
  641.  sequences and ESC to ESC ESC. This is used in the UNIX dumb terminal version
  642.  since these terminal don't have an ALT key. In order to activate key mapping
  643.  the key_map parameter in the editor.cfg file must be set to 1. If the
  644.  exclusive_map value is also set to 1 then the editor will only respond to
  645.  mapped keys. This thus requires that all keys necessary for basic operation be
  646.  mapped. Note that the key mappings will be reflected in the editor help file
  647.  but not unfortunately, in the accelerator tags of the menu items.
  648.