 Ŀ
                    QEdit(R) Advanced  -  Version 3                        
                Copyright 1985-1994 SemWare Corporation.                   
                                            
                    R E F E R E N C E   M A N U A L                        
 

                                TABLE OF CONTENTS
                 
                 Introduction
                 Features
                 System Requirements
                 1. User's Guide for QEdit
                     Quick Start
                         Getting Started
                         In the Editor
                         Getting Out
                     Menus
                     The StatusLine
                     Prompts
                     Files
                         Creating New Files
                         Loading Existing Files
                         Invoking QEdit at a Specific Line Number
                         Multiple Files: The Ring
                         Saving Files and Exiting
                         Read-Only Files
                     Viewing and Getting Around in the Text
                         Cursor Movement
                             Moving Through a File
                             Moving Around on the Screen
                             Moving By Lines and Characters
                         Using Windows
                             Creating Windows
                             Switching Windows
                             Changing Window Size
                             Closing Windows
                     Finding and Replacing Text
                         Finding Text
                         Replacing Text
                     Copying, Moving, Changing, and Deleting Text
                         Block Commands
                             Marking and Unmarking a Block
                             Manipulating Blocks Directly
                             Manipulating Blocks Using Scrap Buffer
                             Manipulating Blocks Using Scratch Buffers
                             Examples of Block Commands
                         Non-Block Commands
                             Adding Text
                             Copying Text
                             Moving Text
                             Deleting And Undeleting Text
                             Changing Case
                             Sorting
                         The Kill Buffer - A Safety Net
                     Macros
                     Printing
                         Print Formatting
                         Formfeeds
                     The Shell and Dos Commands
                         Swapping, [QE] Shell Indicator
                     Word-Processing Commands
                     Modes
                 2. Customizing QEdit
                     Initiating the Configuration Program
                     The Configuration Menu
                     Advanced Options
                     Colors/Screen Options
                     General Options
                     The Help Screen
                     Keyboard Configuration
                         The Keyboard Definition File
                         Creating a Keyboard Definition File
                     Printer Options
                     Tab Settings
                 3. QEdit Macro Reference
                     Keyboard Macros
                         Creating Keyboard Macros
                         Using Keyboard Macros
                         Saving and Reloading Keyboard Macros
                         Example of a Keyboard Macro
                     Creating Macro Programs
                         Advanced Macro Programming
                             Macro Pause
                             Using Paste within a Macro
                             Repeating a Command within a Macro
                             Conditional Logic for Macros
                             Special-Purpose Macro Commands
                             The Main Macro
                     QMac
                         Using QMac:  An Overview
                         Executing QMac
                         Writing Macro Text
                         Converting Macro Binary Format to Text Format
                     Startup Macros
                 4. QEdit Command Reference


Ŀ
INTRODUCTION                                                              

 This manual describes the use and operation of QEdit, a full-screen text
 editor for the IBM PC and compatible computers.  The manual includes
 installation instructions, a user's guide, a chapter on customizing the
 editor, and reference sections for the macro language and the QEdit
 commands.

 QEdit is a text editor as opposed to a word processor.  This means that
 most of its features are geared toward creating and maintaining program
 source code and other text files.  However, QEdit can also be used like
 a word processor to write documents or letters since it includes many
 word-processing capabilities.


 QEdit was developed with these goals in mind:

 * FAST OPERATION - More than anything else, QEdit was designed to
   operate quickly, especially in these areas:
     - Initially loading a file for editing.
     - Displaying/updating the screen.
     - Moving through the editing window.
     - Searching for text.
     - Saving a file back to disk.

 * EASE OF USE - This version of QEdit includes:
     - Optional "pull-down" menus.
     - Customizable Help Screen.
     - Complete execution from a single file (Q.EXE).
     - Pop-up file directory and picker.

 * COMPACT PROGRAM SIZE - Every effort has been made to keep the program
   size as compact as possible.  Even though memory is getting cheaper
   all the time, we do not want QEdit to require any more memory than
   absolutely necessary.

 QEdit is available in three versions:  QEdit Advanced (the standard DOS
 version), QEdit TSR (the memory-resident DOS version), and QEdit for
 OS/2.  All three versions offer the same rich set of features and behave
 in much the same manner.  This manual uses QEdit Advanced as its basis
 for discussion of the operation and features of the editor.

Ŀ
QEdit Advanced       File Description                                     

   Q.EXE              QEdit.  Once configured, no other files are necessary
                      for proper operation of QEdit.
   QCONFIG.EXE        The QEdit configuration program. This program allows
                      you to customize QEdit.
   QCONFIG.DAT        The default QEdit Keyboard Definition file.  Used by
                      QCONFIG.EXE (or QTCONFIG.EXE)
   QHELP.TXT          The default QEdit Help text.  Used by QCONFIG.EXE (or
                      QTCONFIG.EXE).
   QMAC.EXE           The QEdit macro translator. This program  allows  you
                      to externally write macros.

Ŀ
FEATURES                                                                  

 QEdit offers a number of powerful features for editing text, both easily
 and quickly.  To put that power at your fingertips, version 3 of QEdit:
   * Is very fast!
   * Is highly customizable.  QEdit can be easily configured the way you
     like.  You can configure ALL of the special keys on the keyboard
     (Alt, Ctrl, and function keys; <Home>, <PgUp>, etc.), as well as the
     colors, screen appearance, and many other options.
   * Is easy to use.  An optional "pull-down" menu provides ready access
     to QEdit's commands, and the Help Screen can be customized for your
     own needs.
   * Is compact.  Even with all these features, QEdit requires less than
     70K of disk space.
   * Utilizes all available DOS memory (up to 640K).  Edit files as large
     as your computer's memory will allow.
   * Allows multi-file editing.  The number of files you can edit is
     limited only by available memory.
   * Enables you to view files through up to eight horizontal, resizable
     "windows".  You can have multiple views of the same file or view a
     different file in each window.
   * Provides up to 99 scratch buffers for cut-and-paste or template
     operations.  You can even select a buffer from a pick-list of your
     current scratch buffers.
   * Allows you to temporarily exit to DOS (or a DOS shell) and use DOS
     commands from within the editor.  Optionally, the editor can swap to
     disk or expanded memory to allow even the largest programs (such as
     compilers) to run from within QEdit.
   * Supports numerous character, line, and column Block operations.
   * Saves deleted words, lines, and Blocks in a deletion buffer for
     later recall.
   * Will load multiple files from the DOS command line, with or without
     wildcard characters.
   * Allows you to specify up to six default file extensions for use when
     loading files and determining tab settings.
   * Provides line-drawing capability to create diagrams and tables.
   * Supports enhanced (101-key) keyboards.
   * Supports up to 200-column and 100-line screens.
   * Supports EGA 43-line mode, and VGA 28-line and 50-line modes.
   * Offers a built-in Sort command, with options for ascending,
     descending, and case-insensitive sorting.
   * Includes options for the Find and FindReplace commands to start a
     search at the beginning of a file ("global" option) and/or limit a
     search to a marked Block ("local" option).
   * Provides the ability to shift entire Blocks using the tab left and
     right commands (TabLt and TabRt).
   * Allows you to fill a Block with a specified character (FillBlock
     command).
   * Offers an optional large, flashing block cursor as a configuration
     option.  This is especially helpful for use on laptop computers.
   * Accommodates editing of files with a linelength of up to 1000
     characters.
   * Provides a pop-up ASCII chart that allows you to directly insert the
     selected character into your text.
   * Includes various tab-handling options, including variable, smart,
     and fixed tabs.

  For your word-processing needs, QEdit:
   * Provides wordwrap and paragraph-reformat capabilities.
   * Includes options to change the case of characters (Flip, Lower,
     Upper commands).
   * Gives you the ability to center the text on a line (CenterLine
     command).
   * Offers various printing options, such as specification of top and
     bottom print margins (SetPrintBotMargin, SetPrintTopMargin
     commands), assignment of the print device, ability to adjust line
     spacing, and inclusion of line numbers.
   * Allows you to configure the date and time formats.
   * Includes an option to display the hex and decimal values of the
     current character on the StatusLine.

  To further enhance the editor's operation, QEdit's macro facility:
   * Allows you to create macros that will execute a series of commands
     and keystrokes by pressing a single key.
   * Offers a simple macro scripting language.
   * Includes the ability to load and/or execute macros from the DOS
     command line, as well as an option to execute an automatic startup
     macro.
   * Supports conditional logic (Jump, JTrue, JFalse commands).

  To assist you in your programming tasks, QEdit:
   * Provides "C mode", which utilizes automatic indentation for
     C-language programming.
   * Locates matching braces and parentheses, which is very useful for
     entering and maintaining source code.
   * Allows you to execute command-line compilers from within the editor,
     using QEdit's macro facility.
   * Offers a DOS command-line option (-n) for jumping to a specific line
     number within a file upon loading.

Ŀ
SYSTEM REQUIREMENTS                                                       

 QEdit will run on the IBM PS/2, PC/AT, PC/XT, PC, PC/Jr, and on IBM
 compatible computers including the Compaq, NCR, Tandy, and WYSE PCs.
 MINIMUM requirements are:
 * 128 KB of memory (although QEdit can utilize up to 640 KB if it is
   available) for QEdit Advanced.
 * PC- or MS-DOS v2.0 or greater.
 * One diskette drive.
 * Either a color or a monochrome monitor with 80-column display.
 * Less than 70 KB of disk space.
 * The editor program itself:  Q.EXE.  Once configured, no other files
   are necessary for operating QEdit.


 SETTING UP QEDIT ON A LAPTOP SYSTEM
 
 If you have a laptop computer (one with an LCD or plasma display), in
 addition to carrying out the procedures given in the previous sections,
 you should set your screen parameters before using QEdit.  QEdit works
 best if you enter MODE BW80 at the DOS command line before running the
 editor.

 Alternatively, you can install QEdit for a black-and-white screen with
 the QEdit customization program, QCONFIG.  Refer to Chapter 2,
 "Customizing QEdit."  With this customization program, you should choose
 "1" (Monochrome) from the "Colors/screen" options, when prompted with
 "Startup attribute set:".

 QEdit Tip:Ŀ
  Please note that one of the MAJOR features of QEdit is    
  configurability.  You can customize the colors, the keys, 
  the on-screen appearance of the editor, and many other    
  functions.                                                
                                                            
  By spending just a small amount of time reviewing Chapter 
  2 on configuration, you can benefit greatly through       
  customizing the editor to your personal preferences.      
 

Ŀ
CHAPTER 1. USER'S GUIDE FOR QEDIT                                         


 QUICK START
 
 With QEdit you can edit any text file with a few simple commands. The
 next three sections briefly describe the quickest way possible to load,
 edit, and save a file.

 Getting Started
 
 Using QEdit is simple and straightforward.

 To initiate QEdit, type "Q <Enter>".  The Editor will respond with a
 prompt for the name of the file to be edited.

 Ŀ
   File(s) to edit:                                         
 

 Enter the filename.  The filename may include full path designation.

 QEdit Tip:Ŀ
  At any "File to edit" prompt, you may use wildcard        
  characters (* or ?) to obtain a list of matching files in 
  the directory.                                            
 

 You may optionally include the filename on the DOS command line in order
 to bypass this prompt.  For example, from the DOS command line, type:

     "Q filename <Enter>"


 In the Editor
 
 Once you are in QEdit, the cursor movement keys (Left, Right, Up, Down,
 Home, End, ...) allow you to move around in the text.

 To obtain a Help Screen, simply press <F1>.  Pressing <F1> again (or any
 other key) returns you to the text.

 To obtain a menu of QEdit commands, press <Esc>.  You may then use the
 cursor movement keys to position the cursor bar over the desired
 command.  Press <Enter> to execute the command.

 QEdit Tip:Ŀ
  Within a prompt for a command, press <Esc> to cancel the  
  command (and the prompt).                                 
 

 Getting Out
 
 The easiest way to get out of QEdit and save all the work you have done
 is to enter <Alt F> <G>.


 MENUS
 
 QEdit provides an easy-to-use "pull-down" style menu system.  The menu
 system is very helpful while learning to use the editor.  It is also
 handy for executing seldom-used commands.

 To access the menus and execute a command:
 1.  Press <Esc>.  The main menu is displayed at the top of the screen.
     The main menu consists of a list of sub-menu items.
 2.  Select a sub-menu item.  To do this, either move the cursor bar
     to the desired item and press <Enter>, or type the capital
     letter of the desired item.
 3.  Execute a command.  This is done in the same manner as selecting the
     sub-menu items.
 Here is an example of the pull-down style menu system.  The User is
 about to execute the "Copy block" command.

 Ŀ
 File  Window #Block# Search  Print  Macro  Editing  Other  Quit  
 
               mark Line         
               mark cHaracter    
               mark Kolumn       
               mark Begin        
               mark End          
               Unmark            
              Ĵ
              #Copy block########
               Move block        
               Delete            
               copyOver          
               Fill              
              Ĵ
               Sort              
               Ignore case [off] 
               desceNding  [off] 
              

 You can execute many QEdit commands using the menus.  As you become more
 familiar with the editor, you may wish to use the <Ctrl>, <Alt>, and
 function key assignments, instead of the menus, to execute commands more
 quickly.  Cross-reference listings of all QEdit commands can be found in
 Appendices A and B.

 THE STATUSLINE
 
 At the top of the editing screen is the StatusLine.  The StatusLine
 constantly displays information about the file you are currently
 editing.

 The StatusLine is shown below with a description of the information
 displayed.

 Ŀ
 L 15   C 15   IAW R B  411K   *c:\qedit\qedit.doc           20h,32
 ĳĳĳĳĳĳĳĳĳ
                                 
                                 The hex and decimal value for the
                                 character at the cursor position,
                                 if this option is turned on.
                               The path and name of the file you
                                  are editing
                         *) Indicates file has been changed
                    Amount of available memory
                 B) Indicates Box Drawing mode is ON
                R) Indicates Macro Recording is ON
               W) Indicates WordWrap mode is ON
               A) Indicates AutoIndent mode is ON
               I) Indicates Insert mode is ON
           The current cursor column number
     The current cursor line number

 For more information on Insert, AutoIndent, WordWrap, and Box Drawing,
 refer to the "Modes" section in this chapter.  For more information on
 macro recording, refer to Chapter 3, "QEdit Macro Reference."

 QEdit Tip:Ŀ
  The StatusLine may be configured to appear at the bottom  
  of the screen. Refer to the "Colors/Screen Options"       
  section of Chapter 2 for more information.                
 

 PROMPTS
 
 When QEdit needs information from the user (such as the name of a
 file to edit, a search string, etc.), a prompt is issued.  The prompt
 consists of a message, telling what information is requested, and an
 area for the user to enter their response.  The following commands are
 available in prompts (if assigned to a key):

 BackSpace            CursorRight      EndLine      Return
 BegLine              DelCh            Escape       ToggleInsert
 CurrentFilename      DelLine          Paste
 CursorLeft           DelToEol         Pause

 Other commands are simply ignored.

 Note:  Execute DelLine (<Ctrl Y> or <Alt D>) to clear the response area
        of any prompt.

 FILES
 
 Creating New Files
 
 There are three different ways to create new files, ready for editing.

 1. From the DOS command line, enter <Q> followed by one or more new
    filenames.  Each filename must be separated by a space. For example,
    typing:

         "Q file1 b:file2 \dir1\file3 <Enter>"

    will create "file1" in the current directory, "file2" on disk drive
    B, and "file3" in the directory "dir1".

 QEdit Tip:Ŀ
  When specifying file names to QEdit, you may use full     
  path designations if desired.                             
 

 2. From the DOS command line, type "Q <Enter>".  QEdit responds with the
    prompt:

 Ŀ
   File(s) to edit:                                         
 

    Enter one or more new filenames, each separated by a space.

 3. From within the editor, execute the EditFile <Alt E> command. The
    above prompt will appear.  Again, you may enter one or more new
    filenames, each separated by a space.


 Loading Existing Files
 
 Loading existing files works exactly like creating new files (in the
 previous section) with two exceptions:
 * The filename(s) specified must exist on disk.
 * The filename(s) may contain wildcard characters (*, ?).

 QEdit can be configured to respond to wildcarded filename entries in one
 of two ways:
 1. Load all matching files into the editor.
 2. Show all the matching filenames in a "pick" listing. You can then use
    the cursor keys to find the file you want and press <Enter> to load
    it into the editor.

 QEdit can also be configured to use default file extensions, such as
 "doc" and "pas" when entering filenames.  For more information on
 configuring these options, refer to the "General Options" section of
 Chapter 2.

 Invoking QEdit at a Specific Line Number
 
 A QEdit DOS command line option (-n) allows you to specify a line number
 in a file on which to position the cursor when the file is loaded into
 QEdit. From the DOS prompt type:

     q <filename to edit> -n<specific line number>

 For example, to load file1 at line number 125, from the DOS command line
 you would enter:

     q file1 -n125

 Or, if you prefer:

     q -n125 file1

 Multiple Files: The Ring
 
 QEdit is a true multi-file editor.  It allows as many files as will fit
 into memory to be loaded at the same time.  All of these files can then
 be edited by simply switching back and forth between them without having
 to save and load each file individually. Switching between files is
 accomplished very quickly and easily.

 A simple explanation of how QEdit handles multiple files will help you
 in manipulating and editing multiple files.

 QEdit maintains all loaded files in a "ring".  As we describe each of
 the commands used to manipulate the files in the ring, refer to the
 illustration below.

 Ŀ
               Ŀ              Ŀ                   
                                 ####                   
       >  A   <<Ctrl KP>#B##<Alt N>            
                                ####                  
                                              
       v         ^                 <Alt E>     v            
     Ŀ                                Ŀ         
                                                      
      F   <>  C           
                                                      
                                              
       ^         v                   v         ^            
              Ŀ              Ŀ                  
                                                      
       >  E   <>  D   <            
                                                        
                                                
                       The "Ring"                           
 
 In the ring we see that six files have been loaded into the editor. You
 can, of course, load many more files - as many as your computer's memory
 will allow.

 Assume the file currently being edited is file "B".  You may then move
 from one file to another in any of the following ways:

 * Enter the NextFile <Alt N> command. You will now be editing the next
   file in the ring, file "C".
 * Enter the PrevFile <Ctrl KP> command. You will now be editing the
   previous file in the ring, file "A".
 * Enter the EditFile <Alt E> command. The editor will prompt for a
   filename.  You may enter the name of any file in the ring.  The editor
   will make the entered file the current one for editing.
 * Enter the ListFiles <Esc><F><T> command. You will be shown a
   scrollable list of all loaded files, from which you may select a
   different file to edit.

 You may, at any time, add files to the ring or discard files from the
 ring.  If you add a new file to the ring using the EditFile command, it
 will become the current file and the old current file will become the
 previous file.  If you delete a file from the ring the previous file
 will become the current file.

 QEdit Tip:Ŀ
  When loading files, be aware that QEdit will not load two 
  copies of the same file.  If you issue the EditFile       
  command for a file already loaded, that file will become  
  the new current file.                                     
 

 Saving Files and Exiting
 
 QEdit provides several different ways to save files, discard files, and
 exit the editor.  A set of five basic commands provides assorted
 combinations of saving, discarding, and exiting in order to suit
 individual preferences.

 We recommend selecting one or two methods with which you feel most
 comfortable and using them consistently.

 The table below summarizes these commands and their effects.
 Ŀ
 Command for Single   Command for Multiple                       
 File or Current File Files                                      
 Ĵ
 Exit      <Ctrl KD>  GExit     <Alt X>          X       X   X(a)
 File      <Ctrl KX>  GFile     <Alt F><G>   X           X   X(a)
 PQuit     <Ctrl KQ>  GPQuit    <Alt Q><Q>           X   X   X(a)
 Quit (b)                                                X   X   
 SaveFile  <Ctrl KS>  GSave     <Alt Y>      X                   
 ĳĳĳĳĳĴ
   Edited File(s) are Saved Unconditionally                
      User Prompted to Save Edited Files (Y/N)            
         User Warned That File Changes May Be Lost         
                     File(s) are Discarded From Editor      
                                  The Editor is Terminated   
     (a) The Exit, File, and PQuit commands can be configured to   
         terminate or not terminate the editor.  Refer to the      
         "General Options" section of Chapter 2 for more           
         information.                                              
     (b) USE WITH CAUTION!                                         
 

 Read-Only Files
 
 Read-Only files can be loaded and edited.  However, they cannot be
 saved.

 When a Read-Only file is initially loaded, the message "File is
 READONLY" is displayed at the top of the screen.  If you subsequently
 attempt to save a Read-Only file, the following message appears:

Ŀ
 Cannot save READONLY files - Press <Esc>    

 To save a Read-Only file, simply save it under a different name using
 the WriteBlock <Alt W> command (be sure there are no marked Blocks in
 the file), or change the filename using the ChangeFilename <Alt O>
 command and then save the file under the new name.

 VIEWING AND GETTING AROUND IN THE TEXT
 
 QEdit is quite versatile in allowing you to move around in the text.
 With simple keystrokes you can either move a few characters or lines at
 a time or move from one end of the file to another.  You can go to
 specific lines in the file or go to each occurrence of a particular
 string of characters.  And with QEdit's windows, you can view up to
 eight files at a time or have multiple views of the same file.

 As you will see, there are quite a few commands in QEdit for moving
 around in your text.  If you are not already familiar with these types
 of commands, try them out.  You will probably find some new commands
 that will be useful for your applications of QEdit.

 Cursor Movement    -    Moving Through a File
 
 QEdit provides several commands which enable you to move about in a
 file.

 * BegFile <Ctrl PgUp>, EndFile <Ctrl PgDn>
   As their names imply, these commands move the cursor to the beginning
   or end of the current file.  BegFile positions the cursor at column
   one on the first line of the file.  EndFile positions the cursor after
   the last non-blank character on the last line of the file.
 * PageUp <PgUp>, PageDown <PgDn>
   PageUp scrolls the text toward the top of the file, one page-full,
   less one line, at a time.  PageDown scrolls the text toward the end of
   the file, one page-full, less one line, at a time.
 * HalfPgUp and HalfPgDn
   These commands work exactly like the PageUp and PageDown commands,
   except that they scroll only one-half page at a time.
 * NextPara, PrevPara, EndPara
   These commands move the cursor to the start of the next, previous, or
   to the end of the current paragraph.

 QEdit Tip:Ŀ
  All QEdit commands, including those without default key   
  assignments, can be assigned as the user desires, to      
  almost any key.  Refer to the "Keyboard Configuration"    
  section of Chapter 2 for more information.                
 

 * ScrollUp <Ctrl W>, LineUp
   These commands scroll the text one line at a time toward the beginning
   of the file.
   The ScrollUp command causes the cursor to remain on the same line of
   text until it reaches the bottom of the screen, while the LineUp
   command causes the cursor to remain stationary on the screen.
 * ScrollDown <Ctrl Z>, LineDown
   These commands scroll the text one line at a time toward the end of
   the file.
   The ScrollDown command causes the cursor to remain on the same line of
   text until it reaches the top of the screen, while the LineDown
   command causes the cursor to remain stationary on the screen.
 * GotoLine <Ctrl J>
   Upon entering the GotoLine command, QEdit prompts with:
 Ŀ
 Goto line:                
 -
   Type a line number and press <Enter>.  QEdit then "jumps" the cursor
   to the specified line number.  An easy way to move about quickly in
   your text is to keep track of critical positions by noting their line
   number, which is displayed on the StatusLine, and then using this
   command to "jump" to those positions.
 * GotoBlockBeg <Ctrl QB>, GotoBlockEnd <Ctrl QK>
   These commands move the cursor to the beginning or to the end of the
   currently marked Block.  If the marked Block is in another file, QEdit
   makes that file the current file and then moves you to the beginning
   or end of the Block.  For more information on using marked Blocks,
   refer to the "Block Commands" section in this chapter.
 * PrevPosition <Ctrl QP>
   This command can be very handy.  It moves you to the cursor's previous
   position.  Although it is not of much use if you have only moved a
   character or two, it can be useful for larger jumps of the cursor.
   For example, perhaps you are in the middle of a file and want to check
   something at the very beginning of the file.  To get to the beginning,
   you would simply enter BegFile <Ctrl PageUp>.  After you look at the
   beginning, you want to get back to where you were previously.  You
   could use PageDown, but that could be tedious, especially if your file
   is large.  The easiest way would be to enter PrevPosition, and with a
   single keystroke, you are immediately back where you started.  Note:
   PrevPosition can only take you back to the cursor's immediately
   previous position.
   If there are intervening keystrokes that move the cursor, PrevPosition
   will move you back to the most recent location of the cursor.

 Cursor Movement    -    Moving Around on the Screen
 
 These commands affect the cursor position within the current screen of
 displayed text.
 * BegScreen <Ctrl Home>, EndScreen <Ctrl End>
   These commands move you to the first or last line of the screen (or
   current window if you have windows open).  The cursor's column
   position does not change.
 * BegLine <Home>, EndLine <End>
   You are probably already familiar with these commands.  BegLine moves
   the cursor to the beginning, or column one, of the current cursor
   line. EndLine moves the cursor to the last non-blank character of the
   current cursor line.
 * FirstNonWhite
   This command is intended as a replacement for the BegLine command.  It
   positions the cursor on the first non-white (space) character on the
   current line, or column 1 if the line is blank.  An interesting
   variation is a command that toggles between the beginning of the line
   and the first non-white character on that line:
     home MacroBegin FirstNonWhite MacroQuitTrue BegLine
   Refer to the "Keyboard Configuration" section of Chapter 2 for more
   information on changing QEdit command assignments.
 * ScreenLeft <Alt F5>, ScreenRight <Alt F6>
   These commands scroll the entire text to the left or right one column
   at a time.  You can change the number of columns which are shifted
   each time using the QEdit configuration program.  Refer to the
   "Colors/Screen Options" section of Chapter 2 for more information.
 * WordLeft <Ctrl Cursor Left>, WordRight <Ctrl Cursor Right>
   These commands move the cursor to the first character of the previous
   or following word in the text.
 * MakeCtrofScreen <Shift F5>, MakeTopofScreen <F5>, and MakeBotofScreen
   These three commands change the position of the cursor line on the
   screen (or window, if you have windows open).  They can be useful if
   you prefer to work at the bottom or top of the screen or if you want
   to keep the text surrounding your cursor line in view.
   The MakeCtrofScreen command scrolls the text on the screen (either up
   or down) until the cursor line is the center line of the screen.
   The MakeTopofScreen command scrolls the text upward until the cursor
   line is the top line of the screen.
   The MakeBotofScreen command scrolls the text downward until the cursor
   line is the last line of the screen.

 Cursor Movement    -    Moving By Lines and Characters
 
 These commands enable you to move in short increments through the text.
 * CursorLeft <Cursor Left>, CursorRight <Cursor Right>
   These commands move the cursor one column to the right or left on the
   cursor line.
   When you use CursorLeft, the cursor stops when it reaches the left
   edge of the screen, unless the text has been scrolled to the left.  In
   that case it scrolls the text to the right one column at a time until
   it reaches column one.
   When you use CursorRight and the cursor reaches the right edge of the
   screen, it begins to scroll the text to the left.  It stops scrolling
   when it reaches the maximum line length.
   If you prefer that cursor left/right would wrap at the beginning and
   end of lines, you can assign the following macros in your QCONFIG.DAT
   file in lieu of cursor left/right, respectively:
     * Left and Right cursor definitions that wrap to previous/next line
     * like WordStar does
     cursorleft    MacroBegin
                   CursorLeft     * try to go left
                   MacroQuitTrue  * succeed!  then we are done
                   CursorUp       * else try to go to prev line
                   MacroQuitFalse * if fail, then at top of file. done.
                   EndLine        * jump to end of previous line.
     cursorright   MacroBegin
                   isEndLine      * are we at end of line?
                   JTrue down:    * if so goto down
                   CursorRight    * else right one
                   MacroQuit      * Quit macro
                   down:
                   CursorDown     * try to go to next line
                   MacroQuitFalse * if not goto end
                   BegLine        * else goto beginning of line
   Refer to the "Keyboard Configuration" section of Chapter 2 for more
   information on changing QEdit command assignments.
 * CursorUp <Cursor Up>, CursorDown <Cursor Down>
   These commands move the cursor up or down in the file one line at a
   time.  The cursor's column position does not change.
 * GotoColumn <Esc><S><G>
   Upon entering the GotoColumn command, QEdit prompts with:
 Ŀ
 Goto column:              
 -
   Type a column number and press <Enter>.  QEdit then moves the cursor
   to the specified column number.

 Using Windows          -     Generalit
 
 QEdit provides the ability to view different areas of files (either
 multiple files or the same file) at the same time, through the use of
 windows.  A window is a portion of the screen that allows you to view
 text.  You can divide your screen into as many as eight horizontal
 windows.  You can then view as many as eight different files through
 these windows or have multiple views of a single file. This capability
 can be quite helpful for comparing text, copying text, and moving text.

 An example of a screen split into three windows is shown below.
 Ŀ
  L 1    C 1    IAW         411K     *c:\file1                 
                                                               
  This window is a view of file number 1 at line number 1.     
  This file is being edited with Insert, AutoIndent, and       
  WordWrap modes all ON.  This file has been updated.          
 ͵
  L 483  C 12   IAW         411K     *c:\file1                 
                                                               
  This window is a view of file number 1 at line number 483.   
 ͵
  L 15   C 14   I           411K      c:\file2                 
               -                                               
  This window is a view of file number 2.                      
  This file is being edited with Insert mode ON, while         
  AutoIndent and WordWrap modes are OFF.  This file has not    
  been updated.                                                
 

 Using Windows          -     Creating Windows
 
 To create a window, use the HorizontalWindow <Ctrl OH> command. The
 screen will be split into two halves, or windows, each window having its
 own StatusLine.  The cursor will reside in the newly created window,
 making it the current window.
 If only one file is being edited, the newly created window will simply
 be an additional view of the same file.  QEdit will not load more than
 one copy of the same file.
 If multiple files are being edited, the newly created window will be a
 view of the next file in the ring.  (Refer to the "Multiple Files"
 section in this chapter.)  If desired, you can configure QEdit to prompt
 for the name of the file to be viewed in the new window instead of the
 editor automatically selecting the next file in the ring.  Refer to the
 "General Options" section of Chapter 2 for more information.
 Once the screen has been split into windows, entering the
 HorizontalWindow command again will affect the current window. All other
 windows will remain unchanged.

 Using Windows          -     Switching Windows
 
 When multiple windows are opened, editing will only take place in the
 current window (the window containing the cursor).  For editing text in
 other windows, two commands are provided to switch from one window to
 another.
 * PrevWindow <Ctrl OP>
   This command moves the cursor to the window above the current window.
   If the current window is at the top of the screen, the cursor moves to
   the last window on the screen.
 * NextWindow <Ctrl ON>
   This command moves the cursor to the window below the current window.
   If the current window is at the bottom of the screen, the cursor moves
   to the first window on the screen.

 Using Windows          -     Changing Window Size
 
 You can change the size of any window on the screen with the commands
 below.
 * GrowWindow <Ctrl OG>, ShrinkWindow <Ctrl OS>, ResizeWindow <Esc><W><R>
   These commands allow you to change the size of the current window.
   Upon entering any of these commands, QEdit prompts you to change the
   size of the window by using the cursor up and cursor down keys.
 * ZoomWindow <Ctrl OZ>
   This command causes the current window to fill the entire screen, as
   all other windows disappear.  To restore the screen with all windows,
   simply press <Ctrl OZ> again. Be careful not to confuse this command
   with the OneWindow command (see below). OneWindow fills the screen
   with the current window (like ZoomWindow does), but it also closes all
   windows except the current one. ZoomWindow leaves the other windows
   intact, even though they are hidden from view.

 Using Windows          -     Closing Windows
 
 There are two commands to close windows.
 * CloseWindow <Ctrl OC>
   This command closes the current window.  The current window disappears
   and the cursor is placed in the window above the closed window, making
   it the new current window. When the closed window is at the top of the
   screen, the window below the closed window becomes the new current
   window.
 * OneWindow <Ctrl OO>
   This command closes all windows except the current window.  The
   current window then fills the entire screen.
 Note that closing a window does not discard files from the editor.


 FINDING AND REPLACING TEXT
 -
 Finding Text
 
 * Find <Ctrl QF>, RepeatFind <Ctrl L>
   These commands search for a specific string of characters in the file.
   Upon entering the Find command, QEdit prompts for the string of
   characters for which to search.
 Ŀ
 Search for:                                                
 
   Enter the desired string of characters and press <Enter>.
   QEdit then prompts for the search options to use.
 Ŀ
 Options [BGLIW] (Back Global Local Ignore-case Whole-words): 
 -
   Enter the letter(s) corresponding to the option(s) you want and press
   <Enter>.  The available options are:

     [B] = Search backward from the current cursor position.  When you
           choose "B", QEdit searches backward from the cursor position
           toward the beginning of the file.  Otherwise, it searches from
           the cursor position toward the end of the file.
     [G] = Global search.  Begins searching from the beginning of the
           file, or from the beginning of the marked Block if the [L]
           option is also selected.
     [L] = Local search.  Limits the search to the currently marked
           Block.  If the cursor is outside the marked Block, or the [G]
           option is also selected, the search starts at the beginning of
           the marked Block.  Otherwise, the search starts at the current
           cursor position inside the marked Block.
     [I] = Ignore the case (capital or lowercase) of the search string.
           For example, "Hello" would match "hello" if this option is
           chosen.  This option is set ON by default.
     [W] = Search for whole words only.  For example, when this option is
           chosen, the word "sent" matches only the actual word "sent".
           Otherwise, any other words that contain the string (such as
           "sentence" or "absent") would also match.
   Once the Find command is executed the cursor is placed at the first
   occurrence of the search string found in the text.  To locate
   subsequent occurrences of the search string, simply enter the
   RepeatFind command.

   If you want to search for a string and replace it with another string,
   refer to the "Replacing Text" section in this chapter.

 QEdit Tip:Ŀ
  The placement of the found text is configurable.  It can  
  either be placed on the same relative row on which the    
  cursor line initially started, or centered. Refer to the  
  ToggleCenterFinds command in Chapter 4.  On the menus,    
  press <Esc><S><C>.                                        
 

 * Match <Alt F3>
   This is a specialized search command.  It acts only on the characters
   ( ), { }, and [ ].  With the cursor placed on one of these characters,
   enter the Match command.  QEdit locates the logical matching
   character of the pair.  This command can be useful for programming in
   languages where complicated expressions are grouped using these
   characters.

 Replacing Text
 
 QEdit provides the ability to search for specific strings of characters
 throughout your text and then replace all, some, or none of them with
 another string of characters.  (If you want to search for strings of
 characters without replacing them, use the Find command.)
 * FindReplace <Ctrl QA>
   This command searches for a specific string of characters in the
   current file, and optionally, replaces it with another string of
   characters.
   Upon entering the FindReplace command, QEdit prompts for the
   string of characters for which to search.
 Ŀ
 Search For:                                                
 
   Enter the desired string of characters and press <Enter>.
   QEdit then prompts for a new string of characters (to replace the old
   string).
 Ŀ
 Replace with:                                              
 
   Enter the new string of characters and press <Enter>.
   QEdit then prompts for the search options you wish to use.
 Ŀ
 Options [BGLIWN] (Back Global Local Ignore-case Whole-words
 No-prompting):                                             
 

 QEdit Tip:Ŀ
  You can also enter a number in the options prompt.  This  
  instructs QEdit to only change the next "n" number of     
  occurrences of the found string.                          
 

   Enter the letter(s) corresponding to the option(s) you want and press
   <Enter>.  The available options are:
     [B] = Search backward from the current cursor position.  If you
           choose "B", QEdit searches backward from the cursor
           position toward the beginning of the file.  Otherwise, it
           searches from the cursor position toward the end of the file.
     [G] = Global search.  Begins searching from the beginning of the
           file, or from the beginning of the marked Block if the [L]
           option is also selected.
     [L] = Local search.  Limits the search to the currently marked
           Block.  If the cursor is outside the marked Block, or the [G]
           option is also selected, the search starts at the beginning of
           the marked Block.  Otherwise, the search starts at the current
           cursor position inside the marked Block.
     [I] = Ignore the case (capital or lowercase) of the search string.
           For example, "Hello" would match "hello" when this option is
           chosen.  This option is set ON by default.
     [W] = Search for whole words only.  For example, when this option is
           chosen, the word "sent" matches only the actual word
           "sent".  Otherwise, any other words that contain the string
           (such as "sentence" or "absent") would also match.
     [N] = Find and replace without prompting.  If you choose "N", QEdit
           finds and replaces every occurrence of the search string,
           without asking you if you want to replace each individual
           occurrence.
   If you select the "No-prompting" option, QEdit finds and replaces
   every occurrence of the search string with no further User
   intervention.  If you do not select the "No-prompting" option, QEdit
   prompts at every occurrence of the search string with:
 Ŀ
   Replace (Yes/No/Only/Rest/Quit):     
 
   Valid responses are:
        <Y>es    - Replace the search string with the new string and
                   continue to the next occurrence.
        <N>o     - Do not replace the search string, but continue to the
                   next occurrence.
        <O>nly   - Replace the search string with the new string and
                   quit.
        <R>est   - Replace the search string with the new string and
                   replace the rest of the occurrences with no further
                   prompts.
        <Q>uit   - Cancel the FindReplace process.
 You can press <Ctrl Break> to halt a global FindReplace.
 * RepeatFind <Ctrl L>
   This command reissues the previous Find or FindReplace command
   using the same character strings and options.

 COPYING, MOVING, CHANGING, AND DELETING TEXT
 
 Block Commands          -  Generalit
 
 In this section, we will see how to mark and manipulate Blocks.  A Block
 is some portion of the text file which has been specifically delineated
 using QEdit's Block-marking commands.  We will see how to manipulate
 Blocks both directly and through the use of intermediate storage areas
 known as buffers.
 QEdit contains a rich set of Block commands.  There are commands to mark
 Blocks by lines, columns, and characters.  There are commands to copy,
 move, shift, and delete Blocks.  These commands are very useful for
 transferring text from one file to another. There are also cut-and-paste
 commands, as well as commands to move Blocks to and from named Scratch
 Buffers.

 Block Commands          -  Marking and Unmarking a Block
 
 Before you can manipulate a Block, you must first "mark" the Block.
 There are four ways of marking a Block in QEdit.  The one you choose
 will depend on the editing situation and what you find most comfortable.
 * MarkLine <Alt L>
   This command allows you to mark a Block in whole line increments. In
   other words, the Block will contain complete lines only and no
   portions of lines.  To use this command place the cursor anywhere on
   the first line of the text you wish to mark and press <Alt L>. (Notice
   that the line is immediately marked.)  Now, move the cursor (the Block
   will "follow" the cursor) to the last line of text to be marked and
   press <Alt L> again.  You now have a marked Block, ready for
   manipulation.
 * DropAnchor <Alt A>
   This command allows you to mark a Block one character at a time. In
   other words, the Block will contain a stream of characters (which can
   span over multiple lines).  To use this command place the cursor over
   the first character of the text you wish to mark and press <Alt A>.
   Then begin moving the cursor toward the end of the text to be marked.
   Notice that the Block "follows" the cursor position.  Once the cursor
   is placed over the last character to be marked, press <Alt A> again.
   You now have a marked Block, ready for manipulation.
 * MarkCharacter
   This command works just like DropAnchor except that while marking the
   Block, the cursor is not included within the Block.

   MarkCharacter is provided as a replacement for the DropAnchor command.
   If you want the cursor position included in character Blocks, then
   continue to use DropAnchor; otherwise, replace the DropAnchor command
   with this command in the QCONFIG.DAT file.  Refer to the "Keyboard
   Configuration" section of Chapter 2 for more information on changing
   QEdit command assignments.
 * MarkColumn <Alt K>
   This command allows you to mark one or more columns of text.  To use
   this command place the cursor over the upper left-hand character of
   the text you wish to mark and press <Alt K>.  Then begin moving the
   cursor to the right and/or downward.  Notice that the Block "follows"
   the cursor position.  Once the cursor is placed over the lower
   right-hand character of the Block, press <Alt K> again.  You now have
   a marked Block, ready for manipulation.

 QEdit Tip:Ŀ
  When using the MarkLine, MarkCharacter, MarkColumn, and   
  DropAnchor commands, it is not necessary to mark the end  
  of the Block.  QEdit will assume the end of the Block to  
  be the current cursor position for DropAnchor,            
  MarkCharacter, and MarkColumn and the current cursor line 
  for MarkLine. Marking the end of the Block is only        
  necessary when moving or copying text within the same     
  file.                                                     
 
 * MarkWord <Ctrl KT>
   This command allows you to mark the current word.  To use this
   command, place the cursor anywhere in the word you wish to mark and
   press <Ctrl KT>.  The entire word is immediately marked.  If there is
   no word at the current cursor position, then no action is taken.
 * MarkBlockBegin <Ctrl KB>, MarkBlockEnd <Ctrl KK>
   This is another method of marking a Block one character at a time. To
   mark a Block with this command, place the cursor over the first
   character of the text you wish to mark and press <Ctrl KB>.  Then
   position the cursor one character past the end of the text that is to
   be marked and press <Ctrl KK>.  The Block is now marked and ready for
   manipulation.
 * UnmarkBlock <Alt U>
   Entering the UnmarkBlock command causes the currently marked Block to
   be unmarked.
 QEdit allows you to mark one Block at a time.  If you mark a Block and
 then go elsewhere in the file and attempt to mark another Block, QEdit
 will simply extend the first Block by including all the text between the
 original Block and the current cursor position.  If you mark a Block in
 one file and then go to another file and mark a Block, QEdit will
 automatically unmark the Block in the first file.

 Also, if you mix types of Block marking, by entering MarkLine followed
 by DropAnchor or vice-versa, QEdit will mark the Block according to the
 last command entered.

 Block Commands          -  Manipulating Blocks Directly
 
 QEdit provides several ways to manipulate a marked Block. The following
 commands act directly on a marked Block.

 QEdit Tip:Ŀ
  When Copying or Moving Blocks:                            
  Blocks marked using the DropAnchor, MarkCharacter,        
  MarkColumn, and MarkBlockBegin/End commands will always   
  be inserted beginning at the current cursor position.     
  Blocks marked using the MarkLine command will be inserted 
  at either the line before or the line after the current   
  cursor line.  Refer to the "General Options" section of   
  Chapter 2 for more information.                           
 
 * CopyBlock <Alt C>
   This command makes a copy of the marked Block and inserts it where you
   indicate.  You can insert this copy of the Block at some other place
   in the same file or in another file.  The original Block of text, from
   which you made the copy, is not affected.
   To use this command, first mark the Block as described above. Next,
   move the cursor to the position in the file where you wish to insert
   the marked text.  (Or, if you have multiple files loaded and wish to
   copy text from one file to another, use the NextFile, PrevFile or
   EditFile commands to get a new current file and likewise position the
   cursor.)  Now enter the CopyBlock <Alt C> command.  The Block will be
   inserted at the new position.  You may notice, after you use
   CopyBlock, that the newly inserted Block of text is now marked and the
   original Block is unmarked.  To unmark the copied Block, enter the
   UnmarkBlock command.
   QEdit provides an easy method for copying the same Block repeatedly.
   Refer to the Copy and Paste commands in the following section for more
   information.
 * CopyOverBlock <Alt Z>
   This command is for use with column Blocks only.  It works just like
   CopyBlock except the Block is copied to the current cursor position by
   overlaying existing text and without shifting text to the right.
 * MoveBlock <Alt M>
   This command works exactly like CopyBlock with one exception:  upon
   entering the MoveBlock <Alt M> command, the originally marked Block is
   deleted from the file.
   As with the CopyBlock command, you can move a Block to another part of
   the same file or from one file to another.
   QEdit provides an easy method for deleting a Block from its original
   position and inserting it repeatedly at other positions. Refer to the
   Cut and Paste commands in the following section for more information.
 * DeleteBlock <Alt G>
   This command simply deletes a marked Block of text from the file. To
   use this command, first mark a Block of text to be deleted, then enter
   the DeleteBlock command.  The marked text will be deleted from the
   file.  (Deleted Blocks will be placed in the Kill buffer.  Refer
   to "The Kill Buffer - A Safety Net" section in this chapter for
   more information.)
 * ShiftLeft <Shift F7>, ShiftRight <Shift F8>
   These commands allow the User to shift text contained in a Block to
   the left or right. To use these commands, first mark a Block. Now
   enter ShiftLeft or ShiftRight.  The entire marked Block of text will
   be shifted one column to the left or right respectively. If there is
   no marked Block of text or the cursor is outside of the marked Block,
   the current cursor line will be shifted. This command is very useful
   for changing indentation for portions of text or source code.
 * FillBlock <Ctrl KL>
   This command allows you to fill a marked Block with a single
   character.

 Block Commands          -  Manipulating Blocks Using Scrap Buffers
 
 QEdit provides an extremely helpful device for quickly manipulating
 Blocks of text.  This device consists of a Scrap Buffer and several
 QEdit commands which act on the Scrap Buffer.
 The Scrap Buffer is a temporary holding area for marked Blocks of text.
 The commands Cut, Copy, Paste, and PasteOver are used solely for placing
 text into the Scrap Buffer and copying text from the Scrap Buffer.
 When you issue a Copy or Cut command (discussed in the following
 section), the marked Block is placed into the Scrap Buffer.  The next
 time you Copy or Cut a Block into the Scrap Buffer, the previous
 contents of the Scrap Buffer are deleted and replaced with the new
 Block.
 You can repeatedly use the Paste and PasteOver commands as many times as
 needed to insert a copy of the Block held in the Scrap Buffer at
 multiple positions in your file or files.  The Paste and PasteOver
 commands do not purge the contents of the Scrap Buffer.
 * Copy <Grey +> and Paste <Grey *> or PasteOver <Ctrl PrtSc>
   To copy a section of text from its present position and insert it
   somewhere else:
   1. Mark the text using the Block marking commands.
   2. Enter Copy <Grey +>.  This places a copy of the marked text into
      the Scrap Buffer.
   3. If you want to insert the text somewhere else within the same file,
      use the cursor movement commands to place the cursor where you wish
      to insert the text.
   4. If you want to insert the text in another file, switch to that file
      using the NextFile, PrevFile, or EditFile command to access that
      file.  Then place the cursor at the desired position.
   5. Enter Paste <Grey *> to insert the text.  If you have copied a
      column Block into the Scrap Buffer and wish to insert it by
      overlaying existing text then use PasteOver <Ctrl PrtSc> instead of
      Paste.
   Since Paste and PasteOver leave the contents of the Scrap Buffer
   intact, you can make multiple insertions in the same or different
   files. Simply move the cursor to the file and position where you wish
   to make additional insertions and enter Paste <Grey *> or PasteOver
   <Ctrl PrtSc>.  Please note that the next time you issue a Cut or Copy
   command, the previous contents of the Scrap Buffer will be discarded.
 * Cut <Grey -> and Paste <Grey *> or PasteOver <Ctrl PrtSc>
   Cut and Paste/PasteOver work exactly like Copy and Paste/PasteOver
   except that Cut will delete the marked Block from the file.  You can
   still make multiple insertions of the text using the Paste or
   PasteOver Commands.

 QEdit Tip:Ŀ
  QEdit can be configured to have the Cut and Copy commands 
  act on the current cursor line if no Block is marked.     
  Refer to the "Advanced Options" section of Chapter 2 for  
  more information.                                         
 

 Block Commands          -  Manipulating Blocks Using Scratch Buffers
 
 A Scratch Buffer is a special type of buffer to which you assign a name.
 QEdit allows you to create and name up to 99 Scratch Buffers for each
 editing session.  These can be useful if you have several different
 Blocks of text that you want to insert in multiple locations.  The
 commands StoreScrbuff <Ctrl BS>, AppendScrbuff <Ctrl BA>, and GetScrbuff
 <Ctrl BL> are used to place text in, and retrieve text from, a Scratch
 Buffer.  Whenever you issue one of these commands, QEdit will ask you
 for the name of the Scratch Buffer.  If you want to use an already
 created scratch buffer, and do not remember the name, just press <Enter>
 on an empty prompt (press the DelLine key to quickly remove any text in
 a prompt) and a list of existing Scratch Buffers will be shown, allowing
 you to select the appropriate one.  Finally, you can remove a Scratch
 Buffer, if it is no longer needed, with the DelScratchBuff <Ctrl BD>
 command.

 The contents of all Scratch Buffers are discarded when the editor is
 terminated.
 * StoreScrbuff <Ctrl BS>, AppendScrbuff <Ctrl BA>
   To place a Block of text into a named buffer:
   1. Mark the Block.
   2. If you want to create a new Scratch Buffer containing the marked
      Block, execute StoreScrbuff <Ctrl BS>.  (This command is also used
      if you wish to replace the current contents of a Scratch Buffer
      with the marked Block.)  If you want to append the marked Block to
      the current contents of the Scratch Buffer, execute AppendScrbuff
      <Ctrl BA>.
   3. QEdit prompts for the name of the Scratch Buffer.
 Ŀ
 Store (Append) to buffer:                                
 
   4. Enter a name.  It is best to use a name which reflects the contents
      of the buffer and is easily remembered.  Or press <Enter> to get a
      list of existing Scratch Buffers, if you cannot remember the name
      and want to use an existing Buffer.
   The Block is now stored in a Scratch Buffer under the assigned name.
   * GetScrbuff <Ctrl BL>
     To retrieve the contents of a named Scratch Buffer and insert it at
     the current cursor position:
     1. Position the cursor where you wish the contents of the named
        Scratch Buffer to be inserted.
     2. Enter GetScrbuff <Ctrl BL>.  QEdit prompts for the name of
        the Scratch Buffer to be retrieved.
 -Ŀ
 Get from buffer:                                       
 
     3. Enter the name of the desired Scratch Buffer, or press <Enter> to
        choose from a list of existing Scratch Buffers.
     4. Repeat the above steps whenever you want to insert the contents
        of a Scratch Buffer into your text.

 Block Commands          -  Examples of Block Commands
 
 This section contains examples of commonly used Block Commands.
 * Copying or moving a Block within the same file.
   1. Position the cursor at the beginning of the Block to be copied or
      moved.
   2. Enter DropAnchor <Alt A> to mark a stream of characters, or
      MarkLine <Alt L> to mark whole lines, or MarkColumn <Alt K> to mark
      a column of text.
   3. Position the cursor at the end of the Block to be copied or moved.
   4. Enter DropAnchor, MarkLine, or MarkColumn again to mark the end of
      the Block.
   5. Move the cursor to the location where you want to insert the marked
      Block.
   6. Enter CopyBlock <Alt C>, CopyOverBlock <Alt Z> (column Blocks
      only), or MoveBlock <Alt M>.
   7. Enter UnmarkBlock <Alt U> to unmark the Block.
   The Block has now been copied or moved.

 * Copying or moving a Block to another file.
   1. Position the cursor at the beginning of the Block to be copied or
      moved.
   2. Enter DropAnchor <Alt A> to mark a stream of characters, or
      MarkLine <Alt L> to mark whole lines, or MarkColumn <Alt K> to mark
      a column of text.
   3. Position the cursor at the end of the Block to be copied or moved.
   4. Switch to the "target" file using the file commands EditFile,
      NextFile, or PrevFile.
   5. Move the cursor to the location in the file where you want to
      insert the marked Block.
   6. Enter CopyBlock <Alt C>, CopyOverBlock <Alt Z> (column Blocks
      only), or MoveBlock <Alt M>.
   7. Enter UnmarkBlock <Alt U> to unmark the Block.
   The Block has now been copied or moved.

 * Copying or moving a Block for multiple insertions in the same file.
   If you want to insert the same Block at several positions within a
   file, follow these steps:
   1. Position the cursor at the beginning of the Block to be copied or
      moved.
   2. Enter DropAnchor <Alt A> to mark a stream of characters, or
      MarkLine <Alt L> to mark whole lines, or MarkColumn <Alt K> to mark
      a column of text.
   3. Position the cursor at the end of the Block to be copied or moved.
   4. If you want to leave the Block in its original position and insert
      copies of it at other locations, then enter Copy <Grey +>.
      If you want to delete the Block from its original position and
      insert copies of it at other locations, then enter Cut <Grey ->.
      The Block is now stored in the Scrap Buffer.
   5. Move the cursor to the location in the file where you want to
      insert the Block.
   6. Enter Paste <Grey *> or PasteOver <Ctrl PrtSc> (column Blocks
      only).
   The Block is now inserted.  Repeat steps 5 and 6 for each additional
   insertion.

 * Copying or moving a Block for multiple insertions in more than one
   file.
   If you want to insert the same Block at several positions in more than
   one file, follow these steps:
   1. Position the cursor at the beginning of the Block to be copied or
      moved.
   2. Enter DropAnchor <Alt A> to mark a stream of characters, or
      MarkLine <Alt L> to mark whole lines, or MarkColumn <Alt K> to mark
      a column of text.
   3. Position the cursor at the end of the Block to be copied or moved.
   4. If you want to leave the Block in its original position and insert
      copies of it at other locations, then enter Copy <Grey +>.
      If you want to delete the Block from its original position and
      insert copies of it at other locations, then enter Cut <Grey ->.
      The Block is now stored in the Scrap Buffer.
   5. Switch to the "target" file using the file commands EditFile,
      NextFile, or PrevFile.
   6. Move the cursor to the location in the file where you want to
      insert the Block.
   7. Enter Paste <Grey *> or PasteOver <Ctrl PrtSc> (column Blocks
      only).
   The Block is now inserted.  Repeat steps 5-7 for each additional
   insertion.

 * Copying multiple Blocks for insertion in one or more files.
   If you have several Blocks that you want to insert in several
   different files, follow these steps:
   1. Position the cursor at the beginning of the first Block.
   2. Enter DropAnchor <Alt A> to mark a stream of characters, or
      MarkLine <Alt L> to mark whole lines, or MarkColumn <Alt K> to mark
      a column of text.
   3. Position the cursor at the end of the first Block.
   4. Enter AppendScrbuff <Ctrl BA> if you want to append to an existing
      Scratch Buffer.  Otherwise, enter StoreScrbuff <Ctrl BS> to create
      or overwrite an existing Scratch Buffer.
   5.  QEdit will prompt for the name of the buffer.  Enter a name. (It
       is best to use a name which reflects the contents of the buffer
       and is easily remembered).
       The Block is now stored in a Scratch Buffer under the assigned
       name.  Repeat steps 1-5 for each additional Block you want to
       store.
   6. Switch to the "target" file using the file commands EditFile,
      NextFile, or PrevFile.
   7. Move the cursor to the location in the file where you want to
      insert a Block.
   8. Enter GetScrbuff <Ctrl BL>.  QEdit will prompt for the name of the
      Scratch Buffer.  Enter the name of the desired Scratch Buffer for
      insertion.
   Repeat steps 6 through 8 for each insertion of a stored Block.

 Non-Block Commands
 
 In addition to QEdit's array of Block commands, there are also many
 commands for manipulating your text which do not depend on marked
 Blocks.  This section explains non-Block commands.

 Non-Block Commands          Adding Text
 
 * AddLine <F2>
   As its name implies, this command inserts a blank line in the text.
   The line is added immediately below the current cursor line. The
   cursor is moved to the new line.  The cursor column does not change.
 * InsertLine <Alt F2>
   This command inserts a blank line in the text above the cursor line.
   The cursor remains on the new line and the cursor column does not
   change.
 * Literal <Ctrl P>
   The Literal command is used to insert control characters into the
   text.  To use this command, enter <Ctrl P> followed by a control
   character.  The control character will be inserted into the text. For
   example, to insert a formfeed character (ASCII 12) in the text, enter
   <Ctrl P> <Ctrl L>.
   This command is handy for entering the control characters represented
   by ASCII decimal values 1 through 26.  Simply enter <Ctrl P> followed
   by <Ctrl A> for ASCII character 1, or <Ctrl B> for ASCII character 2
   and so on, up to <Ctrl Z> for ASCII character 26.

 QEdit Tip:Ŀ
  An alternate and perhaps easier method of entering        
  control characters or any ASCII character into your text  
  is to hold down the <Alt> key and enter the decimal       
  equivalent of the ASCII character using the numeric       
  keypad.  For example, to insert a formfeed character      
  (ASCII 12) in the text, just enter <Alt 12> using the     
  numeric keypad.                                           
  If a linefeed character (ASCII 10) is entered, QEdit will 
  split the line at this position the next time the file is 
  edited.                                                   
  Another method for entering ASCII characters into the     
  text is to use the AsciiChart command, described below.   
 
 * AsciiChart <Esc><O><T>
   Displays a scrollable ASCII chart on the screen.  Press <Enter> to
   have the selected character inserted into the text at the current
   cursor position.
 * ToggleBoxDraw <Shift F1>
   This is a specialized command which is really a mode of operation that
   can be switched ON or OFF.  If switched ON, the cursor movement keys
   (up, down, right, left) can be used to "draw" lines in the text.  This
   can be very useful for creating graphs and tables.  To switch Box
   Drawing mode ON, enter <Shift F1>.  To switch OFF, enter <Shift F1>
   again.
 * ToggleEnterMatching <Esc><O><E>
   This is also a specialized command which is really a mode of operation
   that can be switched ON or OFF.  If switched ON, QEdit will
   automatically insert into the text a corresponding ), ], or "
   character each time a (, [, or " character, respectively, is entered.
   To switch EnterMatching mode ON, enter <Esc><O><E>.  To switch OFF,
   enter <Esc><O><E> again.

 Non-Block Commands          Copying Text
 
 * GetPrev <Ctrl - (dash)>
   This command copies the character directly above the cursor onto the
   cursor line.  To get an idea of how this command works, place the
   cursor at the beginning of any line which has text on the line
   immediately above it.  Now press <Ctrl - (dash)> and hold it down. The
   cursor will move to the right while copying the the characters from
   the line above.
 * DupLine <F4>
   This command simply makes a copy of the current cursor line and
   inserts this copy on the line immediately below the cursor line. The
   cursor is placed on the new line.
 * Copy <Grey +>, Paste <Grey *>
   Refer to the "Block Commands" section in this chapter for a complete
   explanation of these commands.  The commands are included here
   because, if desired, the User can configure QEdit so that these
   commands act on the current cursor line in the same manner in which
   they act on Blocks.  For more information on how to configure this
   option, refer to the "Advanced Options" section of Chapter 2.

 Non-Block Commands          Moving Text
 
 * Align
   This command lines up the left-most character of the cursor line with
   the left-most character of the line above it.  This allows you to
   align portions of text which require a common left margin. This
   command also moves the cursor down one line; thus, large portions of
   text can be aligned very quickly by entering this command and holding
   the command key down.
 * JoinLine  <Alt J>
   This command will join the following line to the end of the current
   line.  The cursor position does not change.
   If the cursor is positioned on or before the last non-blank character
   of the line, the line below will be appended immediately following the
   last non-blank character.
   If the cursor is positioned beyond the last non-blank character of the
   line, the line below will be appended beginning at the current cursor
   position.
   If the line below the cursor line is blank, the blank line will be
   deleted.
 * SplitLine <Alt S>
   This command will split the current line at the cursor position. The
   cursor position will not change.
 * Return <Enter>
   Before reading the explanation of the Return command, it may be
   helpful to review the discussion of Insert mode in the "Modes" section
   in this chapter.
   If the editor is in Insert mode, this command performs like the
   SplitLine command; that is, all text on and to the right of the cursor
   on the cursor line will be deleted and inserted on a new line
   immediately below the cursor line.  The cursor, however, will be
   placed on the new line.
   If the editor is not in Insert mode, this command will simply place
   the cursor at the beginning of the line below the cursor line.  No
   text will be affected.
   If the editor is in AutoIndent mode, the cursor will be placed at the
   left margin instead of at the beginning of the line.

 QEdit Tip:Ŀ
  QEdit can be configured so that the Return command does   
  not split lines in Insert mode. Refer to the "Advanced    
  Options" section of Chapter 2 for more information.       
 
 * Cut <Grey ->, Paste <Grey *>
   Refer to the "Block Commands" section in this chapter for a complete
   explanation of these commands.  The commands are included here
   because, if desired, the User can configure QEdit so that these
   commands act on the current cursor line in the same manner in which
   they act on Blocks.  For more information on how to configure this
   option, refer to the "Advanced Options" section of Chapter 2.
 * ShiftLeft <Shift F7>, ShiftRight <Shift F8>
   Refer to the "Block Commands" section in this chapter for a complete
   explanation of these commands.  The commands are included here
   because, if there is no marked Block in the text, these commands will
   act on the current cursor line.

 Non-Block Commands          Deleting And Undeleting Text
 
 * Backspace <Backspace>, DelLtWord <Ctrl Backspace>
   If Insert mode is ON, the Backspace command deletes the character to
   the left of the cursor.  The text to the right of the cursor is pulled
   behind the cursor as it moves to the left.  If the cursor is in column
   one and you enter Backspace, the cursor line is appended to the line
   immediately above.
   If Insert mode is OFF, the Backspace command works the same as above
   except the text to the right of the cursor is not pulled behind the
   cursor as it moves left.
   The DelLtWord command is a backspace for "words".  It works just like
   the Backspace command, except that it deletes all characters from the
   cursor to the beginning of the previous word.
 * DelCh <Del>, DelRtWord <Ctrl T>
   DelCh will delete the character at the cursor position and pull the
   text to the right of the cursor, one column to the left.
   If the cursor position is to the right of the last non-blank character
   on the cursor line, the line immediately below will be appended to the
   cursor line.
   The DelRtWord command is a character delete for "words".  It works
   just like the DelCh command, except that it deletes all characters
   from the cursor to the beginning of the following word.
 * DelToEol <F6>
   This command deletes the character at the cursor position and all text
   to the right of the cursor on the current cursor line.  The cursor
   position does not change.
 * DelLine <Alt D>
   This command deletes the current cursor line from the text. All text
   below the deleted line is shifted up one line.
 * UndoCursorline  <Ctrl QL>
   This command allows you to reverse any changes you have made to the
   cursor line.  This can be helpful if you accidentally delete or change
   part of a line, or you just change your mind and want the cursor line
   back the way it was.  This command must be issued before the cursor is
   moved from the current cursor line and before any file or window
   commands are entered.  Changes made using the FindReplace command
   cannot be reversed with this command.
 * UnKill <Ctrl U>
   This command allows you to retrieve text that has been deleted by the
   DeleteBlock, DelLine, DelRtWord, or DelToEol commands.  Refer to "The
   Kill Buffer - A Safety Net" section in this chapter for a complete
   explanation of the use of this command.

 Non-Block Commands          Changing Case
 
 * Upper <Alt 1>
   This command changes the current character to its upper-case
   equivalent.  If the cursor is in a Block when invoked, all characters
   in the Block are upper-cased.
 * Lower <Alt 2>
   This command changes the current character to its lower-case
   equivalent.  If the cursor is in a Block when invoked, all characters
   in the Block are lower-cased.
 * Flip <Alt 3>
   This command flips the case of the current character.  If the cursor
   is in a Block when invoked, all characters in the Block are flipped.

 Non-Block Commands           Sorting
 
 QEdit allows you to sort a range of lines, using a column Block as the
 key upon which the sort is based.  In order to use the Sort feature,
 mark a column Block indicating the key on which to sort, and then press
 <Shift F3>.
 The Sort can be configured (either interactively or by using the
 configuration program, QCONFIG) to ignore or respect case, and to sort
 in ascending or descending order.
   Sorts all the lines spanned by a column Block, using the column
   Block as the sort key.
 * ToggleSortCaseInSensitive <Esc><B><I>
   Toggles sort case sensitivity ON or OFF.  Set this option ON to have
   the Sort command ignore the case of characters when sorting; set this
   option OFF to have the Sort command respect upper/lower case.
 * ToggleSortDescending <Esc><B><N>
   Toggles the sort order between ascending and descending.  Set this
   option OFF to sort in ascending order; set this option ON to sort in
   descending order.

 The Kill Buffer - A Safety Net
 
 QEdit maintains a temporary storage area for deleted text.  This
 provides the User a safeguard against incorrectly or inadvertently
 deleting text.  This recovery mechanism is automatically in effect when
 QEdit is running.  No action is required from the User until there is a
 need to recover deleted text.

 The temporary storage area is called the Kill Buffer.  QEdit will place
 into the Kill Buffer text which has been deleted by these commands:
                     DeleteBlock  <Alt G>
                     DelLine      <Alt D>
                     DelRtWord    <Ctrl T>
                     DelToEol     <F6>
 To understand how the Kill Buffer works and how text is recovered from
 the Kill Buffer, refer to the illustration below.
 Ŀ
                  The Kill Buffer                     
 
  Entry    Command
  Number   Entered      Buffer Contents             top
 Ŀ
   4     DelToEol    part of this line was deleted. 
 Ĵ
   3     DelRtWord   word (1 word deleted)          
 Ĵ
   2     DelLine     This entire line was deleted.  
 Ĵ
   1     DelLine     This entire line was deleted.  
 Ĵ
  empty                                             
 Ĵ
  empty                                             
 
                                                  bottom

 Each time one of the text deletion commands is used, a new entry is made
 in the Kill Buffer.  In the above example, four deletion commands have
 been issued.  The text from these four commands has been stored in the
 Kill Buffer from top to bottom. In other words, when the DelToEol
 command was issued (entry #4), the first three entries were pushed
 toward the bottom of the Kill Buffer and the newly deleted text was
 entered at the top.
 In the example, the Kill Buffer has enough room for six entries. When a
 seventh entry is made, the oldest entry, or entry number one, will be
 discarded from the Kill Buffer.  Once discarded from the Kill Buffer,
 that text can no longer be recovered.
 To recover deleted text, the UnKill <Ctrl U> command is used.  Each time
 the UnKill command is issued the most recent entry (the "top" entry of
 the Kill Buffer) is retrieved and restored to the file.  This entry is
 then deleted from the Kill Buffer, and all remaining entries move toward
 the top of the buffer by one position. In the example, the first time
 the UnKill command is issued, entry #4 will be recovered.  Next, entry
 #3 will be recovered, and so on. Thus, recovering deleted text follows
 the rule of LIFO (last in, first out).  The last entry of deleted text
 will be the first one recovered and the first entry of deleted text will
 be the last one recovered.
 Here are some additional items of which to be aware regarding the Kill
 Buffer and its uses.
 * A separate Kill Buffer is maintained for each file loaded into QEdit.
   The Kill Buffer for each file exists only as long as the file is
   loaded.
 * The default size of the Kill Buffer is 30 entries.  This may be
   changed using the QEdit configuration program. Refer to the "General
   Options" section of Chapter 2 for more information.
 * The text deleted using the DelLine, DelRtWord, and DelToEol commands
   will take up one entry in the Kill Buffer each time the commands are
   executed.  The text deleted using the DeleteBlock command will take up
   as many entries as there are lines in the Block.
   It is important to note that regardless of how large the Kill Buffer
   is configured to be, it may be possible to mark and delete a Block in
   the file which is larger than the buffer.  If this situation arises,
   QEdit will save the deleted text in the Kill Buffer from the bottom
   up.  For example, if a marked Block is 200 lines long and five lines
   too large for the Kill Buffer, then the top five lines of the Block
   will not be loaded into the Kill Buffer.
 * When issuing the UnKill command to recover deleted text, deleted lines
   will be inserted immediately before the current cursor line, and
   deleted words will be inserted immediately before the current cursor
   position.

 MACROS
 
 QEdit provides a helpful facility for creating macros, allowing you to
 simplify and automate editing tasks and to more fully customize the
 editor.  Macros can be created as simple Keyboard Macros, by having the
 editor record a series of keystrokes as they are entered from the
 keyboard.  More versatile macros can be created by assigning a series of
 editing and macro commands to specific keys within QEdit's Keyboard
 Definition file (QCONFIG.DAT).  To create even more complex macros, QMac
 (QEdit's external macro facility) can be used.
 For more information about creating and using macros within QEdit, refer
 to Chapter 3, "QEdit Macro Reference."

 PRINTING
 
 QEdit allows you to print either your entire current file or a portion
 of the current file.
 To print the entire current file, enter the PrintAll <Alt P><A> command.
 The entire current file is printed.
 To print a portion of the current file, first mark the portion of the
 file to be printed using the Block-marking commands.  (Refer to the
 "Block Commands" section in this chapter.)  Next, enter the PrintBlock
 <Alt P><B> command.  Only the marked Block portion of the file is
 printed.

 Print Formatting
 
 QEdit contains various commands to make printing easier and more useful.
 There are commands to set the left margin, the top margin, and the
 bottom margin; to specify the number of lines per page; to indicate the
 output destination; to select single-, double-, or triple-spacing; and
 to indicate whether you want to print line numbers.
 * SetPrintLeftMargin <Alt P><L> or <Esc><P><L>
   This command specifies the number of blank spaces to be used as a left
   margin.  Valid values are zero to 200.
 * SetPrintPageSize <Alt P><P> or <Esc><P><P>
   This command specifies the number of lines to be printed on each page.
   Valid values are zero to 200.  A value of zero instructs QEdit to
   print continuously without page breaks.
 * SetPrintTopMargin <Alt P><T> or <Esc><P><T>
   This command specifies the number of lines printed at the top of each
   page before the text is printed.  Valid values are zero to 200.  If
   the print page size is zero, the editor treats the document as one
   page and the top margin is ignored for all pages except the first
   printed page.
 * SetPrintBotMargin <Alt P><O> or <Esc><P><O>
   This command specifies the number of lines left blank at the bottom of
   each page.  Valid values are zero to 200.  If the print page size is
   zero, this command has no effect.
 * SetPrintDevice <Alt P><D> or <Esc><P><D>
   This command identifies the print output destination.  Choices are
   PRN, LPT1, LPT2, LPT3, or any valid DOS filename (for printing to
   disk).
 * SetPrintLineSpacing <Alt P><S> or <Esc><P><S>
   This command indicates the number of lines to advance for each new
   line of text to be printed.  Valid values are 1 to 200.  A value of 1
   signifies single-spaced output, 2 signifies double-spaced output, etc.
 * TogglePrintLineNumbers <Alt P><N> or <Esc><P><N>
   This command determines whether line numbers are printed.  Set this
   option ON to have file line numbers printed at the beginning of each
   line; set this option OFF if you do not want line numbers added to the
   print output.
 * TogglePrintPause <Alt P><U> or <Esc><P><U>
   This command determines whether the editor suspends printing between
   pages.
   To have QEdit pause after each page is sent to the printer, set this
   option ON.  (For this option to operate effectively, the print page
   size must be set to an appropriate value greater than 0.  Refer to
   SetPrintPageSize in this section.)  The editor then requires a
   keypress after every page is printed before continuing.  This allows
   you to manually feed paper to the printer, one sheet at a time.
   Set this option OFF for the editor to automatically send each
   subsequent page to the printer without pausing.

 Formfeeds
 
 QEdit automatically sends a formfeed character (ASCII 12) to the printer
 at the end of each page.  A page is determined according to the value of
 SetPrintPageSize (refer to the previous section).
 At times you may find it desirable to insert formfeed characters
 directly into your text.  For example, you want the page size for your
 text to be 55 lines, which you have set using the SetPrintPageSize
 command, but there is a 15-line table in the text that should appear on
 a page by itself.  To accomplish this, simply insert formfeed characters
 immediately before and after the table.
 To insert a formfeed character in the text, enter the Literal <Ctrl P>
 command followed by a formfeed <Ctrl L> character.  Alternatively, you
 can insert a formfeed character by holding down the <Alt> key and typing
 "12" on the alternate numeric keypad.  (You can also use the built-in
 ASCII-chart feature to insert a formfeed character.  Refer to the
 AsciiChart command in the section "Adding Text" of this chapter.) If you
 need to insert formfeed characters into your text repeatedly, you may
 want to use a macro.  An example of a macro to insert formfeed
 characters can be found in the "Example of a Keyboard Macro" section of
 Chapter 3.

 It is also possible, from within QEdit, to send a formfeed character
 directly to the printer, causing the printer to eject a page.  To do
 this, simply execute the PrintEject <Alt P><F> command.

 THE SHELL AND DOS COMMANDS
 
 (For the following discussion, "Dos" is a QEdit command, while "DOS"
 refers to the computer's operating system.)

 QEdit provides two very helpful commands that allow you to interact with
 DOS from within the editor.  The commands, Shell and Dos, allow you to
 perform most functions that you would normally execute from the DOS
 command line, then return you to your original position in the editor.

 QEdit also has an option which frees up memory when executing the Shell
 and Dos commands.  For details, see "Swapping, [QE] Shell Indicator"
 later in this section.

 * Shell <F9>
   This command should be used when executing multiple DOS commands. Upon
   executing the Shell command, control is passed to DOS. The DOS prompt
   appears on the screen, just as if no other programs were running. You
   may now enter most DOS commands. (Some exceptions are noted below.)
   Once you have entered all the desired DOS commands, simply type "exit"
   and press <Enter>, and control passes back to QEdit.  You are then
   positioned in the file exactly where you were when the Shell command
   was executed.
 * Dos <Alt F9>
   This command should be used when executing a single DOS command. Upon
   executing this command, QEdit prompts with:
 Ŀ
 Execute what:                                              
 
   You may now enter almost any DOS command.  (Some exceptions are noted
   below.)  Once the DOS command has completed, pressing any key causes
   control to pass back to QEdit.

 You should not execute any TSR programs (programs that terminate but
 remain resident in your computer) from the Shell or Dos commands.  For
 example, the DOS PRINT and GRAPHICS commands are TSR programs.
 If you mistakenly execute a TSR program from QEdit's Shell or Dos
 command, the computer's memory allocation scheme will probably become
 fragmented, and as a result, QEdit's available memory may become
 severely limited.  You should save your files, terminate QEdit, and then
 reboot the computer.

 Swapping, [QE] Shell Indicator
 
 The QEdit Dos and Shell commands can optionally swap QEdit out to disk
 or expanded memory leaving only a 2K kernel in memory.  This allows much
 more memory for running memory-hungry programs (such as compilers) from
 within QEdit. You can set this option by default using the configuration
 program (Advanced Options), or you can toggle it ON and OFF using the
 ToggleSwap command.

 While in a shell with swapping ON, QEdit will maintain a file with a
 ".SWP" file extension in your root directory.  It is very important that
 you do not delete this file while in the shell.

 Once in the shell, QEdit will optionally append "[QE]" to the DOS prompt
 string, provided that:
   1) You have defined the prompt environment variable.
   2) There is enough space left in the environment.
   3) You have set the "Change DOS PROMPT during a Shell" option to [Y]es
      via the configuration program.  (For more information, refer to the
      "Advanced Options" section of Chapter 2.)
 If you have NOT defined the prompt environment variable, then we suggest
 you do so.  It is helpful with DOS command line operations in general.
 A suggested prompt is (this should go in your AUTOEXEC.BAT file):
     set prompt=$p $t $g
 If you do have a prompt string defined, but you do not get the "[QE]"
 prompt in the QEdit shell, add the following to your AUTOEXEC.BAT:
     set x=x

 WORD-PROCESSING COMMANDS
 
 QEdit has all the features you need to do basic word processing.  In
 addition to the commands which enable you to view and edit your text
 (discussed in previous sections), QEdit provides word-wrapping,
 paragraph-reformatting capabilities, and a line-centering command.
 QEdit also contains commands for changing case and for filling a Block.
 Refer to the sections in this chapter on "Changing Case" and
 "Manipulating Blocks Directly," respectively, for more information on
 these two functions.

 * The Right Margin
   To benefit from the word-wrap and paragraph-reformatting features of
   QEdit, an appropriate right margin must first be set.  The default
   setting is column 72.  This may be changed using the configuration
   program.  (Refer to the "General Options" section of Chapter 2 for
   instructions on how to change the right margin setting.)  The value
   of the right margin is used each time the editor is initiated.
   QEdit provides the ability to change the right margin setting
   temporarily while the editor is running without affecting the
   permanent setting.  To change the right margin setting temporarily,
   execute the SetRmargin <Ctrl OR> command.  QEdit prompts with:
 Ŀ
 Right margin [1..1000]:             
 -
   Enter the desired column number for the right margin.  The new setting
   is in effect until the SetRmargin command is executed again or the
   next time the editor is initiated.  WordWrap mode (see below) is
   automatically switched ON whenever the right margin is set using this
   command.
 * WordWrap
   WordWrap is a QEdit mode which can be switched ON and OFF using the
   ToggleWordwrap <Ctrl OW> command.  When switched ON, this mode causes
   the cursor to advance automatically to the next line as text is
   entered.
   The cursor advances to the next line based on the right margin, which
   is set using the SetRmargin <Ctrl OR> command (see above).  Once the
   cursor reaches the right margin and a non-blank character is typed,
   the cursor, along with the word (that is, any continuous string of
   non-blank characters) currently being typed, will be advanced to the
   next line.
   The cursor does not advance to the next line if the current line does
   not contain at least one space.
 * Paragraph Reformatting
   The WrapPara <Alt B> command reformats text from the current cursor
   position to the next blank line or the end of the file.
   The right-hand side of the text is reformatted based on the right
   margin.  The right margin is set using the SetRmargin <Ctrl OR>
   command (see above).
   The left-hand side of the text is reformatted based on AutoIndent
   mode.  If AutoIndent mode is switched OFF, the left margin is column
   one.  If AutoIndent mode is switched ON, the first non-blank character
   on the line immediately AFTER the cursor line is used for the left
   margin.  Using the line AFTER the cursor line allows for special
   indentation for the first line of a paragraph.  (For more information
   on AutoIndent mode, refer to the "Modes" section of this chapter.)
 * CenterLine <Ctrl OT>
   Centers the current cursor line based on column 1 and the right
   margin.  Use the SetRmargin <Ctrl OR> command to change the right
   margin (see above).
   With the cursor inside of a line Block, you can execute this command
   to center several lines at once.  With the cursor inside of a column
   Block, you can center lines based on the left and right Block
   boundaries.

 MODES
 
 QEdit uses modes to affect the operation of the editor.  In general, a
 QEdit mode is a state during which certain commands or keystrokes behave
 differently.  Following is an explanation of the QEdit modes.

 * Insert mode
   Insert mode can be switched ON and OFF by pressing the <Ins> key. When
   Insert mode is ON, an "I" appears on the StatusLine.  The following
   table describes the commands and keystrokes which are affected by
   Insert mode.

   Command/
   Keystroke      Insert ON                 Insert OFF
     
   Characters,    Shifts text to right      Overwrites existing
   Space          of cursor, one column     text.
                  to the right.
   Backspace      Deletes character/word    Deletes character/word
                  to left of cursor. Text   to left of cursor. Text
                  to right of cursor        to right of cursor does
                  shifts left one column.   not shift.
   Return         Splits line at cursor     Does not split line.
                  position.  Cursor moves   Cursor moves to next
                  to next line.             line.
   TabLt,         Tabs cursor and shifts    Tabs cursor only.
   TabRt          text same number of
                  positions.

 * AutoIndent mode
   AutoIndent mode is switched ON and OFF using the ToggleIndent <Ctrl
   QI> command.  This mode, when ON, positions the cursor at the current
   left margin (This is not the same as the print left margin.) whenever
   the <Enter> key is pressed.  The current left margin is determined by
   the first non-blank character on the immediately preceding line.  When
   AutoIndent mode is ON, an "A" appears on the StatusLine.  The
   following table describes the commands and keystrokes which are
   affected by AutoIndent mode.

   Command/
   Keystroke    AutoIndent ON                 AutoIndent OFF
     
   Return       Cursor positioned below       Cursor positioned at
                first non-blank character     column one.
                of previous line.
   WrapPara     When reformatting, the left   A left margin of zero is
                margin is determined from     used when reformatting.
                the first non-blank
                character on the line
                immediately following the
                cursor line.

 * C mode
   This mode is specifically for "C" language programming.  It is
   switched ON and OFF using the configuration program.  (Refer to the
   "General Options" section of Chapter 2 for information on switching C
   mode ON and OFF.)  C mode is only in effect when AutoIndent mode is
   also ON.

   C mode, when switched ON, affects files with a ".c", ".cpp", ".cxx",
   ".h", ".hpp", or ".hxx", file extension.  When the current cursor line
   contains a "{" and the <Enter> key is pressed, QEdit issues a normal
   Return followed by a TabRt command.  Additionally, when a "}"
   character is entered, QEdit first issues a TabLt command and then
   enters the "}" character.

 * WordWrap mode
   WordWrap mode is switched ON and OFF using the ToggleWordwrap <Ctrl
   OW> command.  When switched ON, this mode causes the cursor to advance
   to the next line automatically as text is entered.

   The cursor advances to the next line based on the right margin, which
   is set using the SetRmargin <Ctrl OR> command.  Once the cursor
   reaches the right margin and a non-blank character is typed, the
   cursor, along with the word (i.e., any continuous string of non-blank
   characters) currently being typed, is advanced to the next line.

   The cursor does not advance to the next line if the current line does
   not contain at least one space.  When WordWrap mode is ON, a "W"
   appears on the StatusLine.

 * BackUp mode
   BackUp mode is switched ON and OFF using the ToggleBakups <Esc><O><B>
   command.  When BackUp Mode is switched ON, QEdit creates a backup copy
   (using the .bak file extension) for any file that is edited and saved.
   The backup copy of the file is an image of the file before it was last
   edited and saved.  When BackUp mode is OFF, no backup files are
   created.

 * MacroRecord mode
   MacroRecord mode is switched ON and OFF using the MacroRecord <Ctrl M>
   command.  This mode, when ON, records and assigns a series of commands
   and keystrokes to a designated key (or scrap area).  This creates a
   Keyboard Macro.  For a complete explanation of macros and their use,
   refer to Chapter 3, "QEdit Macro Reference."  When MacroRecord mode is
   ON, an "R" appears on the StatusLine.

 * EnterMatching mode
   EnterMatching mode is switched ON and OFF using the
   ToggleEnterMatching <Esc><O><E> command.  If switched ON, QEdit
   automatically inserts into the text a corresponding ), ], or "
   character each time a (, [, or " character, respectively, is entered.

 * Box Drawing mode
   Box Drawing mode is switched ON and OFF using the ToggleBoxDraw <Shift
   F1> command.  If switched ON, the cursor movement keys (up, down,
   right, left) can be used to "draw" lines in the text.  This can be
   very useful for creating charts and tables.  The ToggleBoxType command
   allows you to select different line drawing styles.  When Box Drawing
   mode is ON, a "B" appears on the StatusLine.

 * Fixed Tabs mode
   Fixed Tabs mode is selected using the SetTabType <Esc><O><Y> command.
   If selected, the TabRt and TabLt commands move the cursor to the next
   (or previous) tabstop as defined by the value of the cursor tab width
   (set by the SetCtabwidth <Esc><O><C> command).

 * Smart Tabs mode
   Smart Tabs mode is selected using the SetTabType <Esc><O><Y> command.
   If selected, the TabRt and TabLt commands place the cursor beneath the
   first character of the next (or previous) word on the first nonblank
   line preceding the current cursor line.

 * Variable Tabs mode
   Variable Tabs mode is selected using the SetTabType <Esc><O><Y>
   command.  If selected, the TabRt and TabLt commands move the cursor to
   the next (or previous) tabstop as defined by the variable tab stops
   (set by the SetVarTabStops <Esc><O><V> command).

   Note that all of the supported tab modes may be set via the Tab type
   menu (<Esc><O><Y>).

 * Physical Tab Expansion mode
   Physical Tab Expansion mode is switched ON and OFF using the
   ToggleTabsExpand <Alt V> command.  If switched ON, physical tab
   characters (ASCII 9) found in a file are expanded into spaces
   according to the Physical Tab Width set in the configuration program.
   (Refer to the "Tab Settings" section of Chapter 2.)  If switched OFF,
   physical tabs are displayed on the screen and a physical tab character
   is placed in the text each time the TabRt command is executed.

 QEdit Tip:Ŀ
  In general, Physical Tab Expansion mode should always be  
  set ON.  You would only want to set it OFF if you are     
  editing binary or data files that contain or require      
  physical tabs.                                            
 

 * Tabs Out mode
   Tabs Out mode is switched ON and OFF using the ToggleTabsOut <Alt I>
   command.  If switched ON, continuous spaces in a line of text are
   replaced with physical tabs (ASCII 9) according to the Physical Tab
   Width set in the configuration program.  (Refer to the "Tab Settings"
   section of Chapter 2.)  Spaces falling between single or double quotes
   are not replaced.

Ŀ
CHAPTER 2. CUSTOMIZING QEDIT                                              

 QEdit provides a configuration capability that allows the User to
 customize the editor to suit individual preferences.  There are a wide
 range of options which may be customized including key assignments,
 colors, tab settings, and printer options.

 Of course, customizing QEdit is not a requirement.  If you like the
 editor exactly the way it is, it is not necessary to use the
 configuration program.

 The configuration program is QCONFIG.EXE and is included on the
 distribution diskette, along with the other QEdit files.  The
 configuration program customizes QEdit by actually modifying the editor
 program itself - Q.EXE.

 QEdit Tip:Ŀ
  Before running the configuration program, make a backup   
  copy of the original QEdit distribution disk.             
 

 INITIATING THE CONFIGURATION PROGRAM
 
 To initiate the configuration program, type "qconfig" from the DOS
 command line, and press <Enter>.  The program displays a prompt to
 request the name of the editor program to customize.  Following is the
 prompt that is issued by the configuration program for QEdit Advanced.
     Configuration program for: QEdit Advanced v3.0
     Enter program name to config, <CR> for Q.EXE :
 Simply press <Enter>, unless you have previously renamed the editor, or
 if the editor is located in another directory.
 If you have renamed the editor, enter the appropriate filename and press
 <Enter>.  If it is located in another directory, enter the full pathname
 and press <Enter>.
 If the file to be customized could not be located on disk, the error
 message "File not found" is displayed.  Check the editor's filename
 and/or path for accuracy.
 If the version numbers of the editor and the configuration program are
 not the same, the error message "Configuration area not found" is
 displayed.  Try reloading the QEdit software from the distribution disk
 (in particular, Q.EXE and QCONFIG.EXE).

 THE CONFIGURATION MENU
 
 The configuration program displays the following menu from which to
 select the desired functions for customization.

 -Ŀ
  Configuration choices.                                     
  Choose One of the Following by pressing the indicated Key: 
  Advanced options                                           
  Colors/screen                                              
  General options                                            
  Help install                                               
  Keys                                                       
  Printer options                                            
  Quit                                                       
  Save changes and quit                                      
  Tab settings                                               
 

 Following is a brief explanation of these menu items.  They are
 discussed in detail later in this chapter.
 * Advanced options
     Contains a variety of configurable options, including those related
     to video display, DOS memory, and editor menus.
 * Colors/screen
     Allows you to change colors of various display items and to specify
     numerous other editing display options.
 * General options
     A miscellaneous category of options.
 * Help install
     Allows you to install your own Help Screen.
 * Keys
     Allows you to reassign editor commands to different keys.
 * Printer options
     Allows you to set options for printing text, such as page size.
 * Quit
     Terminates the program.  You are first prompted to save or not save
     changes.
 * Save changes and quit
     Terminates the program, unconditionally saving your changes.
 * Tab settings
     Allows you to set various tab-related options, including the
     physical and cursor tab widths.

 To make a selection from the menu, type the first letter of the desired
 menu item.  You are prompted for a response to each option within the
 category.  Each configuration option is displayed along with its current
 value.  (The Keys and Help install categories, however, work a little
 differently and simply request a filename.)
 For each option displayed, you may enter a new value.  If you do not
 wish to change the current value, simply press <Enter>.  After you have
 reviewed all options in a category, you are returned to the main
 configuration menu where you can select another category.
 Once you have completed customizing, you may save all the changes you
 have made either by simply typing "S" at the main menu prompt; or by
 typing "Q" at the main menu prompt, and then typing "Y" at the prompt,
 "Save Changes (Y/N)?".  Your changes are made permanent (that is,
 effective the next time you execute the editor) by writing them to the
 editor program itself (Q.EXE).  The configuration program then
 terminates.
 If you decide that you do not want to save your changes, type "Q" at the
 main menu prompt, then type "N" at the prompt, "Save Changes (Y/N)?". No
 changes are saved, and the configuration program terminates.

 ADVANCED OPTIONS
 
 This section contains a list of the Advanced Options which can be
 customized using the configuration program.  The configuration program
 prompt message, the default value, and a description are given for each
 option.
 * Test for presence of enhanced keyboard (Y/N)? [N] :
     If your system has an enhanced (101-key) keyboard, set this option
     to <Y> for QEdit to recognize the additional keys such as F11, F12,
     and the grey cursor keys.

 QEdit Tip:Ŀ
  Many TSRs, including mouse drivers, do not properly       
  recognize the enhanced keyboard.  If you are using a TSR  
  and it is not working with QEdit, try setting this option 
  to <N>.                                                   
 
 * Swap to Expanded memory or DISK on the Dos and Shell commands (Y/N)? [Y] :
     Select <Y> if you want QEdit to swap itself out of DOS memory and to
     expanded memory or disk whenever the Dos or Shell commands are
     executed.  This will leave a small 2K kernel of QEdit in DOS memory,
     freeing up the rest of DOS memory for running other applications,
     such as compilers or spreadsheets, out of the Dos or Shell commands.
 * Drive for disk swapping on the Dos/Shell commands *=default-drive [A..Z] [C] :
     If you selected <Y> for the previous option, then specify here the
     disk drive designation to be used for swapping.  Enter an asterisk
     ("*") if you want QEdit to default to your current drive for
     swapping.
 * Should QEdit change the cursor size (Y/N)? [Y] :
     By default, QEdit uses a small cursor when Insert mode is OFF and a
     medium cursor when Insert mode is ON.  Select <N> if you do not want
     QEdit to change the cursor size.
 * Do you want a large flashing cursor (Y/N)? [N] :
     If you want to use a large flashing block cursor, set this option to
     <Y>.  This option is great for laptop users.
 * Size of cursor in Insert mode [0..7] [4] :
     Determines the size of the cursor when Insert mode is ON.  A value
     of 0 indicates that no cursor indication is to be displayed.  Values
     1 to 7 indicate increasingly larger flashing cursor sizes.
 * Size of cursor in overwrite mode [0..7] [1] :
     Determines the size of the cursor when overwrite mode is ON.  A
     value of 0 indicates that no cursor indication is to be displayed.
     Values 1 to 7 indicate increasingly larger flashing cursor sizes.
 * Get num rows on screen from BIOS data area (100% IBM PC only)(Y/N)? [N] :
     FOR NON EGA/VGA SYSTEMS ONLY.  Set this option to <Y> if you want
     QEdit to automatically detect the number of rows on your screen.
     Setting this option to <Y>, to automatically detect the number of
     rows on your screen, only works if you have an IBM PC-AT or 100%
     compatible.  For example, setting this option to <Y> does NOT work
     on AT&T 6300s.
 * Number of rows on screen (NOT NEEDED with EGA/VGA) [25..255] [25] :
     FOR NON EGA/VGA SYSTEMS ONLY.  If you set the previous option to
     <N>, then you must provide the number of rows on your screen here.
     You should set this option to 25 unless you have a special card and
     monitor (such as a Genius Video System) that allow you to display
     more than 25 rows.
 * Do you want the Return command to split lines in Insert mode (Y/N)? [Y] :
     Normally, the Return command splits the current line at the cursor
     when executed with Insert mode ON.  This means that the portion of
     the line following the cursor is inserted on a new line.  If Insert
     mode is OFF, the Return command simply places the cursor at the
     beginning of the next line.
     If you select <N> for this option, the Return command always acts as
     if Insert mode is OFF.  Return moves the cursor to the beginning of
     the next line with no effect on the text.
 * Should Cut and Copy use current line if no block marked (Y/N)? [N] :
     If you enter <Y> for this option, the current cursor line is used
     when you execute the Cut or Copy command and no Block is marked in
     the current file.
 * Do you want the Escape command to invoke the menus (Y/N)? [Y] :
     By default, the Escape command displays the pull-down menu, when
     executed outside of the menu or any QEdit prompts.  If you do NOT
     want the Escape command to do this, select <N> for this option.
 * Should the editor restore the starting drive/dir on program exit (Y/N)? [Y] :
     Set this option to <Y> if you want to return to the original DOS
     drive and directory on program exit regardless of which drives and
     directories you have accessed with the QEdit directory picker or the
     Dos or Shell commands.
 * Should the editor change the DOS PROMPT during a shell (Y/N)? [N] :
     Set this option to <Y> if you want the following to be appended to
     the DOS prompt during a QEdit Shell: [QE].
 * Should TabRt/TabLt be allowed to shift an entire block (Y/N)? [N] :
     Set this option to <Y> if you want the TabRt and TabLt commands to
     shift entire marked Blocks when the cursor is within the marked
     Block.
 * Date format: 1=MM-DD-YY, 2=DD-MM-YY, 3=YY-MM-DD [1] :
     Determines the date format used by the InsertDate command.  The date
     string consists of a three-character abbreviation for the day of the
     week, followed by the numerical date of the month.  The order of the
     elements of the date of the month can be selected from three
     options:  select <1> for month, followed by day of the month,
     followed by 2-digit year; select <2> for day of the month, followed
     by month, followed by 2-digit year; select <3> for 2-digit year,
     followed by month, followed by day of the month.
 * Character to use to separate the elements of the date [-] :
     Determines the separator character used by the InsertDate command.
     Select the character to be used to separate the day, month, and year
     elements of the date.
 * Time format: 1=24-hour, 2=12-hour [1] :
     Determines the time format used by the InsertTime command.  Select
     <1> for 24-hour time format; select <2> for 12-hour time format.
 * Character to use to separate the elements of the time [:] :
     Determines the separator character used by the InsertTime command.
     Select the character to be used to separate the hours and minutes
     (and seconds for 24-hour format) elements of the time.

 COLORS/SCREEN OPTIONS
 
 This section contains a list of the Screen and Screen Color Options
 which can be customized using the configuration program.  The
 configuration program prompt message, the default value, and a
 description are given for each option.
 * StatusLine position: "T" for top, "B" for bottom  [T] :
     Indicates whether the StatusLine is to be positioned at the top line
     or the bottom line of the screen.
 * StatusLine fill character [ ] :
     This character is used to "break up" the information on the editor's
     StatusLine.  The default is the space character.  For example, if
     the dash character is specified, the StatusLine would look like
     this:
 Ŀ
 L 15 C 15IRB411K*c:\qedit\qedit.docĳ
 
 * Display hex/decimal values of current character on StatusLine (Y/N)? [N] :
     Shows the hexadecimal and decimal values of the current character at
     the right-hand edge of the StatusLine.
 * Do you want the display "boxed" (Y/N)? [N] :
     Indicates whether the editing screen is to be completely enclosed in
     a box.
 * Do you want the original screen restored upon termination (Y/N)? [Y] :
     Determines whether QEdit is to restore the original screen upon
     exiting the program.  Be aware that setting this option to <Y>
     causes the editor to require an additional 4K of memory; however,
     this can be very handy after long editing sessions to see what you
     were doing before you started.
 * Do you want "snow" checking (Y/N)? [N] :
     Determines whether QEdit should slow down screen updating to
     eliminate "snow" (a sparkling appearance on the screen that results
     from updating the screen too quickly).
     If this option is set to <Y>, and QEdit determines that your system
     has a Color/Graphics Adapter card (CGA), the editor does not write
     to the screen at full speed, in order to avoid "snow".  If you have
     a CGA card that does not create snow effects, set this option to <N>
     so that QEdit updates the screen as quickly as possible.
     If you have a VGA, EGA, COMPAQ, ZENITH, or other color adapter that
     allows full speed screen updating without "snow", then set this
     option to <N>.
     This option has no effect on monochrome and true EGA/VGA cards.
 * Number of columns to scroll horizontally for screen lt/rt commands
   [1..400] [1] :
     Specifies the number of columns that QEdit should scroll when you
     execute the ScreenLeft or ScreenRight commands.
 * Startup video mode: 0=current, 1=25lines, 2=28lines, 3=43/50lines [0] :
     Determines whether QEdit sets an initial video mode upon startup.
     0:  Use the current video mode
     1:  Set the monitor to 25-line mode
     2:  Set the monitor to 28-line mode     (VGA only)
     3:  Set the monitor to 43/50-line mode  (EGA = 43, VGA = 50)
 * Startup attribute set: 0=AutoDetect, 1=Monochrome, 2=Color [0] :
     Determines whether QEdit uses color or monochrome attributes for the
     screen display.
 * Do you want to configure the mono attribute set (Y/N)? [N] :
     Select <Y> if you wish to specify the attributes to use for the
     monochrome attribute set.
 * Do you want to configure the color attribute set (Y/N)? [N] :
     Select <Y> if you wish to specify the attributes to use for the
     color attribute set.  (This option is skipped if you select <Y> for
     the previous option.)
 Enter a number, in response to each option, based on the color in which
 the number appears on the chart.
 If you have a monochrome screen, many of the values in the chart will
 appear to be the same color.  However, you still have the options of
 normal, highlighted, underlined, and reverse video.  If you have a color
 monitor, you can take advantage of a wider array of options.  (The
 default monochrome setting is shown in the text of each prompt message
 below.  The default color setting is shown to the right of the prompt
 message.)
 * Attribute for Blocked Text [112]:         Default Color Setting: [120]
     The color used for marked Blocks.
 * Attribute for Error msgs [112]:            Default Color Setting: [15]
     The color used for warning and error messages.
 * Attribute for Text Area [7]:               Default Color Setting: [27]
     The color used for normal text (the editing screen).
 * Attribute for StatusLine [112]:           Default Color Setting: [112]
     The color used for the StatusLine.
 * Attribute for Cursor Line [15]:            Default Color Setting: [30]
     The color used for the cursor line.  Reverts to normal when a
     Block is marked.
 * Attribute for Messages [15]:               Default Color Setting: [15]
     The color used for QEdit messages.
 * Attribute for Hi-lited items [9]:           Default Color Setting: [9]
     The color used for "found" search strings when using the Find and
     FindReplace commands.
 * Attribute for EOF line/indicator [15]:     Default Color Setting: [15]
     The color used for the "End of File" line.
 * Attribute for Help Screen [112]:          Default Color Setting: [112]
     The color used for the Help Screen.
 * Attribute for display Box Border [15]:     Default Color Setting: [31]
     The color used for the border around the editor, if the editing
     screen is boxed.
 * Attribute for PopUp windows [15]:         Default Color Setting: [112]
     The color used for the border around the pull-down menus and the
     prompt boxes.
 * Attribute for Menu items [15]:            Default Color Setting: [112]
     The color used for items within sub-menus of the pull-down menu.
 * Attribute for Selected Menu items [112]:   Default Color Setting: [32]
     The color used for selected items within the pull-down menus.

 GENERAL OPTIONS
 
 This section contains a list of the General Options which can be
 customized using the configuration program.  The configuration program
 prompt message, the default value, and a description are given for each
 option.
 * Do you want the DelCh command to join lines if at EOL (Y/N)? [Y] :
     Affects the behavior of the DelCh command.  Set this option to <N>
     if you want the DelCh command to be restricted so that it only works
     on the current line.  Set this option to <Y> if you want the DelCh
     command to work across line breaks.  This means that if you issue
     DelCh at the end of the line, the following line is joined to the
     end of the cursor line (just as if you had issued a JoinLine
     command).
 * Do you want PQuit, Exit, and File to return to EditFile prompt (Y/N)? [Y] :
     If only 1 file is being edited, QEdit can either terminate or ask
     for another file to edit whenever the PQuit, Exit, or File commands
     are executed.  To have QEdit terminate, select <N>.
 * Do you want the editor to start in WordWrap mode (Y/N)? [N] :
     Determines whether WordWrap mode is initially ON or OFF each time
     QEdit is executed.  Set this option to <Y> if you want WordWrap mode
     to be ON each time QEdit is started; otherwise, set it to <N>. Refer
     to the "Word-Processing Commands" section of Chapter 1 for more
     information on WordWrap mode.
 * Default right margin for WordWrap [1..1000] [72] :
     Indicates the default right margin setting to be used each time
     QEdit is executed.  Set this option to a value from 1 to 1000.
     Refer to the "Word-Processing Commands" section of Chapter 1 for
     more information.
 * Do you want the editor to start in Insert mode (Y/N)? [Y] :
     Determines whether Insert mode is initially ON or OFF each time
     QEdit is executed.  Set this option to <Y> if you want Insert mode
     to be ON each time QEdit is started; otherwise, set it to <N>. Refer
     to the "Modes" section of Chapter 1 for more information on Insert
     mode.
 * Do you want the editor to start in AutoIndent mode (Y/N)? [Y] :
     Determines whether AutoIndent mode is initially ON or OFF each time
     QEdit is executed.  Set this option to <Y> if you want AutoIndent
     mode to be ON each time QEdit is started; otherwise, set it to <N>.
     Refer to the "Modes" section of Chapter 1 for more information on
     AutoIndent mode.
 * Do you want the editor to use "sticky" AutoIndent (Y/N)? [N] :
     Determines whether QEdit searches more than one line backward for a
     nonblank line to use for autoindenting.  Set this option to <Y> if
     you want autoindenting to search back more than one line, if
     necessary, to find a nonblank line.  AutoIndent mode must be set ON
     for this option to work.  Refer to the "Modes" section of Chapter 1
     for more information on AutoIndent mode.
 * Load wildcarded filespecs from the command line (Y/N)? [Y] :
     Affects QEdit's behavior when filenames are specified containing
     wildcard characters (* or ?), from the DOS command line.  Set this
     option to <Y> if you want QEdit to load every file that matches the
     wildcarded specification.  (For example, if you enter "q *.doc",
     QEdit loads all files with the extension ".doc").  Set this option
     to <N> if you want QEdit to display a pull-down menu list of all the
     files which match the wildcarded specification.  (You can then
     choose the file you want to edit by using the cursor keys to move to
     the desired file and then pressing <Enter>.)
 * Load wildcarded filespecs from inside the editor (Y/N)? [N] :
     Affects QEdit's behavior when filenames are specified containing
     wildcard characters (* or ?) within the prompt box for the EditFile
     command.  Set this option to <Y> if you want QEdit to load every
     file that matches the wildcarded specification.  (For example, if
     you enter "*.doc", QEdit loads all files with the extension ".doc").
     Set this option to <N> if you want QEdit to display a pull-down menu
     list of all the files which match the wildcarded specification.
     (You can then choose the file you want to edit by using the cursor
     keys to move to the desired file and then pressing <Enter>.)
 * Do you want the editor to start in EnterMatching mode (Y/N)? [N] :
     Determines whether EnterMatching mode is initially ON or OFF each
     time QEdit is executed.  Set this option to <Y> if you want
     EnterMatching mode to be ON each time QEdit is started; otherwise,
     set it to <N>.  Refer to the "Modes" section of Chapter 1 for more
     information on EnterMatching mode.
 * Use CMODE for .c, .cpp, .cxx, .h, .hpp, and .hxx files (Y/N)? [Y] :
     Determines whether C mode is initially ON or OFF each time QEdit is
     executed.  Set this option to <Y> if you want C mode to be ON each
     time QEdit is started; otherwise, set it to <N>.  Refer to the
     "Modes" section of Chapter 1 for more information on C mode.
 * Default number of deleted lines to keep per file [0..300] [30] :
     Indicates the number of deleted lines that are saved by QEdit, and
     can later be recalled using the UnKill command.  For every file that
     is loaded in an editing session, this maximum number of lines is
     available.  Enter a value from 0 to 300.  (A value of 0 indicates
     that no deleted lines are to be saved.)
 * Remove trailing blanks from edited lines (Y/N)? [Y] :
     Determines whether QEdit is to remove trailing blanks from each line
     of text that is edited.  Set this option to <Y> if you want trailing
     blanks removed. (For most purposes, this setting is preferable, as
     it generally results in smaller files.)  Set this option to <N> if
     you want spaces at the end of lines to be preserved.
 * Terminate files with a Control Z (Y/N)? [N] :
     Determines whether QEdit is to add a Control Z to the end of a file
     when it is saved to disk.  Set this option to <Y> if you want to
     have a Control Z added to the end of files; otherwise, set this
     option to <N>.
     MS/PC-DOS versions 2.0 and above do NOT require an end-of-file
     terminator.  (The exact size of the file is stored in the
     directory.)  However, some programs that were directly translated
     from their CP/M versions still require the Control-Z end-of-file
     marker.  If you have one of these programs for which you are
     creating text files, you should select <Y> for this option.
 * Do you want "backups" of saved files (Y/N)? [Y] :
     Determines whether QEdit is to create a backup file (an image of the
     file before you did any editing) with the .bak extension each time
     you save a file.  Set this option to <Y> to have backups created;
     otherwise, set this option to <N>.
 * Prompt for filename on open window (Y/N)? [N] :
     Affects QEdit's behavior when the HorizontalWindow command is
     executed.  Set this option to <Y> to have QEdit prompt for the name
     of the file you want to load into the new window.  Set this option
     to <N> to have QEdit load the next file in the ring into the new
     window.  (If only one file is loaded, another window containing the
     same file is opened.)
 * Close window when a file is quit (Y/N)? [Y] :
     Affects QEdit's behavior when more than one window is open on the
     screen and a command is executed that discards a file from the
     editor.  Set this option to <Y> to have QEdit close the window
     containing the discarded file.  Set this option to <N> to have QEdit
     load the next file in the ring into that window.
 * Display End Of File marker (Y/N)? [Y] :
     Determines whether QEdit displays an indicator line at the end of
     the file, in the following format:

                <*** End of File ***>

     Set this option to <Y> to have the end-of-file indicator line
     displayed; set this option to <N> if you do not want this line
     displayed.
 * Insert line blocks ABOVE the cursor line (Y/N)? [N] :
     Determines whether QEdit is to insert line Blocks above or below the
     cursor line when the Paste, CopyBlock, or MoveBlock commands are
     executed.  Set this option to <Y> to have line blocks inserted above
     the cursor line; set this option to <N> to have line blocks inserted
     below the cursor line.
 * Do you want a beep on warning messages and missed searches (Y/N)? [Y]:
     Determines whether QEdit sounds the bell on any QEdit warning
     message and when there is no match resulting from a Find or
     FindReplace operation.  If you want the bell to sound, select <Y>;
     otherwise, select <N>.
 * Default Find options [IWBG] [I]:
     Indicates the default search options when using the Find command.
     The available default options are: "I" (Ignore case), "W" (Words
     only), "B" (Backwards search), and G (Global search).  Multiple
     options can be specified.
     Note that even when these options are not selected as defaults, they
     can still be selected from within the editor when the Find command
     is executed.  For more information on the Find command and the
     available Find options, refer to the "Finding Text" section of
     Chapter 1.
 * Default FindReplace options [IWBNG] []:
     Indicates the default search and replace options when using the
     FindReplace command. The available default options are: "I" (Ignore
     case), "W" (Words only), "B" (Backwards search), "N" (No prompting),
     and G (Global search). Multiple options can be specified.
     Note that even when these options are not selected as defaults, they
     can still be selected from within the editor when the FindReplace
     command is executed.  For more information on the FindReplace
     command and the available FindReplace options, refer to the
     "Replacing Text" section of Chapter 1.
 * Should Find and Repeat_Find center the found text (Y/N)? [Y]
     Affects QEdit's behavior when the Find and RepeatFind commands are
     executed.  Set this option to <Y> to have the line containing the
     found text centered vertically within the current window.  Set this
     option to <N> to have line containing the found text positioned on
     the same row as the current line.
 * Default file extension number 1 [.c]:
     Specifies the first default file extension.  See explanation below.
 * Default file extension number 2 [.pas]:
     Specifies the second default file extension.  See explanation below.
 * Default file extension number 3 [.inc]:
     Specifies the third default file extension.  See explanation below.
 * Default file extension number 4 [.asm]:
     Specifies the fourth default file extension.  See explanation below.
 * Default file extension number 5 [.h]:
     Specifies the fifth default file extension.  See explanation below.
 * Default file extension number 6 [.doc]:
     Specifies the sixth default file extension.  See explanation below.
     Six default file extensions are provided to save keystrokes each
     time a filename to edit is entered.  These file extensions are used
     when QEdit is executed with a filename from the command line or when
     the EditFile command is entered.
     If the filename entered does not end with a period (and does not
     include the DOS wildcard characters) and that file does NOT exist as
     named, QEdit appends the first default file extension to the name
     and tries to load that file.  If that file exists, then QEdit loads
     it for editing.  If it does not exist, QEdit repeats the process
     with the other default file extensions.  If no matching file is
     found, then QEdit creates a new file as originally named.
     For each of the six previous options, enter the desired file
     extension.
 * Default to case-insensitive sort (Y/N)? [N] :
     Indicates the default case-sensitivity selection when the Sort
     command is executed.  Set this option to <Y> to have the Sort
     command ignore the case of characters; set this option to <N> to
     have the Sort command respect the upper/lower case of characters.
 * Default to descending-order sort (Y/N)? [N] :
     Indicates the default sort order when the Sort command is executed.
     Set the option to <Y> to sort in descending order; set this option
     to <N> to sort in ascending order.

 THE HELP SCREEN
 
 QEdit allows you to create a customized one-page Help Screen, which may
 be displayed at any time from within the editor by executing the
 QuickHelp <F1> command.  This section contains instructions for
 installing your own Help Screen using the configuration program.

 Of course, you may prefer to use the default Help Screen which is
 already loaded into QEdit.  In that case no action is required.
 However, if you want to design and use your own Help Screen, simply
 follow these steps:
 1. Create an 80 x 25 (80 columns by 25 lines) text file (you can use
    QEdit to create this file) and list all of the information that
    should appear on the screen when the QuickHelp command is executed.
    We suggest that you list less frequently used commands in this file,
    while leaving out more familiar commands such as cursor movement and
    paging.
 2. Run QCONFIG and select option <H> from the configuration menu.
 3. At the prompt, enter the name of the Help file just created.
 That is all there is to it!  Now when you execute QuickHelp from within
 QEdit, your customized Help Screen is displayed.

 KEYBOARD CONFIGURATION
 
 QEdit provides the extremely helpful capability of assigning editor
 commands (as well as strings of characters) to almost any key you
 prefer.

 This allows you to assign frequently-used commands to keys which are
 most convenient for your use, and even to completely reassign commands
 to emulate another text editor or word processor with which you are
 already familiar.

 By taking a few minutes to review this section, your future text editing
 may become significantly more comfortable as a result of customizing
 your keyboard to suit your individual preferences.

 The Keyboard Definition File
 
 QEdit uses the Keyboard Definition file to customize the keyboard. This
 file contains a list of all the keys to which commands may be assigned.
 Supplied with QEdit is a Keyboard Definition file called QCONFIG.DAT
 which contains the default settings for the keyboard.  Other files are
 supplied which emulate certain common word processors and editors.  The
 READ.ME file contains a list of these other emulations.
 The Keyboard Definition file consists of a list of configurable keys and
 the commands or macros which are assigned to them.  The configurable
 keys are on the left side of the file, with the commands or macros
 assigned to the keys on the right.  Blank lines and lines starting with
 an asterisk "*" are ignored. The QCONFIG.DAT file, as well as Appendix
 C, contains a complete list of configurable keys.

 Control keys are specified by a "^".  For example:
     ^f1 or ^F1 specifies Control F1
     ^c  or ^C  specifies Control C
 Alternate keys are specified by a "@".  For example:
     @c  or @C  specifies Alt C
     @PgUp      specifies Alt PgUp
 Shift keys are specified by a "#".  For example:
     #f1 or #F1 specifies Shift F1
 The format of a line in the Keyboard Definition file is simply the
 keystroke followed by the command.  For example:
     f1                      QuickHelp
     #f5                     MakeCtrofScreen
     @f2                     InsertLine
     cursorup                CursorUp
     ^cursorleft             WordLeft
     @a                      DropAnchor
     ^a                      WordLeft

 QEdit Tip:Ŀ
  The configuration program ignores the case of the key     
  name, and ignores the case of the commands and of any     
  underscores that may be embedded in the commands. This    
  means that PGUP, PgUp, and pgup all refer to the same     
  key, and InsertLine, insert_line, and Insert_Line all     
  refer to the same command.                                
                                                            
  Also, the order of the keys does not matter.  The         
  configurable keys may be put in any order desired.        
 

 There is also a provision for assigning commands or macros to a
 "twokey".  A twokey consists of two distinct keystrokes, such as <Ctrl
 B> immediately followed by <A>.  To assign a command or macro to a
 twokey, enter both keystrokes of the twokey in the first column
 (keystroke column) separated by an underline.  For example, to assign
 the Exit command to the twokey, <Ctrl F1> <F2>, enter the following into
 the Keyboard Definition file:
     ^f1_f2     Exit
 (Note that if you assign a command or macro to a single key, and then
 use that same key as the initial key of a twokey sequence, you lose the
 twokey assignment.  For example, if you assign a command to <Ctrl B>,
 you would not be able to use a twokey assignment such as <Ctrl B> <A>.)
 To allow you to further customize the editor, multiple commands and/or
 text can be assigned to any configurable key (or twokey).  This is
 accomplished through the use of macros.  For more information on
 creating macros and assigning them to keys, refer to the "Creating Macro
 Programs" section of Chapter 3, "QEdit Macro Reference."

 Creating a Keyboard Definition File
 
 To customize the keyboard using the default Keyboard Definition file,
 QCONFIG.DAT, no action is required.  QEdit is distributed with this
 Keyboard Definition file already installed.

 The following outlines steps to create and install your own Keyboard
 Definition file.  (To customize the keyboard using one of the supplied
 word-processor or editor emulation Keyboard Definition files, skip to
 step number 6.)
 1.  Load the file QCONFIG.DAT into QEdit.  (From the DOS command line,
     type "q qconfig.dat" and press <Enter>).
 2.  Rename the file using the ChangeFilename command <Alt O>.
 3.  Browse through the file using the Cursor Up and Down keys.  Notice
     that the left side of the file contains a list of all configurable
     keys.  To the right of each key is the command or macro currently
     assigned to the key.  Some keys have no commands assigned.
 4.  Change the commands assigned to the keys to suit your particular
     needs.  For more information on how to assign keys, refer to the
     previous section, "The Keyboard Definition File."
 5.  Save the file and exit QEdit by pressing <Alt X>.
 6.  Run QCONFIG and select option <K> from the menu.
 7.  You will be prompted for the name of the Keyboard Definition file.
     Enter the name of the Keyboard Definition file you wish to load.  If
     you are creating your own file, enter the new name chosen in step 2.
 8.  Your key assignments are then incorporated into the editor program,
     Q.EXE, and the configuration menu reappears.
 9.  Press <S> to save your changes and terminate the program.
 10. Run the editor to insure that your key assignments function as
     desired.

 PRINTER OPTIONS
 
 This section contains a list of the Printer Options which can be
 customized using the configuration program.  The configuration program
 prompt message, the default value, and a description are given for each
 option.
 * Default left margin for printing [0..200] [0]:
     Indicates the number of spaces QEdit skips before printing each
     line.  If you do not want QEdit to skip any spaces at the beginning
     of each line, select zero.
 * Default page size for printing [0..200] [55]:
     Indicates the number of lines to be printed per page.  QEdit sends a
     formfeed character to the printer after printing this number of
     lines.  If you do NOT want QEdit to send formfeed characters (for
     continuous printing), select zero.
 * Add formfeed after printing (Y/N)? [Y] :
     Determines whether QEdit sends a formfeed character when printing is
     complete.  Select <Y> if you want a formfeed character to be sent at
     the end of the document.  (This is helpful for correctly lining up
     the printer in preparation for the next printing operation.)  Select
     <N> if you do not want a final formfeed character to be sent.
 * Default top margin for printing [0..200] [0] :
     Indicates the number of lines to be left blank at the top of each
     page during printing.
 * Default bottom margin for printing [0..200] [0] :
     Indicates the number of lines to be left blank at the bottom of each
     page during printing.
 * Include line number at beginning of each printed line (Y/N)? [N] :
     Determines whether QEdit prints line numbers at the beginning of
     each line.  To include line numbers in the printed output, select
     <Y>; otherwise, select <N>.
 * Default line spacing: 1=single, 2=double, etc... [1..200]  [1] :
     Indicates the line spacing to be used when printing.
 * Should printing pause between pages (Y/N)? [N] :
     Determines whether QEdit pauses between each printed page.  To have
     QEdit pause between pages, select <Y>.  (For this option to be
     effective, the print page size must be non-zero.)  If you do not
     want QEdit to pause between pages, select <N>.
 * Print Device: 0=PRN, 1=LPT1, 2=LPT2, 3=LPT3 [0..3] [0] :
     Determines the initial print device.

 TAB SETTINGS
 
 This section contains a list of all Tab Setting Options which can be
 customized using the configuration program.  The configuration program
 prompt message, the default value, and a description are given for each
 option.
 * Do you want the editor to start in Physical Tab Expansion mode (Y/N)? [Y] :
     Determines whether Physical Tab Expansion mode is initially ON or
     OFF each time QEdit is executed.  Set this option to <Y> if you want
     Physical Tab Expansion mode to be ON each time QEdit is started;
     otherwise, set it to <N>.  Refer to the "Modes" section of Chapter 1
     for more information on Physical Tab Expansion mode.
 * Do you want the editor to start in Tabs Out mode (Y/N)? [N] :
     Determines whether Tabs Out mode is initially ON or OFF each time
     QEdit is executed.  Set this option to <Y> if you want Tabs Out mode
     to be ON each time QEdit is started; otherwise, set it to <N>.
     Refer to the "Modes" section of Chapter 1 for more information on
     Tabs Out mode.
 * Default physical tab width [1..12] [8]:
     Specifies the tab width that QEdit uses when Physical Tab Expansion
     mode or Tabs Out mode is ON.
 * Default cursor tab width [1..12] [8]:
     Specifies the tab width that QEdit uses the TabRt and TabLt commands
     are executed.
 * Default file extension number 1 for default tabs [.c]:
   Physical tab width for above [4]:
   Cursor tab width for above [4]:
     Specifies the first default file extension for default tabs.  See
     explanation below.
 * Default file extension number 2 for default tabs [.pas]:
   Physical tab width for above [2]:
   Cursor tab width for above [2]:
     Specifies the second default file extension for default tabs.  See
     explanation below.
 * Default file extension number 3 for default tabs [.inc]:
   Physical tab width for above [2]:
   Cursor tab width for above [2]:
     Specifies the third default file extension for default tabs.  See
     explanation below.
 * Default file extension number 4 for default tabs [.asm]:
   Physical tab width for above [8]:
   Cursor tab width for above [8]:
     Specifies the fourth default file extension for default tabs.  See
     explanation below.
 * Default file extension number 5 for default tabs [.h]:
   Physical tab width for above [4]:
   Cursor tab width for above [4]:
     Specifies the fifth default file extension for default tabs.  See
     explanation below.
 * Default file extension number 6 for default tabs [.doc]:
   Physical tab width for above [8]:
   Cursor tab width for above [8]:
     Specifies the sixth default file extension for default tabs.  See
     explanation below.
     QEdit allows you to set default physical and cursor tab widths for
     up to six different file extensions.  When a file is loaded that
     matches one of these extensions, the indicated defaults are used.
     Otherwise, the defaults set in the previous two default tab options
     are used.
     For each of the six options, enter the desired file extension and
     the appropriate physical and cursor tab width values.
 * Default tab type: 0=Fixed, 1=Smart, 2=Variable [0] :
     Determines the tab type to use each time QEdit is executed.  Select
     <0>, <1>, or <2>, for Fixed, Smart, or Variable Tabs, respectively.
     Refer to the "Modes" section of Chapter 1 for more information on
     the behavior of each tab type.
 * Default Variable Tap stop columns:
    [4 8 16 24 40]
    :
     Specifies the columns at which Variable Tab stops are to be set.
     Enter the appropriate column numbers, each separated by a single
     space.  The last column at which you can set a Tab is column 255.  A
     maximum string of 255 characters can be specified.
     If you press <Enter> without entering any tabs stops, you are
     prompted with:
       Delete all Variable Tab stops (Y/N)? [N] :
     Select <Y> to remove all existing Variable Tab stops.  Select <N> to
     leave the tab stops unchanged.

Ŀ
CHAPTER 3. QEDIT MACRO REFERENCE                                          

 To simplify and automate editing tasks and to further customize the
 editor, you can create macros.  A macro is simply a series of commands
 and/or keystrokes that is assigned to a key.
 The simplest type of macro to create is a Keyboard Macro.  A Keyboard
 Macro is created by recording a series of keystrokes as they are typed
 at the keyboard, and assigning that series to a key.  For example, if
 you wish to repeatedly enter a row of asterisks, three Returns, and then
 a Tab, you could record this series and assign it to a single key, such
 as <Shift F6>.  Then, the next time you wish to enter a row of
 asterisks, three Returns, and a Tab, you only have to press <Shift F6>.
 More powerful macros can be created using the QEdit configuration
 program (QCONFIG.EXE) and the QMac program (QMAC.EXE). These macros can
 be permanently tied to QEdit (using the configuration program), or can
 be loaded as needed (using QMac).  Using these facilities, you can
 extend and customize the capabilities of the editor to suit your needs
 and preferences.  Refer to "Creating Macro Programs" and "QMac" in this
 chapter for more information.

 KEYBOARD MACROS
 
 Creating Keyboard Macros
 
 Once you have decided to assign a series of commands and keystrokes to a
 single key, creating a Keyboard Macro is simply a matter of entering
 this series while QEdit "records" the macro.
 To create a Keyboard Macro, follow these steps:
 1. Position the text and cursor to where you wish to begin entering the
    series of commands and keys.  (You may want to practice your series
    once or twice before actually recording the macro.)
 2. Execute the MacroRecord <Ctrl M> command.  An "R" appears on the
    StatusLine to indicate MacroRecord mode is ON.  The following message
    appears:
 Ŀ
 Assign to what key: (<Enter> for "scrap", <Esc> to cancel)
 -
 3. Enter the key to which you want to assign the series of commands and
    keystrokes.  This key must be a "configurable" key (see Appendix C
    for a list of configurable keys).  If a key is specified that has a
    QEdit command already assigned to it, the editor prompts you to
    determine if you want to overlay that key assignment.
    To assign the macro to a "scrap" or temporary area, simply
    press <Enter>.  The scrap area holds your macro until a new
    macro is recorded (or you exit the editor).
 4. Enter the series of commands and keystrokes to be assigned.  Note
    that the "R" still appears on the StatusLine.
 5. Execute the MacroRecord <Ctrl M> command again.  MacroRecord mode is
    turned OFF, and the "R" no longer appears on the the StatusLine.  The
    macro is now created and assigned to the key specified in step 3.

 Using Keyboard Macros
 
 To use your Keyboard Macro, position the text and cursor properly and
 press the key to which you assigned the macro (or use the ExecuteScrap
 <Ctrl Enter> command to retrieve the last macro recorded).  If the macro
 does not behave as you expected, repeat the above steps. Your old macro
 assignment is replaced with the new one.

 QEdit Tip:Ŀ
  Be aware of modes, especially Insert mode, when recording 
  and using macros.  Macros recorded with Insert mode ON    
  and then used with Insert mode OFF (and vice versa) may   
  behave very strangely.                                    
 

 Saving and Reloading Keyboard Macros
 
 Normally, macros created using this process are lost once the editor is
 terminated.  QEdit, however, provides an easy method of saving your
 macros so that they may be reloaded for use in any future editing
 session.
 To save macros for future use, you must write them to a Keyboard Macro
 file.  (This file is in a special binary format, recognizable by QEdit,
 and should not be edited as a normal text file.) The name of this file
 is specified by the user.
 To save macros once they have been created, execute the MacroWrite
 <Esc><M><W> command.  QEdit prompts with:
 Ŀ
 Macro file to write:                                       
 
 Enter the name of the file (optionally including drive and/or path) to
 contain your macros.  All Keyboard Macros currently recorded (and/or
 loaded) during the editing session are saved under the specified
 filename.  (However, macros assigned only to the scrap area, and not to
 a specific key, cannot be saved.)
 In a future editing session, when you wish to reuse your previously
 defined macros, you need only reload the macro file.  To do this,
 execute the MacroRead <Esc><M><R> command.  QEdit prompts with:
 Ŀ
 Macro file to read:                                        
 
 Enter the name of the previously saved macro file.  Your macros are
 reloaded.  You may then use them in the same manner as before.

 Example of a Keyboard Macro
 
 To create a Keyboard Macro that inserts a formfeed character (ASCII 12)
 at column one of the current cursor line, do the following:
 1. Position the cursor in the text where you would like to insert the
    formfeed character.  Set Insert mode ON.
 2. Execute MacroRecord <Ctrl M>.
 3. Press <Alt F1> to assign the macro to this key.
 4. Press the following series of keys:
     <Home>     (for the BegLine command)
     <Ctrl P>   (for the Literal command)
     <Ctrl L>   (a formfeed character)
 5. Enter MacroRecord <Ctrl M>.  The macro is now created and assigned to
    the <Alt F1> key.
 Now, when you press <Alt F1>, the cursor moves to column one and a
 formfeed character is inserted, just as if you had typed it from the
 keyboard.

 CREATING MACRO PROGRAMS
 
 As mentioned in Chapter 2, "Customizing QEdit", the QEdit configuration
 program (QCONFIG) allows you to assign multiple commands and/or text to
 a key (or twokey).  With this facility, you can easily write simple
 programs using QEdit's macro language.  These macros are included in the
 Keyboard Definition file (QCONFIG.DAT), and then added to the editor
 program itself using the configuration program.  Each time the editor is
 loaded, these macros are automatically available.  For more information
 on including macros in the Keyboard Definition file, refer to the
 "Keyboard Configuration" section of Chapter 2.
 To write a macro program, begin by editing your Keyboard Definition file
 (QCONFIG.DAT, by default).  Locate the key to which you wish to assign
 your macro program.  To the right of that key, specify MacroBegin as the
 first command, followed by any combination of text strings and QEdit
 commands, each separated by a space.  Text should be enclosed in single
 or double quotes.
 Once the macro is written, save your Keyboard Definition file and exit
 the editor.  Then execute the configuration program (QCONFIG).  Select
 the "Keys" option to update the QEdit program.  This assigns your macro
 program to the specified key.  Now when you run QEdit, you can execute
 your own custom macros by pressing the applicable key.
 Note:  The amount of space that is available for macros included in the
        Keyboard Definition file is limited to about 2K.

 * Example:
   f1  MacroBegin EditFile 'help.dat' Return
 Press <F1> and this macro loads the file "help.dat".  Note that the
 Return command is issued after the text.  This is required to terminate
 the QEdit prompt issued by the preceding EditFile command.

 * Example:
   @t  MacroBegin GSave Dos 'tpc ' CurrentFilename Return
 Press <Alt T> and this macro saves all files that have been changed, and
 then invokes the TURBO PASCAL compiler using the current file. (Note:
 There must be a space included within the quotes immediately following
 "tpc".)

 * Example:
   @f1     MacroBegin EditFile 'errors.lst' Return Quit Dos
           'tcc ' CurrentFilename ' >errors.lst' Return Return
           HorizontalWindow EditFile 'errors.lst' Return
 Press <Alt F1> and this macro runs the TURBO C compiler on the current
 file, saves the results to a file called "errors.lst", and then loads
 that file into another window after the compile is finished.

 QEdit Tip:Ŀ
  Macros can span multiple lines, as long as 2 simple rules 
  are followed: the key name must begin in column 1, and    
  all succeeding lines must begin in column 2 or greater.   
 

 In general, any commonly used sequence of commands (or a useful but
 complicated sequence of commands, for that matter) is a good candidate
 for a macro.
 We have received many helpful macro suggestions from QEdit users over
 the years.  Here is a short list of some of the more useful (and simple)
 macros.
 * A very useful QEdit command, GetPrev, copies a character from the line
   immediately above the cursor line, onto the cursor line.  Often it is
   necessary to copy this character to several succeeding lines in the
   same column.  The GetPrev command, used in a macro, makes this
   function easy.  Assign this macro to the <Alt 4> key (for example) in
   QCONFIG.DAT as follows:
   @4    MacroBegin GetPrev CursorLeft CursorDown

 * QEdit's AddLine and DelLine commands do not change the cursor
   position.  Many would prefer that the cursor move to column one when
   these commands are executed.  A solution is to change the QCONFIG.DAT
   file as follows:
   Default QCONFIG.DAT file:
   f2    AddLine
   ^y    DelLine
   Customized QCONFIG.DAT file:
   f2    MacroBegin AddLine BegLine
   ^y    MacroBegin DelLine BegLine

 * QEdit's CopyBlock and MoveBlock commands leave the copied or moved
   Block marked.  Many would prefer the Block to be unmarked.  A solution
   is to change the QCONFIG.DAT file as follows:
   Default QCONFIG.DAT file:
   @c    CopyBlock
   @m    MoveBlock
   Customized QCONFIG.DAT file:
   @c    MacroBegin CopyBlock UnmarkBlock
   @m    MacroBegin MoveBlock UnmarkBlock

 * QEdit's DropAnchor command ends or extends a Block if executed after a
   Block has been initially or entirely marked.  Some editors have a
   similar command, except that it acts as a toggle.  That is, if you are
   already marking a Block, and you press DropAnchor again, the Block is
   unmarked and marking begins again at the current cursor position.  To
   implement this behavior, change the QCONFIG.DAT file as follows:
   Default QCONFIG.DAT file:
   @a    DropAnchor
   Customized QCONFIG.DAT file:
   @a    MacroBegin UnmarkBlock DropAnchor

 * This macro allows you to edit a sorted list of files of the current
   directory.  Assign this macro to the <Alt 5> key (for example) in
   QCONFIG.DAT as follows:

   @5    MacroBegin Dos "dir *.*  sort>filedir.tmp" Return Return
         EditFile "filedir.tmp" Return DelLine DelLine DelLine DelLine

 Advanced Macro Programming
 
 The following commands and features are intended for advanced QEdit
 macro writers, to make certain kinds of macros easier to write.  In the
 examples provided, the key assignments indicated are suggested
 assignments only; you can assign each macro to the key of your choice.

 Advanced Macro Programming        Macro Pause
 
 The Pause command allows you to suspend execution of a macro, make
 entries from the keyboard, and then continue execution of the macro.
 To use the Pause command, place "Pause" at the appropriate position
 within a macro in the QCONFIG.DAT file.
 When you execute a macro containing a Pause command from within QEdit,
 its execution is suspended when the Pause command is encountered.  A "P"
 appears on the StatusLine.  At this point the User can enter text from
 the keyboard.  Press <Enter> to resume execution of the macro; press
 <Esc> to terminate execution of the suspended macro entirely.
 Please note that the <Enter> key entered from the keyboard to resume
 execution of a suspended macro is "eaten" by the Pause command; or, in
 other words, that <Enter> does not become part of the macro.
 * For example, suppose you want to create a "find" command that always
   searches forward, ignores case, and does not prompt for options.  In
   the QCONFIG.DAT file, assign to whatever key you desire (<F7> in this
   example):
   f7 MacroBegin Find Pause Return 'i' Return
   If you want to get really fancy, you could let <F7> be your
   find-forward, and <Shift F7> be your find-backward:
   #f7 MacroBegin Find Pause Return 'ib' Return

 Advanced Macro Programming        Using Paste within a Macro
 
 It can be handy to use the Paste command in a macro.  Following are some
 examples of macros using the Paste command.
 * With the FillBlock command, you can use the following macro to move a
   Block, and blank fill the space used by the Block, instead of the text
   closing in around the Block.  The macro assumes a Block is already
   marked.  The Block is Cut to the clipboard or system scrap buffer.
   You can then insert the Block where you like by pressing the Paste key
   <Grey *>.  You now have a "copy with wipe" command!
   f10 MacroBegin GotoBlockBeg Cut Paste FillBlock ' ' Return UnmarkBlock
 * A macro to take the filename at the current cursor position and load
   that file into the editor (assigned by default in QEdit to <Ctrl ]>.):
   ^] MacroBegin AltWordSet MarkWord Copy EditFile Paste Return
                 DefaultWordSet
   This macro does the following:
   AltWordSet      - sets the proper word set for filenames
   MarkWord        - marks the filename at the current cursor position
   Copy            - copies the filename into the scrap buffer
   EditFile        - initiates the EditFile command
   Paste           - inserts the copied filename into the prompt box
   Return          - terminates the EditFile prompt
   DefaultWordSet  - restores the normal word set
 * A macro to initiate a Find on the word at the current cursor position
   (assigned by default in QEdit to <Alt =>.):
   @= MacroBegin MarkWord Copy Find Paste Return Return
   This macro does the following:
   MarkWord        - marks the word at the current cursor position
   Copy            - copies the word into the scrap buffer
   Find            - initiates the Find command
   Paste           - inserts the copied word into the prompt box
   Return          - terminates the search string prompt box
   Return          - terminates the Find options prompt box

 Advanced Macro Programming        Repeating a Command within a Macro
 
 Within macros, in order to repeat the previous command "n" times, the
 following syntax can be used:
   command n
 Where "n" is a number between 1 and 32767.  The immediately preceding
 command is executed the number of times indicated.  So, for example:
   CursorDown 1
     Would move the cursor down one line (and is equivalent to just
     CursorDown by itself).
   CursorDown 10
     Would move the cursor down ten lines.

 Advanced Macro Programming        Conditional Logic for Macros
 
 Several commands are available for conditional logic within macros:
 Jump, JTrue, JFalse, MacroQuit, MacroQuitFalse, and MacroQuitTrue.
 Placement of one of these commands in a macro following another QEdit
 command allows for branching or looping during macro execution.
 All QEdit commands set an internal QEdit result code of TRUE upon
 successful execution, or FALSE if execution is unsuccessful or no action
 occurs.  These result codes can be used to determine different courses
 of action during execution of a macro, based on the outcome of a
 particular command.
 The Jump command makes an unconditional jump, regardless of the outcome
 of the preceding command.  The JTrue command makes a jump only when a
 result code of TRUE is returned; JFalse makes a jump only for a result
 code of FALSE.
 The MacroQuit command unconditionally terminates a macro.  The
 MacroQuitTrue command terminates a macro only when a result code of
 TRUE is returned; MacroQuitFalse terminate a macro only if a result code
 of FALSE is returned.
 Labels can be defined for branching, in the format "label:".  The
 maximum label length is 32 characters.
 For example, here is a macro to delete the text from the cursor position
 to the beginning of the line (assigned to the f10 key):
          f10 MacroBegin
              begin:
                CursorLeft
                MacroQuitFalse
                DelCh
                Jump begin:

 Advanced Macro Programming        Special-Purpose Macro Commands
 
 This group of macro commands force the indicated mode or setting.  If
 the setting was already in that condition, they set QEdit's result code
 to FALSE; otherwise, they set it to TRUE.
 In many cases, macros can behave differently based on the currently set
 QEdit modes.  The following 3 commands give you some control in
 establishing the proper environment so that your macro always works as
 intended.
 * SetInsMode
   Sets Insert mode ON.  To set Insert mode OFF (that is, set overwrite
   mode ON), do the following:
     SetInsMode ToggleInsert
 * SetAutoIndentMode
   Sets AutoIndent mode ON. To set AutoIndent mode OFF, do the following:
     SetAutoIndentMode ToggleIndent
 * SetWordWrapMode
   Sets WordWrap mode ON. To set WordWrap mode OFF, do the following:
     SetWordWrapMode ToggleWordWrap
 The Find command sounds a tone when the search string cannot be found.
 This may be undesirable in a long-running macro, that may possibly
 execute hundreds of find operations that fail.  The following commands
 allow you to selectively turn the sound ON and OFF.
 * SetSoundOn
   Sets sound ON.
 * SetSoundOff
   Sets sound OFF.
 Most macros execute dozens of QEdit commands, possibly hundreds of
 times. This can cause the screen to flash rapidly as the macro runs. Not
 only is this somewhat disconcerting to watch, it actually slows down the
 speed of some macros. The following commands allow you to temporarily
 suspend or resume screen updating, while a macro is running.
 * SetScreenOn
   Turns screen updating ON.
 * SetScreenOff
   Turns screen updating OFF. You must turn screen updating back ON
   before your macro prompts for input, or if there is some output from
   the macro that you want displayed on the screen.

   NOTE: QEdit AUTOMATICALLY turns screen updating back ON when the macro
   is finished executing.  Thus, it is not necessary to issue the
   SetScreenOn command at the end of the macro.
 Many times, it would be nice for a macro to force a few settings, do its
 assigned task, and then restore the original settings.  The following
 commands allow you to do just that.  Note that each time SaveSettings is
 executed, the previous settings saved with SaveSettings are overwritten.
 * SaveSettings
   Saves the current settings of: Insert, AutoIndent, WordWrap, Sound,
   and Screen Updating.
 * RestoreSettings
   Restores the saved settings for the settings indicated in
   SaveSettings.
 The following commands set QEdit's result code to TRUE or FALSE based on
 the condition being tested. These commands make certain types of macro
 tests easy and reliable.
 * isBegLine
   Returns TRUE if the cursor is at column 1; otherwise, FALSE is
   returned.
 * isCurrChar
   Returns TRUE if the character at the cursor position in the file is
   the same as that specified by the character immediately following the
   isCurrChar command.
 * isEndLine
   Returns TRUE if the cursor is past the last non-white character on the
   current line; otherwise, FALSE is returned (including when the cursor
   is on an empty line).
 * isEmptyLine
   Returns TRUE if the current line is empty or contains only white
   space; otherwise, FALSE is returned.
 * isLastLine
   Returns TRUE if the cursor is on the last line of the currently edited
   file; otherwise, FALSE is returned.
 * isFirstLine
   Returns TRUE if the cursor is on the first line of the currently
   edited file; otherwise, FALSE is returned.
 * isCursorInBlock
   Returns TRUE if the cursor is inside a marked Block; otherwise, FALSE
   is returned.

 In order to tie a few of these concepts together, we present a simple
 macro to delete all the blank lines in a marked Block. The cursor should
 be at the beginning of the Block when the macro is invoked.
  #f9 MacroBegin
           SetScreenOff                   * turn off screen for speed
    begin: isCursorInBlock MacroQuitFalse * exit if not in Block
           isEmptyLine     JFalse next:   * skip if not empty line
           isLastLine      JTrue  last:   * special handling for last line
           DelLine         Jump  begin:   * delete empty lines
    next:  CursorDown      JTrue begin:   * try next line
           MacroQuit                      *
    last:  DelLine                        * delete the last line
                                          * that's all, folks!
 Advanced Macro Programming        The Main Macro
 
 QEdit has a provision for a special-purpose macro that is automatically
 executed at editor startup.  In a Keyboard Definition file, assigning a
 macro to the key "main" causes that macro to be executed whenever the
 editor is initially invoked.
 * Example:
   main MacroBegin MacroRead "c:\qedit\mymacs.qed" Return
   This causes a macro file named "mymacs.qed" to be loaded into the
   editor, every time the editor is started.  (Note that the "key" the
   macro is assigned to is "main".)

 QMAC
 
 QMac is a translator for QEdit macros.  It translates QEdit Keyboard
 Macros from the binary format in which QEdit saves them, to a text
 format that allows easy macro editing, and then translates the text
 format back into the QEdit binary format.  It also allows you to
 directly create external macros in text format, and then translate those
 macros to binary format so they can be loaded, as desired, into the
 editor.
 By using QMac with Keyboard Macros, you can create a Keyboard Macro
 using QEdit; fine-tune it by editing the text representation of the
 macro created by QMac; and then translate the edited version back to
 binary format so that the macro can be loaded into QEdit for execution.
 You may even wish to use the text format created by QMac to import a
 Keyboard Macro into your Keyboard Definition file.  This provides the
 advantage of adding a macro directly to the editor program itself, so
 that it does not have to be loaded each time the editor is executed.
 (Contrast this to Keyboard Macros, which must be loaded each time the
 editor is started in order to be executed.)
 QMac offers additional advantages of increased macro space and enhanced
 configurability.
 * Macro space for built-in macros is limited to 2K.  Built-in macros are
   those that are included in the Keyboard Definition file and added to
   the editor using the configuration program.  Loadable macros, however,
   can be as large as 4K.  Loadable macros are those created as Keyboard
   Macros and saved to a binary macro file, as well as macros modified or
   created with QMac.  (The 4K limit applies to the size of the binary
   macro file, which can contain one or more loadable macros.)
 * Using loadable macros (rather than built-in macros), you can
   effectively create different versions of the editor for different
   tasks.  For example, if you want to control the behavior of certain
   keystrokes according to the directory you are in, you can use QMac to
   create a different macro file for each set of affected keys.  You may
   wish to have the function keys set up to behave in a certain manner
   when you are writing letters, another way when you are writing xBase
   programs, and yet another way when you are writing DOS BATCH files.
   The appropriate macro file could be added to each directory, and then
   loaded when the editor is started from a particular directory.
 QMac allows appending to or overwriting existing macro files, making it
 easy to add new macros to existing macro files.  And QMac's text file
 format allows comments, permitting documentation of the macros within
 their "source file."

 Using QMac:  An Overview
 
 Here is an overview of how to use QMac, including recording a sample
 Keyboard Macro, saving it to a file, and converting it with QMac.  The
 keystrokes mentioned below assume you are using the default QCONFIG.DAT
 supplied with QEdit; if you have re-installed your keyboard using the
 configuration program, modify as needed.
 First, record a Keyboard Macro to search for the string "the".  In the
 example, we assign the macro to <Ctrl F10>.
 1. Execute the MacroRecord <Ctrl M> command.
 2. At the prompt, "Assign to what key:", press <Ctrl F10>.
 3. Press <Ctrl QF> to execute the Find command.  Type "the" and press
    <Enter>.  Type "IW" and press <Enter> again.
 4. Execute the MacroRecord <Ctrl M> command again to end the macro.

 Next, save the macro to a macro file named FIND.MAC:
 1. Execute the MacroWrite <Esc><M><W> command.
 2. At the prompt, "Macro file to write:", type "find.mac" and press
    <Enter>.

 Now, use QMac to convert the macro to text for editing:
 1. Execute the Dos <Alt F9> command and type:
       qmac find.mac find.txt /a- /t
    Press <Enter>.  The file FIND.MAC is converted to a text format in
    the file FIND.TXT.  (The /t option selects text output).
 2. Execute the EditFile <Alt E> command to load the newly-created text
    output file into QEdit.  At the prompt, "File(s) to edit:", type
    "find.txt" and press <Enter>.
    Text similar to the following is displayed:
       *
       * Converted by QMAC from: C:\FIND.MAC
       *
       ^f10    MacroBegin Find "the" Return "IW" Return
    This is the text representation of the keystrokes recorded in the
    previous steps.
 3.  Make any necessary changes to the macro.  For example, change the
     word "the" to "and".  Then execute the File <Ctrl KX> command to
     save the file.

 Next, convert the macro from text back to binary:
 1. Execute the Dos <Alt F9> command and type:
       qmac find.mac find.txt /a- /b
    Press <Enter>.  The file FIND.TXT is converted back to its binary
    form in the file FIND.MAC.  (The /b option instructs QMac to create
    the binary file from the specified text file specified.

 Finally, reload the modified macro file into QEdit for execution:
 1. Execute the MacroRead <Esc><M><R> command.
 2. At the prompt, "Macro file to read:", type "find.mac" and press
    <Enter>.
 3. Press <Ctrl F10> to execute your new macro.  QEdit searches for the
    word "and" (instead of "the").
 As this example illustrates, you can use QMac to convert macro files in
 two directions:  from a human-readable text format to the binary format
 that QEdit uses, and vice versa.

 Executing QMac
 
 To display a summary of QMac's required format and options, type the
 following at the DOS prompt:
    qmac ?
 and press <Enter>.  The following appears on the screen:
 Ŀ
  QMAC:  QEdit Macro Program v3.0                                       
  Copyright 1989-1993 by SemWare Corp.  All rights reserved worldwide.  
                                                                        
  QMAC macfile txtfile [ /B  /T ] [ /A  /A- ]                         
                                                                        
       macfile    Filename of binary macro file                         
       txtfile    Filename of macro text file                           
       /B         Binary output:  Create macfile from txtfile           
       /T         Text output:    Create txtfile from macfile           
       /A         Append mode:    Append output to existing file        
       /A-                        Do not append output to existing file 
                                                                        
  QMAC will prompt for filenames if not specified.                      
  See manual for additional command-line options.                       
 -
 The "macfile" parameter is the name (including directory, if needed) of
 a QEdit binary macro file, such as one created by using MacroWrite from
 inside QEdit.
 The "txtfile" parameter is the name of a text file that contains a
 human-readable text representation of the macros in a macro file.
 The "macfile" and "txtfile" parameters are required.  If not specified
 on the command line, QMac prompts for these parameters.
 When executed, QMac creates whichever of the two file formats does not
 already exist.  That is, if the text macro file ("txtfile") already
 exists, QMac converts this file to binary and creates the binary file
 ("macfile"); if the binary macro file ("macfile") already exists, QMac
 converts this file to text format and creates the text macro file
 ("txtfile").
 However, if both files exist, you must supply either the /B or the /T
 switch to indicate the direction of conversion.  The /B switch instructs
 instructs QMac to create a binary file; the /T switch instructs QMac to
 create a text file.
 If the output file already exists, you must also specify the /A switch
 to indicate whether QMac should append to the existing macro file.
 Specify /A+ to append to the file; specify /A- to overwrite the file. If
 this parameter is required but was not specified on the command line,
 QMac prompts for it.
 All of the switches other than /B, /T, and /A have default values. These
 need to be specified only if you want to select a value different than
 the default value.  The switches /C, /U, /M, /Q, /I, and /W affect
 QMac's operation only when QMac is converting from binary to text
 format.  The /E switch affects QMac's operation only when QMac is
 converting from text to binary format.  (Information about these
 switches is provided later in this chapter.)
 When executed, QMac prompts for any required parameters that are not
 supplied at the DOS prompt, so you can just type:
    qmac
 with no parameters.  QMac then prompts you for information.  (Of course,
 for command-line switches that are not specified, the default values, if
 applicable, are used.)  To halt QMac, press <Enter> without typing a
 response at any QMac prompt.
 The parameters accepted by QMac can be entered in any order on the DOS
 command line.  If a switch appears more than once, or if conflicting
 switches are specified, the rightmost switch takes precedence.

 Writing Macro Text
 
 Macros are created in a macro file.  A macro file can contain multiple
 macros.  The text format which QMac uses for macros is similar to that
 used within the Keyboard Definition file (QCONFIG.DAT):  The format is:
      key       [ MacroBegin ]  [ Command... ]  [ & ]
                [ "string" ]  [ xxx ]   [ * comment ]
                ....
 The "key" name must start in column 1 of a line, and must be a single
 key (no twokeys allowed).  It can be either the name of a key that QEdit
 recognizes (such as "^pgup" for "<Ctrl PgUp>"), or the numeric scan code
 for a key.  Capitalization of key names is not significant.  However,
 the underscore ("_") character may NOT be used inside key names.
 By using the numeric scan code, you can assign macros to special keys
 that do not exist on your keyboard, but which are generated by a
 keyboard enhancer program.  You can also accommodate non-standard
 keyboards on some clone PCs that have unusual keys.
 A macro optionally begins with the command "MacroBegin", but this is not
 required in this version of QMac.
 Next, the macro can contain any number of QEdit commands, such as
 "CursorRight", "EditFile", etc.
 For example, a macro (assigned to <Alt F2>) to make the cursor jump to
 the very first character on the last line of the current file is:
    @f2     MacroBegin EndFile BegLine
 Note:  If a macro contains only the command "UnknownCommand", then that
 key has no action at all in QEdit.  You might use this to "disable"
 certain keys in QEdit at certain times.  In order to re-enable the keys,
 you must either load another macro file with those keys defined, or
 re-start QEdit.
 You may include any number of blank or tab characters between commands
 in a macro.  Capitalization of command names is not significant, and
 QMac ignores the underscore ("_") character when used inside command
 names.  Thus, any of the following are equivalent:
      ^f2       macro_begin beg_file un_mark_block
      ^f2       MaCrO_BeGiN BeGFiLe Un_MaRk_Block
      ^f2       MACROBEGIN   BEG_file   UNMARKBLOCK
 Along with commands, macros can contain quoted strings of text. These
 strings are "typed" when the macro is executed, just as if you typed
 them from the keyboard.  Quoted strings can be surrounded by either
 single- or double-quote characters.
 If you need to embed a quote mark in a string, either use the other
 quote mark to surround the string, or double up the quote mark in the
 string.  For example:
    'This is a double quote: " within a string'
       or
    "This is a double quote: "" within a string"
 would enter the following string in the macro:
           This is a double quote: " within a string
 Quoted strings can be used to enter text in the file you are editing, or
 to answer prompts or menus presented by QEdit.
 For other ASCII characters that are difficult to enter, you can include
 the decimal code directly in the macro.  For instance, to include a
 literal formfeed character in a macro, you could enter:
    "This is a form feed: " #12
 The "12" would be translated to an ASCII 12, or formfeed, in the macro.
 You can use this method to enter any ASCII code form 0 to 255.  The
 pound sign ("#") must be entered.  The ASCII number IS NOT enclosed in
 quotes.
 Labels can also be included in a macro, to allow you to jump to a
 particular point in a macro, using the various "jump" commands.  (For
 more information, refer to "Conditional Logic for Macros" presented
 earlier in this chapter.)  To use a label, place it before the command
 to which you wish to jump.  To identify a label, you must include a
 colon ":" as the last character of the label name.
 For label names, capitalization is not significant.  Underscores can be
 used inside label names; however, they are considered a significant part
 of the name.  So the following labels:
    My_First_Label:
    MyFirstLabel:
 are DIFFERENT.
 Comments can also be included within a macro.  To identify a comment,
 precede the comment with an asterisk ("*").  Anywhere an asterisk ("*")
 appears on a line outside a quoted string, the rest of the line (to the
 right of the asterisk) is treated as a comment and is ignored by QMac.
 You can use this to include notes within a macro about the macro's
 operation.  Comments are not included in the binary macro file that
 QEdit loads, so there is no space penalty for including them in your
 text macro files.
 QMac ignores any blank lines or lines that start with a comment ("*")
 indicator, so you can readily include these within or between your
 macros as needed.
 A macro can continue onto multiple lines.  Simply indent the second and
 subsequent lines of the macro by one or more spaces.  The macro
 continues until the end of the text, or until QMac encounters another
 key at the beginning of a subsequent line.
 An alternate method for continuing a macro onto multiple lines is to
 include an ampersand ("&") as the very last character of the preceding
 line.  If a line ends with "&", the line that immediately follows is
 considered part of the macro.  (Note, however, that if you use this
 method for continuation of macros, it is difficult to properly reformat
 the macro, when necessary, with QEdit.)
 Lines in your text macro files can be up to 1000 characters long.
 A text macro file may contain an arbitrary number of key definitions
 (that is, an arbitrary number of macros).  QMac does not check the
 number or size of macros when creating a binary macro file from a text
 file, because the limits on size and number may change from version to
 version of QEdit.  However, it does make a rudimentary check on total
 size to be sure that the current version of QEdit will be able to load
 the macro file.

 Converting Macro Binary Format to Text Format
 
 When creating a text file from a binary macro file, QMac writes macros
 in the same format as described in the previous section.
 Literal ASCII characters whose decimal codes are between 0 and 31
 inclusive (the "control codes") are written to the text macro in decimal
 form, preceded by "#".  All other quoted characters are written as is.
 When interpreting macros containing jump commands, the original names of
 the labels for the jumps are no longer available.  So QMac manufactures
 labels of the form "Labelxxx", where "xxx" is a sequential number
 beginning with zero.
 For example, if you compile the following macro to binary form with
 QMac:
      * Delete from the current line to the end of the file
      ^f10    MacroBegin REPEATIT: DelLine JTrue REPEATIT
 and then convert it back to text, it will look something like this:
      ^f10    MacroBegin Label0: DelLine JTrue Label0:
 QMac generates a separate numbered label for every Jump, JTrue, or
 JFalse command in the macro.  (This results in multiple labels at the
 same place in a macro whenever that place in the macro is referenced by
 multiple "jump" commands.)
 QMac provides several command-line switches to affect the formatting of
 text macros, described below.  You can control capitalization, use of
 underscores, indenting, word wrapping, and use of ampersands.  None of
 these controls has any effect on QMac when it is reading text macro
 file(s), only when it is writing them.
 The /C switch controls the use of the "continuation" character, which is
 the ampersand ("&").  The default value is /C-, which instructs QMac to
 use the convention of indenting continuation lines, rather than writing
 the continuation character ("&") on the end of lines that are continued.
 If you prefer the ampersand syntax, you can specify /C+ on the command
 line to turn this option ON.
 The /Q switch indicates to QMac your preferred quote mark to be used
 around quoted strings.  The default is /Q+, which instructs QMac to use
 a double quote mark (""").  To select the single quote mark ("'") for
 use around quoted strings, specify /Q-.
 The /M switch indicates whether you wish to use mixed case in command
 names.  The default is /M+, which causes the QEdit command names to
 appear as they are normally listed in this manual (example:
 ToggleEGA43).  Specify /M- to generate all lower-case names.  (Note:
 Key names are always written in all lower case.)
 The /U switch controls whether QMac includes underscores ("_") in
 command names.  The default is /U-, which means no underscores are
 written.  When /U+ is specified, QMac inserts an underscore before each
 capitalized letter within a command (as they are normally capitalized in
 this manual).
 Here is a summary of how commands look with the different combinations
 of /M and /U:
      /M+  /U-  (default)    MacroBegin  BegLine  ToggleEGA43
      /M+  /U+               Macro_Begin Beg_Line Toggle_EGA_43
      /M-  /U-               macrobegin  begline  toggleega43
      /M-  /U+               macro_begin beg_line toggle_ega_43
 The /I switch controls how far QMac indents commands from the left
 margin.  To specify the indentation amount, immediately follow /I with
 the decimal number of the column in which the text of macros (other than
 the assigned key name) is to begin on each line.  The default is /I9,
 which indicates column 9.
 The /W switch indicates to QMac your desired right margin, used to wrap
 multi-line macros.  To specify the right margin, immediately follow /W
 with the decimal number of the column in which the text of macros is to
 be wrapped, when necessary.  The default is /W80, which indicates column
 80.

 STARTUP MACROS
 
 QEdit offers a feature that allows you to load and/or execute macros
 from the DOS command line.
 To load a macro from the DOS command line, type "-l" (this is a dash
 character and the letter "l") immediately followed by a macro filename
 when you execute QEdit.  For example, from the DOS prompt type:
    q <filename to edit> -l<macro filename>
 To execute a macro from the DOS command line, type "-e" immediately
 followed by a macro filename when you execute QEdit.  QEdit then
 automatically executes the first macro in the macro file after the file
 to be edited has been loaded.  For example, from the DOS prompt type:
    q <filename to edit> -e<macro filename>
 Following are additional notes about the use of Startup macros.
 * The macro file to be loaded and/or executed must be created using
   either the MacroWrite <Esc><M><W> command or QMac.
 * A macro file to be executed (-e) is limited to a maximum size of 500
   bytes.
 * A "/" character can be used instead of the "-" character, as "/l" and
   "/e".
 * You MUST supply a filename to be edited on the DOS command line to use
   this feature.
 * When using the execute ("-e") option, only the first macro in the
   macro file is executed.  This macro is executed only after the file to
   be edited has been loaded.
 * You can load one macro and execute another macro at the same time.
   For example, from the DOS prompt:
    q <edit filename> -e<macro filename> -l<macro filename>
 Following is an example of using Startup macros.
   Suppose you have created two macro files, called first.mac and
   second.mac.  Now you want to load a file for editing called work.tmp,
   and at the same time, load the macro file called first.mac and execute
   the macro file called second.mac.  From the DOS command line, enter:
      q work.tmp -lfirst.mac -esecond.mac

Ŀ
CHAPTER 4. QEDIT COMMAND REFERENCE                                        

 This chapter contains a description of each of the QEdit commands. Where
 applicable, the default key assignments are provided.  Additionally,
 <Esc> sequences are given for those commands that can be accessed
 through the pull-down menus.
 To assign commands which do not have a default assignment or to change
 existing key assignments, refer to the "Keyboard Configuration" section
 of Chapter 2 for instructions.

 AddLine             <F2> or <Esc><E><A>
 
 Adds a blank line after the cursor line, placing the cursor on the newly
 created line.  The cursor column does not change.

 Align
 
 Aligns the text on the cursor line with the text on the line immediately
 before the cursor line and then positions the cursor on the next line.
 The cursor column does not change.  If the cursor is on line one, or the
 previous line is blank, or the cursor line is blank, this command simply
 moves the cursor to the next line.
 Align searches backwards up to 100 lines for a line containing text to
 align with.

 AltWordSet
 
 Instructs QEdit to recognize an expanded set of characters as "word"
 characters.
 The default word set contains the following characters: 0 through 9,
 upper and lower case A through Z, and the underline character.  The
 AltWordSet command causes additional characters to be considered "word"
 characters.  These additional characters are: ! # $ % & ` ' ( ) - . / \
 @ { } ~ : ^
 The AltWordSet command affects the operation of these commands:

                   DelLtWord  <Ctrl Backspace>
                   DelRtWord  <Ctrl T>
                   MarkWord   <Ctrl KT>
                   WordLeft   <Ctrl Cursor Left>
                   WordRight  <Ctrl Cursor Right>
 The default word set can be re-installed by executing the DefaultWordSet
 command.

 AppendScrbuff       <Ctrl BA>
 
 Appends the currently marked Block to the end of the named Scratch
 Buffer.  The existing contents of the named Scratch Buffer are not lost.
 If the named Scratch Buffer does not exist, a new Scratch Buffer is
 created.

 AsciiChart          <Esc><O><T>
 
 Displays a scrollable ASCII chart on the screen.  Press <Enter> to have
 the selected character inserted into the text at the current cursor
 position.

 Backspace           <Backspace>
 
 If Insert mode is ON:
  Deletes the character to the left of the cursor.  The text to the right
  of, and including the cursor position, shifts left one position. If the
  cursor is in column one, the cursor line is appended to the end of the
  preceding line.
 If Insert mode is OFF:
  Deletes the character to the left of the cursor.  The text to the right
  of the cursor does NOT close in or shift.  If the cursor is in column
  one, the cursor line is still appended to the end of the previous line.

 BegFile             <Ctrl PgUp>
 
 Positions the cursor at column one on the first line of the current
 file.

 BegLine             <Home>
 
 Positions the cursor at column one of the current cursor line.

 BegScreen           <Ctrl Home>
 
 Positions the cursor at the top line of the current window.  The cursor
 column does not change.

 CenterLine          <Ctrl OT>
 
 Centers the current cursor line based on column 1 and the right margin.
 Use the SetRmargin <Ctrl OR> command to change the right margin.
 With the cursor inside of a line Block, you can execute this command to
 center several lines at once.  With the cursor inside of a column Block,
 you can center lines based on the left and right Block boundaries.

 ChangeFilename      <Alt O> or <Alt F><C> or <Esc><F><C>
 
 Changes the name of the current file.  QEdit prompts for the new name.
 If the file already exists, you are required to confirm that you still
 want to rename the file.  The current file is marked as being a changed
 file.  (An asterisk appears on the StatusLine preceding the filename.)
 This command has no effect on disk files, until the renamed file is
 saved.

 CloseWindow         <Ctrl OC> or <Esc><W><C>
 
 Closes the current window, unless it is the only window which is open,
 in which case the command has no effect.

 Copy                <Grey +>
 
 Copies the marked Block into the Scrap Buffer.  The Block is then
 unmarked.  If no Block is marked, the cursor line is copied into the
 Scrap Buffer.  The copying of the cursor line, when a Block is not
 marked, is configurable.  Refer to the "Advanced Options" section of
 Chapter 2 for more information.

 CopyBlock           <Alt C> or <Esc><B><C>
 
 Copies the marked Block to the cursor position.  If the Block is a
 character Block (created using the DropAnchor, MarkCharacter, or
 MarkBlockBegin/End commands) or a column Block (created using the
 MarkColumn command), the Block is inserted into the text beginning at
 the current cursor position. If the Block is a line Block (created using
 the MarkLine command), it is inserted before or after the current cursor
 line, depending on the configuration setting, "Insert line blocks ABOVE
 the cursor line" (refer to the "General Options" section of Chapter 2).
 The Block remains marked.  Blocks may be copied from one file to
 another.

 CopyOverBlock       <Alt Z>
 
 Copies the currently marked column Block and places it at the current
 cursor position by overlaying existing text and without shifting text to
 the right.  This command only works with column Blocks.  The Block
 remains marked.  Blocks may be "copied over" from one file to another.

 CurrentFilename
 
 Returns the name of the currently edited file, as if it had been typed
 at the keyboard.  This command is useful for manipulation of files from
 within macros.

 CursorDown          <Cursor Down>
 
 Moves the cursor downward in the file to the next line.

 CursorLeft          <Cursor Left>
 
 Moves the cursor one character to the left.  When the cursor reaches the
 left edge of the screen, it stops, unless the text has been scrolled
 left, in which case the text scrolls right one position.

 CursorRight         <Cursor Right>
 
 Moves the cursor one character to the right.  When the cursor reaches
 the right end of the screen, the text starts scrolling left until the
 cursor reaches the maximum line length.

 CursorUp            <Cursor Up>
 
 Moves the cursor upward in the file to the previous line.

 Cut                 <Grey ->
 
 Copies the marked Block into the Scrap Buffer.  The Block is then
 deleted from the file being edited.  If no Block is marked, the cursor
 line is cut into the Scrap Buffer.  The cutting of the cursor line, when
 a Block is not marked, is configurable.  Refer to the "Advanced Options"
 section of Chapter 2 for more information.

 DefaultWordSet
 
 Re-installs the default word set.  Refer to the AltWordSet command for
 more information about word sets.

 DelCh               <Del>
 
 Deletes the character at the current cursor position.  The line to the
 right of the cursor shifts left one position.  If the cursor position is
 past the last character on the line, the next line is appended to the
 cursor line.  The "joining" of the next line when the cursor is past the
 last character on the line is configurable. Refer to the "General
 Options" section of Chapter 2 for more information.

 DeleteBlock         <Alt G> or <Esc><B><D>
 
 Deletes the currently marked character or line Block.  If there is not a
 Block marked in the current file, this command has no effect.

 DelLine             <Alt D> or <Ctrl Y> or <Esc><E><D>
 
 Deletes the cursor line.  The line following the cursor line becomes the
 new cursor line.

 DelLtWord           <Ctrl Backspace>
 
 Deletes the "word" to the left of the cursor.  If the cursor is in
 column one, the cursor line is appended to the end of the preceding
 line.

 DelRtWord           <Ctrl T>
 
 Deletes the "word" to the right of the cursor.  If the cursor position
 is past the last character on the line, the next line is appended to the
 cursor line.

 DelScrbuff          <Ctrl BD>
 
 Deletes the requested Scratch Buffer. The editor prompts for the name of
 the Scratch Buffer to be deleted.  Press <Enter> on a blank entry to
 bring up a list of all named Scratch Buffers.  The appropriate buffer
 can be selected from this list by moving the cursor to an entry and
 pressing <Enter>.

 DelToEol            <F6> or <Esc><E><E>
 
 Deletes text on the cursor line, from the cursor position to the end of
 line.

 Dos                 <Alt F9>
 
 QEdit prompts for a command, which is passed to DOS for execution. After
 the command is executed by DOS, control is returned to QEdit. If you
 want to execute a series of commands in DOS, you should use the Shell
 command, described later in this chapter.
 QEdit Tip:Ŀ
  You should NOT execute any TSR (terminate and stay        
  resident) programs from QEdit's Dos command.  This        
  includes the DOS print and graph commands, and memory     
  resident programs such as Sidekick and Superkey.          
 

 DropAnchor          <Alt A>
 
 This command is used to mark a character Block.  Initially executing
 this command marks one end of a Block at the cursor position.  As the
 cursor is moved, the Block "grows" with it.  Executing this command
 again marks the other end of the Block at the cursor position.  If
 DropAnchor is executed in a file that already contains a character
 Block, the Block is extended to the current cursor position.

 DupLine             <F4>
 
 Makes a copy of the current cursor line and inserts the copy immediately
 following the cursor line.  The cursor is moved to the new line.

 EditFile            <Alt E> or <Alt F><L> or <Esc><F><L>
 
 The editor prompts for the name(s) of the additional file(s) to be
 edited.  Wildcard characters (* or ?) are permissible, as are multiple
 filenames.  The editor does not load multiple copies of the same file.
 If you issue the EditFile command using the name of a file that has
 already been loaded, QEdit simply makes that file the current file.

 EndFile             <Ctrl PgDn>
 
 Positions the cursor on the last line of the file immediately following
 the last non-blank character.  If the last line of the file is blank,
 the cursor is positioned in column one.

 EndLine             <End>
 
 Positions the cursor immediately following the last non-blank character
 on the cursor line.

 EndPara
 
 Positions the cursor immediately following the last nonblank character
 of the current paragraph.

 EndScreen           <Ctrl End>
 
 The cursor is positioned on the last line of the current window.  The
 cursor column does not change.

 Escape              <Esc>
 
 If executed while editing, the pull-down menus are displayed.
 Otherwise, this command terminates any editor prompt.

 ExecuteScrap        <Ctrl Enter> or <Esc><M><E>
 
 Plays back the latest macro that was created using the MacroRecord
 command.

 Exit                <Ctrl KD>
 
 Conditionally discards the current file.  If the file has not been
 modified, the file is discarded without prompting.  If the file has been
 modified, the editor prompts with:
 Save changes?Ŀ
 #Yes############
  No             
  Cancel         
 
 Press <Y> to save and then discard the file.  Press <N> to discard the
 file without saving any changes.  Press <C> or <Esc> to halt the command
 and return control back to the editor, without saving or quitting the
 file.
 QEdit can be configured, when only a single file is being edited and the
 Exit command is issued, to either terminate or prompt for another file
 to edit.  Refer to the "General Options" section of Chapter 2 for more
 information.

 File                <Ctrl KX> or <Alt F><F> or <Esc><F><F>
 
 Saves and then discards the current file.
 QEdit can be configured, when only a single file is being edited and the
 File command is issued, to either terminate or prompt for another file
 to edit.  Refer to the "General Options" section of Chapter 2 for more
 information.

 FillBlock           <Ctrl KL> or <Esc><B><F>
 
 Fills an entire marked Block with any ASCII character.  You are prompted
 to enter the desired character.  FillBlock is recommended for use with
 column and word Blocks, only because it fills other type Blocks with
 characters beyond column 80.

 Find                <Ctrl QF> or <Esc><S><F>
 
 Searches for a specified string of characters within the current file.
 The User is prompted for a search string and search options. Available
 search options are:
       [B] Search backwards from the current cursor position.
       [G] Global search.  Begin searching from the beginning of the file
           (or marked Block, if the L option is also selected.)
       [L] Local search.  Limit the search to the marked Block.
       [I] Ignore the case of the search string.
       [W] Search for whole words only.

 FindReplace         <Ctrl QA> or <Esc><S><R>
 
 Searches and replaces strings within the current file.  The User is
 prompted for a search string, a replace string, and options. Available
 options are:
       [B] Search backwards from the current cursor position.
       [G] Global search and replace.  Begin searching from the beginning
           of the file (or marked Block, if the L option is also selected.)
       [L] Local search and replace.  Limit the search to the marked Block.
       [I] Ignore the case of the search string.
       [W] Search for whole words only.
       [N] Find and replace without prompting.
 At every occurrence of the search string in the file, the User is given
 the following replace options:
       [Y] Replace the search string with the replace string and continue
           on to the next occurrence of the search string.
       [N] Do not make any changes but continue on to the next occurrence
           of the search string.
       [O] Replace the search string with the replace string and then
           terminate the FindReplace process.
       [R] Replace the search string with the replace string for this and
           the rest of the occurrences throughout the file without any
           further prompting.
       [Q] Terminate the FindReplace process.
 You can press <Ctrl Break> to halt a global FindReplace.

 FirstNonWhite
 
 Intended as a replacement and/or supplement to the BegLine command.
 Places the cursor at the first non-white character on the line, or
 column 1 if the line does not have any non-white characters. "White"
 characters are tabs or spaces. A useful macro would be:
      Home MacroBegin BegLine MacroQuitTrue FirstNonWhite
 (Explanation: If already at the beginning of a line, go to the first
 non-white character on the line; otherwise, if not already at the
 beginning of a line, go to the beginning of the line.

 Flip                <Alt 3>
 
 Reverses the case (upper to lower and lower to upper) of all characters
 in a marked Block.  The cursor must be within the marked Block.  If the
 cursor is outside of the marked Block or if no Block is marked, the case
 of the character at the current cursor position is reversed.

 GetPrev             <Ctrl - (dash)>
 
 Duplicates the character immediately above the cursor at the cursor
 position.

 GetScrbuff          <Ctrl BL>
 
 Inserts the contents of the named Scratch Buffer at the cursor position.
 Refer to the "Block Commands" section of Chapter 1 for more information.

 GExit               <Alt X> or <Alt Q><X> or <Esc><Q><X>
 
 Issues the Exit command for all files that have been loaded.  If no
 files have been modified, this command immediately terminates the editor
 and returns control to DOS.  If any files have been modified, you are
 prompted with the following menu for each modified file:
 Save changes?Ŀ
 #Yes############
  No             
  Cancel         
 
 Press <Y> to save and then discard the file.  Press <N> to discard the
 file without saving any changes.  Press <C> or <Esc> to halt the command
 and return control back to the editor, without saving or quitting the
 file.
 For example, if you have ten files loaded and two of them have been
 modified, then you are prompted to save changes twice, once for each
 modified file.

 GFile               <Alt F><G> or <Esc><F><G>
 
 Instructs the editor to discard all files that have been loaded.  Any
 files that have been modified are unconditionally saved.
 If no files have been changed, this command immediately terminates the
 editor and returns control to DOS.

 GotoBlockBeg        <Ctrl QB>
 
 Positions the cursor at the beginning of the currently marked Block. If
 the Block is in a file other than the current file, the file containing
 the Block becomes the new current file.

 GotoBlockEnd        <Ctrl QK>
 
 Positions the cursor at the end of the currently marked Block. If the
 Block is in a file other than the current file, the file containing the
 Block becomes the new current file.

 GotoColumn          <Esc><S><G>
 
 Positions the cursor at the requested column.  The editor prompts for
 the desired column number.

 GotoLine            <Ctrl J>
 
 Positions the cursor at the requested line.  The editor prompts for the
 desired line number.

 GPQuit              <F3> or <Alt Q><Q> or <Esc><Q><Q>
 
 Issues the PQuit command for all files that have been loaded.

 GrowWindow          <Ctrl OG> or <Esc><W><R>
 
 Changes the size of the current window, if there are multiple windows on
 the screen.

 GSave               <Alt Y>
 
 Issues the SaveFile command for all files that have been modified.

 HalfPgDn
 
 Scrolls the text toward the end of the file one-half page.

 HalfPgUp
 
 Scrolls the text toward the beginning of the file one-half page.

 HorizontalWindow    <Ctrl OH> or <Esc><W><S>
 
 Splits the screen or current window horizontally, creating a new window.
 Up to eight windows may be displayed on the screen at one time.

 InsertDate
 
 Inserts the system date at the current cursor position.

 InsertLine          <Alt F2> or <Esc><E><I>
 
 Inserts a blank line above the cursor line and positions the cursor on
 the newly created line.  The cursor column does not change.

 InsertTime
 
 Inserts the system time at the current cursor position.

 isBegLine
 
 This command is intended for use only within macros.

 Returns TRUE if the cursor is at column 1; otherwise, FALSE is returned.

 isCurrChar
 
 This command is intended for use only within macros.
 Used to set a conditional branch based on the value of the character at
 the cursor position.  The format is:
     isCurrChar char
 Where "char" is the character in literal format (surrounded by quotes,
 either single or double) or in ASCII value format, preceded by a pound
 sign (#).
 Examples:
     isCurrChar 'a'
     JTrue found:
     isCurrChar #97
     JTrue found:
 Both of these examples jump to the label "found" if the current
 character is "a".

 isCursorInBlock
 
 This command is intended for use only within macros.
 Returns TRUE if the cursor is inside a marked Block; otherwise, FALSE is
 returned.

 isEmptyLine
 
 This command is intended for use only within macros.
 Returns TRUE if the current line is empty or contains only white space;
 otherwise, FALSE is returned.

 isEndLine
 
 This command is intended for use only within macros.
 Returns TRUE if the cursor is past the last non-white character on the
 current line; otherwise, FALSE is returned, including the case when the
 cursor is on an empty line.

 isFirstLine
 
 This command is intended for use only within macros.
 Returns TRUE if the cursor is on the first line of the currently edited
 file; otherwise, FALSE is returned.

 isLastLine
 
 This command is intended for use only within macros.
 Returns TRUE if the cursor is on the last line of the currently edited
 file; otherwise, FALSE is returned.

 JFalse
 
 This command is intended for use only within macros.
 It is used to transfer control to the named label, if the previous
 command returned FALSE.

 JoinLine            <Alt J> or <Esc><E><J>
 
 Joins the line below the cursor line to the end of the cursor line. If
 the cursor is past the end of the line, then the line is joined at the
 cursor position.

 JTrue
 
 This command is intended for use only within macros.
 It is used to transfer control to the named label, if the previous
 command returned TRUE.

 Jump
 
 This command is intended for use only within macros.
 It is used to unconditionally transfer control to the named label.

 KillFile            <Ctrl KZ>
 
 Erases the currently edited file from disk.  The file remains loaded in
 the editor and is marked as being a changed file.  (An asterisk appears
 on the StatusLine preceding the filename.)  This command is very useful
 when available disk space is low.

 LineDown            <Ctrl Cursor Down>
 
 Scrolls the text one line at a time toward the end of the file.  The
 cursor remains stationary on the screen.

 LineUp              <Ctrl Cursor Up>
 
 Scrolls the text one line at a time toward the beginning of the file.
 The cursor remains stationary on the screen.

 ListFiles           <Esc><F><T>
 
 Displays a list of the currently loaded files. To switch to another
 file, move the cursor to the appropriate file and press <Enter>. To keep
 editing the current file, press <Esc>.

 Literal             <Ctrl P>
 
 Causes the editor to literally interpret the keystroke that is entered
 immediately following this command.  It is used to insert control
 characters into the currently edited file.  For example, to insert the
 ASCII formfeed character (ASCII 12), you would first press <Ctrl P>
 then <Ctrl L>.  To insert a "null" character into the file, press <Ctrl
 P> and then <Ctrl 2>.  (Note: The "2" must be the "2" key on the
 alphanumeric keyboard, NOT the key on the numeric keypad.)  Refer to the
 "Adding Text" section of Chapter 1 for more information.

 Lower               <Alt 2>
 
 Changes all characters in a marked Block to lower case.  The cursor must
 be within the marked Block.  If the cursor is outside of the marked
 Block or if no Block is marked, the character at the current cursor
 position is changed to lower case.

 MacroQuit
 
 This command is intended for use only within macros.
 It is used to immediately terminate a macro, thus saving a "jump past
 the end of the macro".

 MacroQuitFalse
 
 This command is intended for use only within macros.
 It is used to immediately terminate a macro, if the previous command
 returned FALSE, thus saving a "jump past the end of the macro on FALSE".

 MacroQuitTrue
 
 This command is intended for use only within macros.
 It is used to immediately terminate a macro, if the previous command
 returned TRUE, thus saving a "jump past the end of the macro on TRUE".

 MacroRead           <Esc> <M><R>
 
 Loads the named macro file, with all macros contained therein, from disk
 into the editor's internal macro buffer.  The macros are assigned to the
 keys exactly as they were originally recorded and saved.  The editor
 prompts the User for the name of the file.

 MacroRecord         <Ctrl M> or <Esc><M><M>
 
 Toggles (ON and OFF) macro recording.  If macro recording is OFF, this
 turns macro recording ON and prompts for a key to which to assign the
 macro.  After pressing the desired key (see Appendix C for a list of
 assignable keys), all following keystrokes are recorded until the
 MacroRecord key is pressed again.  After the macro has been recorded, it
 can be played back by pressing the key to which the macro was assigned.
 Instead of assigning a macro to a specific key, it can be assigned to a
 "scrap" or temporary area by simple pressing <Enter> at the prompt.  A
 macro assigned to the scrap area may be played back by entering the
 ExecuteScrap <Ctrl Enter> command.  The scrap area is updated each time
 the MacroRecord command is executed.

 MacroWrite          <Esc> <M><W>
 
 Saves all currently defined macros to a binary disk file.  The editor
 prompts for the name of the file.

 MainMenu            <Esc>
 
 Activates the pull-down menu system.  Many of the editor's commands can
 be executed via the menus.

 MakeBotofScreen
 
 Scrolls the text in the window so that the cursor line becomes the
 bottom line of the window.

 MakeCtrofScreen     <Shift F5>
 
 Scrolls the text in the window so that the cursor line becomes the
 center line of the window.

 MakeTopofScreen     <F5>
 
 Scrolls the text in the window so that the cursor line becomes the top
 line of the window.

 MarkBlockBegin      <Ctrl KB> or <Esc><B><B>
 
 Marks the beginning of a character Block.  The Block is not shown until
 the MarkBlockEnd command is executed at some position beyond the
 beginning position of the Block.  For an alternate method of marking
 character Blocks, refer to the DropAnchor and MarkCharacter commands.

 MarkBlockEnd        <Ctrl KK> or <Esc><B><E>
 
 Marks the end of a character Block.  The Block is not shown until the
 MarkBlockBegin command is also executed at some position before the end
 of the Block.  For an alternate method of marking character Blocks,
 refer to the DropAnchor and MarkCharacter commands.

 MarkCharacter
 
 This command is used to mark a character Block.  It is similar to the
 DropAnchor command except the cursor position is NOT included as part of
 the Block.
 This command is provided as a replacement for the DropAnchor command. If
 you want the cursor position included in character Blocks, then continue
 to use DropAnchor; otherwise, replace the DropAnchor command with this
 command.

 MarkColumn          <Alt K>
 
 This command is used to mark a column Block.  Initially executing this
 command marks the current cursor position.  As the cursor is moved, the
 Block "grows".  Executing this command again marks the other end of the
 Block at the current cursor position.  If MarkColumn is executed in a
 file that already contains a Block, the Block is extended to the current
 cursor position.

 MarkLine            <Alt L> or <Esc><B><L>
 
 This command is used to mark a line Block.  Initially executing this
 command marks the current cursor line.  As the cursor is moved, the
 Block "grows" with it, line by line.  Executing this command again marks
 the other end of the Block at the current cursor line.  If MarkLine is
 executed in a file that already contains a Block, the Block is extended
 to the current cursor line.

 MarkWord            <Ctrl KT>
 
 This command is used to mark a word Block.  Executing this command marks
 the word at the current cursor position.  If there is no word at the
 current cursor position, then no action is taken.

 Match               <Alt F3>
 
 Finds the corresponding "(", ")", "{", "}", "[", "]" character.  This
 command is primarily intended for programming languages in which
 complicated expressions are grouped with one or more of these
 characters.  This command is very useful for finding unmatched
 parentheses.

 MoveBlock           <Alt M> or <Esc><B><M>
 
 Moves (copies and deletes) the currently marked Block to the cursor
 position.  If the Block is a character Block (created using the
 DropAnchor, MarkCharacter, or MarkBlockBegin/End commands) or a column
 Block (created using the MarkColumn command), the Block is inserted into
 the text beginning at the current cursor position.  If the Block is a
 line Block (created using the MarkLine command), it is inserted before
 or after the current cursor line, depending on the configuration
 setting, "Insert line blocks ABOVE the cursor line" (refer to the
 "General Options" section of Chapter 2).  The Block remains marked.
 Blocks may be moved from one file to another.

 NewFile
 
 Executes the Exit <Ctrl KD> command followed by the EditFile <Alt E>
 command.  Refer the Exit and EditFile commands in this chapter for more
 information.

 NextFile            <Alt N> or <Alt F><N> or <Esc><F><N>
 
 Makes the next file in the ring the new current file when multiple files
 are loaded.

 NextPara
 
 Positions the cursor on the first character of the next paragraph.

 NextWindow          <Ctrl ON> or <Esc><W><N>
 
 Makes the window below the current window the new current window.  If
 the current window is at the bottom of the screen, the top window on the
 screen becomes the current window.

 OneWindow           <Ctrl OO> or <Esc><W><O>
 
 Closes all windows except the current window and expands it to occupy
 the entire screen.

 PageDown            <PgDn>
 
 Scrolls the text toward the end of the file, one page-full less one
 line, at a time.

 PageUp              <PgUp>
 
 Scrolls the text toward the top of the file, one page-full less one
 line, at a time.

 Paste               <Grey *>
 
 Inserts the contents of the Scrap Buffer at the cursor position. The
 Scrap Buffer is loaded using the Cut or Copy commands.  If the Scrap
 Buffer contains a character or column Block, it is inserted at the
 cursor position. If the Scrap Buffer contains a line Block, it is
 inserted before or after the cursor line depending on the configuration
 setting, "Insert line blocks ABOVE the cursor line" (refer to the
 "General Options" section of Chapter 2).
 Paste is also available within prompt boxes.

 PasteOver           <Ctrl PrtSc>
 
 This is a Paste command for column Blocks.  It takes a column Block
 which has been loaded into the Scrap Buffer using the Cut or Copy
 commands, and places the contents at the current cursor position by
 overlaying existing text, without shifting text to the right.

 Pause
 
 This command is intended for use only within macros.
 Temporarily suspends execution of a macro until either <Enter> or
 <Esc> is pressed.  Refer to the "Macro Pause" section of Chapter 3
 for more information.

 PQuit               <Ctrl KQ> or <Alt F><Q> or <Esc><F><Q>
 
 This command initiates a protected quit.  If the current file has not
 been modified, it is discarded.  If the current file has been modified,
 the following prompt is issued:
 Lose changes?Ŀ
 #Yes############
  No             
  Cancel         
 
 Press <Y> to quit the current file.  Press <N>, <C>, or <Esc> to cancel
 the command, without discarding the current file.
 If multiple files are being edited, this command makes the previous file
 in the ring the new current file.
 QEdit can be configured, when only a single file is being edited and the
 PQuit command is issued, to either terminate or prompt for another file
 to edit.  Refer to the "General Options" section of Chapter 2 for more
 information.

 PrevFile            <Ctrl KP> or <Alt F><P> or <Esc><F><P>
 
 Makes the previous file in the ring the new current file when multiple
 files are loaded.

 PrevPara
 
 Positions the cursor on the first character of the previous paragraph.

 PrevPosition        <Ctrl QP>
 
 Positions the cursor at the previous cursor position.  Very helpful when
 used with the GotoLine command.  The GotoLine command can be used to go
 directly to a certain line of the file.  The PrevPosition can then be
 used to return you to the previous cursor position.

 PrevWindow          <Ctrl OP> or <Esc><W><P>
 
 Makes the window above the current window the new current window.  If
 the current window is at the top of the screen, the bottom window on the
 screen becomes the current window.

 PrintAll            <Alt P><A> or <Esc><P><A>
 
 Prints the entire contents of the current file.

 PrintBlock          <Alt P><B> or <Esc><P><B>
 
 Prints the entire contents of the marked Block.  The marked Block must
 be in the current file.

 PrintEject          <Alt P><F> or <Esc><P><F>
 
 Sends a formfeed character (ASCII 12) to the printer.

 QuickHelp           <F1> or <Alt H>
 
 Displays the Help Screen.  A default Help Screen is provided with QEdit;
 however, you may wish to design your own Help Screen.  For more
 information, refer to "The Help Screen" section of Chapter 2.

 Quit
 
 Unconditional quit.  The current file is discarded regardless of any
 changes made to it.  This command is for those who do not like software
 that "nags" you.  USE WITH CAUTION!

 ReadBlock           <Alt R> or <Alt F><R> or <Esc><F><R>
 
 Inserts the named disk file at the current cursor position.

 RepeatCmd           <Ctrl QQ>
 
 Repeats the last character, command, or macro entered from the keyboard
 up to 9,999 times.  You are prompted for the number of times to repeat.
 Repeating automatically terminates when any command fails.  For example,
 if you are repeating a search and get a "Not Found", repeating then
 stops.  You can also enter <Ctrl Break> at any time from the keyboard to
 cancel repeating.

 RepeatFind          <Ctrl L> or <Esc><S><A>
 
 Repeats the previous Find or FindReplace command.

 ResizeWindow        <Ctrl OG> or <Ctrl OS> or <Esc><W><R>
 
 Changes the size of the current window, if there are multiple windows on
 the screen.

 RestoreSettings
 
 This command is intended for use only within macros.

 Restores settings saved by the SaveSettings command.

 Return              <Enter>
 
 The Return command behaves differently depending on Insert mode and
 AutoIndent mode.
 If Insert mode is OFF, the cursor is positioned at the first column of
 the next line.  If Insert mode is ON, the current cursor line is split
 at the cursor position and any text to the right of and including the
 cursor position is placed on a new line following the current line.  If
 the cursor is past the last character on the line, then a blank line is
 added following the current line.  The cursor is then moved to the first
 column of the new line.
 If AutoIndent is ON, spaces are inserted ahead of the cursor position to
 align it with the text on the previous line.
 If AutoIndent is OFF, the text is moved to the beginning of the next
 line.
 The Return command can be configured to split or not split lines when
 Insert mode is ON.  Refer to the "Advanced Options" section of Chapter 2
 for more information.

 SaveFile            <Ctrl KS> or <Alt F><S> or <Esc><F><S>
 
 Saves to disk the file currently being edited.  The file remains loaded,
 ready for further editing.

 SaveSettings
 
 This command is intended for use only within macros.
 Saves the current settings of: Insert, AutoIndent, WordWrap, Sound, and
 Screen Updating. See RestoreSettings.

 ScreenLeft          <Alt F5>
 
 Shifts the screen to the left, the number of columns specified in the
 configuration program.  Refer to the "Colors/Screen Options" section of
 Chapter 2 for more information.

 ScreenRight         <Alt F6>
 
 Shifts the screen to the Right, the number of columns specified in the
 configuration program.  Refer to the "Colors/Screen Options" section of
 Chapter 2 for more information.

 ScrollDown          <Ctrl Z>
 
 Scrolls the text one line at a time toward the end of the file.  The
 cursor remains on the same line of text until it reaches the top of the
 screen.

 ScrollUp            <Ctrl W>
 
 Scrolls the text one line at a time toward the beginning of the file.
 The cursor remains on the same line of text until it reaches the bottom
 of the screen.

 SetAutoIndentMode
 
 This command is intended for use only within macros.
 Sets AutoIndent mode ON. To set AutoIndent mode OFF, do the following:
      SetAutoIndentMode ToggleIndent

 SetCtabwidth        <Esc><O><C>
 
 Sets the cursor tab width.  This is the width that is used when the
 TabRt or TabLt commands are executed and Fixed Tabs mode is in effect.

 SetEGA25
 
 Switches a monitor with an EGA or VGA card to 25-line mode.  This
 command has no effect if the video card is not an EGA or VGA type.

 SetEGA43
 
 Switches a monitor with an EGA card to 43-line mode, or a monitor with a
 VGA card to 50-line mode.  This command has no effect if the video card
 is not an EGA or VGA type.

 SetInsMode
 
 This command is intended for use only within macros.
 Sets Insert mode ON.  To set Insert mode OFF (that is, set overwrite
 mode ON), do the following:
      SetInsMode ToggleInsert

 SetPrintBotMargin   <Alt P><O> or <Esc><P><O>
 
 Sets the number of lines that are left blank at the bottom of each page
 during printing.

 SetPrintDevice      <Alt P><D> or <Esc><P><D>
 
 Allows the setting of the default print device.  Choices include PRN,
 LPT1 through LPT3, or any valid DOS filename.  When executed, the
 following menu is displayed:

 Print DeviceĿ
 #Prn###########
  lpt1          
  lpt2          
  lpt3          
  disk File...  
 

 SetPrintLeftMargin  <Alt P><L> or <Esc><P><L>
 
 Sets the number of spaces that are printed as a left margin at the
 beginning of each line.  The default is zero.

 SetPrintLineSpacing <Alt P><S> or <Esc><P><S>
 
 Allows the setting of the print line spacing, up to a value of 200.
 1 = single-space, 2 = double-space, 3 = triple-space, etc.

 SetPrintPageSize    <Alt P><P> or <Esc><P><P>
 
 Sets the number of lines to be printed per page before sending a
 formfeed.  A value of zero allows continuous printing (no formfeeds
 sent).

 SetPrintTopMargin   <Alt P><T> or <Esc><P><T>
 
 Sets the number of lines that are left blank at the top of each page
 during printing.

 SetPtabwidth        <Esc><O><P>
 
 Sets the Physical Tab Width.  This determines the width to which
 physical tab characters found in files are expanded if Physical Tab
 Expansion is set ON.  It also determines the number of spaces to be used
 for Tabs Out mode.  Refer to the ToggleTabsExpand and ToggleTabsOut
 commands in this chapter for more information.

 SetRmargin          <Ctrl OR> or <Esc><O><R>
 
 Sets the right margin for word-wrap and paragraph reformatting. WordWrap
 mode is automatically switched ON whenever the right margin is set using
 this command.

 SetScreenOff
 
 This command is intended for use only within macros.
 Turns screen updating OFF. You must turn screen updating back ON before
 your macro prompts for input, or if there is some output from the macro
 that you want displayed on the screen.
 NOTE: QEdit AUTOMATICALLY turns screen updating back ON when the macro
 is finished executing.  Thus, it is not necessary to issue the
 SetScreenOn command at the end of the macro.

 SetScreenOn
 
 This command is intended for use only within macros.
 Turns screen updating ON (see SetScreenOff).

 SetSoundOff
 
 This command is intended for use only within macros.
 Disables the tone sounded by the editor on failed searches.

 SetSoundOn
 
 This command is intended for use only within macros.
 Enables the tone sounded by the editor on failed searches.

 SetTabType          <Esc><O><Y>
 
 Determines the behavior of the tab key based on the tab type selected.
 Choices are Fixed, Smart, and Variable.  (Refer to the "Modes" section
 of Chapter 1.)  When executed, the following menu is displayed:
 Tab TypeĿ
 #Fixed#########
  Smart         
  Variable      
 

 SetVarTabStops      <Esc><O><V>
 
 Allows the setting of the tab stops used when Variable tab type is
 selected.

 SetWordWrapMode
 
 This command is intended for use only within macros.
 Sets WordWrap mode ON. To set WordWrap mode OFF, do the following:
     SetWordWrapMode ToggleWordWrap

 Shell               <F9> or <Alt F><O> or <Esc><F><O>
 
 Invokes a DOS shell.  While in the shell, you can execute DOS and other
 commands.  When you are ready to leave the shell, type "exit" and press
 <Enter>.  This places you back in QEdit, exactly where you left off.

 QEdit Tip:Ŀ
  You should NOT execute any TSR (terminate and stay        
  resident) programs from QEdit's Shell command.  This      
  includes the DOS print and graph commands, and memory     
  resident programs such as Sidekick and Superkey.          
 

 ShiftLeft           <Shift F7>
 
 Shifts the contents of the currently marked Block (or the cursor line,
 if the cursor is not in a marked Block) one position to the left.  If
 you issue this command when the leftmost character(s) of the line(s)
 being shifted is in column 1, that character(s) is deleted to allow the
 remainder of the line to shift left one position.

 ShiftRight          <Shift F8>
 
 Shifts the contents of the currently marked Block (or the cursor line,
 if the cursor does not reside in a marked Block) one position to the
 right.  If you issue this command when the rightmost character(s) of the
 line(s) being shifted is in column 1000, that character(s) is deleted to
 allow the remainder of the line to shift right one position.

 ShowEntryScreen     <Alt F10>
 
 Displays the original DOS screen as it appeared upon initial execution
 of the editor.  Press any key to return to the edit screen.
 To use this command, the option "Do you want the original screen
 restored upon termination (Y/N)?" must be set to "Y" (the standard
 setting).  This option is set via the QCONFIG program, under
 "Colors/screen."

 ShrinkWindow        <Ctrl OS> or <Esc><W><R>
 
 Changes the size of the current window, if there are multiple windows on
 the screen.

 Sort                <Shift F3>
 
 Sorts a range of lines.  The sort key is determined by a marked column
 Block.  The lines spanned by the column Block determines the range of
 lines to be sorted.  For more information about column Blocks, refer to
 the MarkColumn command in this chapter.
 Whether the lines are sorted in ascending or descending order is
 determined by the ToggleSortDescending command.  Ignoring or respecting
 differences in case is determined by the ToggleSortCaseInSensitive
 command.  (The initial state of both of these toggles can be set via the
 configuration program.  Refer to the "General Options" section of
 Chapter 2.)
 The Sort command can only be used with a single, nonzoomed window on the
 screen.

 SpacesToTabs        <Esc><O><M>
 
 Compresses occurrences of multiple spaces to tabs, where appropriate.
 Spaces within quotes (single and double) are not compressed.  If the
 cursor is within a marked Block when this command is executed, only
 spaces within the Block are compressed; otherwise, this common operates
 on the entire file.

 SplitLine           <Alt S> or <Esc><E><S>
 
 Splits the current cursor line at the cursor position.  Any text to the
 right of and including the cursor position is placed on a new line
 following the current line.  If the cursor is past the last character on
 the line, then a blank line is added following the current line. The
 cursor position does not change.

 StoreScrbuff        <Ctrl BS>
 
 Copies the currently marked Block to the named Scratch Buffer.  The
 editor prompts for the name of the Scratch Buffer.  The contents of
 all Scratch Buffers are lost when the editor is terminated.

 TabLt               <Shift Tab>
 
 Positions the cursor at the previous tab position, as defined by the tab
 width.  If Insert mode is ON, the text to the right, including the
 character at the cursor position, shifts left.
 QEdit can be configured so that if Insert mode is ON, AND the cursor is
 inside a marked Block, the entire Block shifts left by the current
 cursor tab width.  For more information on this option, refer to the
 "Advanced Options" section of Chapter 2.

 TabRt               <Tab>
 
 Positions the cursor at the next tab position, as defined by the cursor
 tab width.  If Insert mode is ON, the text to the right, including the
 character at the cursor position, shifts right.
 QEdit can be configured so that if Insert mode is ON, AND the cursor is
 inside a marked Block, the entire Block shifts right by the current
 cursor tab width.  For more information on this option, refer to the
 "Advanced Options" section of Chapter 2.

 TabsToSpaces        <Esc><O><X>
 
 Expands tab characters to the appropriate number of spaces. Tabs within
 quotes (single and double) are not expanded.  If the cursor is within a
 marked Block when this command is executed, only tabs within the Block
 are expanded; otherwise, this command operates on the entire file.

 ToggleBakups        <Esc><O><B>
 
 Toggles (ON and OFF) file backups.  If ON, QEdit creates a backup file
 using the ".bak" file extension whenever a modified file is saved.

 ToggleBoxDraw       <Shift F1>
 
 Toggles (ON and OFF) Box Drawing mode.  If ON, the cursor movement keys
 (up, down, right, left) "draw" lines in the text, both up/down and
 right/left.  Very useful for creating charts and tables.
 The letter "B" appears on the StatusLine when this mode is ON.

 ToggleBoxType       <Alt F1>
 
 This command prompts the User to select from different line drawing
 styles for use with Box Drawing mode.  The options are: Single, Double
 Top, Double Side, Double, and Eraser.

 ToggleCenterFinds   <Esc><S><C>
 
 Toggles (ON and OFF) Find centering.  If ON, this causes the Find and
 FindReplace commands to center the found text vertically on the screen.
 If OFF, the initial row the cursor was on when the command was initiated
 does not change.

 ToggleEGA43         <Ctrl F1>
 
 Toggles an EGA monitor between 25-line and 43-line mode or a VGA monitor
 between 25-line and 50-line mode.  This command has no effect if the
 video card is not an EGA or VGA type.

 ToggleEnterMatching <Esc><O><E>
 
 Toggles (ON and OFF) EnterMatching mode.  If ON, the double quote,
 parenthesis, and square bracket keys all automatically enter the
 matching right-hand character when the left-hand character is entered.
 For example, typing the "[" key automatically enters a "]" immediately
 following.

 ToggleIndent        <Ctrl QI> or <Esc><O><A>
 
 Toggles (ON and OFF) AutoIndent mode.  If ON, the cursor is positioned
 at the current left margin whenever the <Enter> key is pressed. The
 current left margin is determined by the first non-blank character on
 the immediately preceding line.
 Paragraph reformatting and word-wrapping also use the current left
 margin when AutoIndent mode is ON.
 The letter "A" appears on the StatusLine when this mode is ON.

 ToggleInsert        <Ins> or <Esc><O><I>
 
 Toggles (ON and OFF) Insert mode.  If ON, text to the right of the
 cursor on the cursor line is shifted whenever characters, spaces, the
 Backspace command, the TabLt command, or the TabRt command is entered.
 Also, executing the Return command causes the current line to split at
 the cursor position.
 The letter "I" appears on the StatusLine when this mode is ON.

 TogglePrintLineNumbers   <Alt P><N> or <Esc><P><N>
 
 Toggles (ON and OFF) the printing of line numbers.

 TogglePrintPause    <Alt P><U> or <Esc><P><U>
 
 Toggles (ON and OFF) pausing between pages while printing.  If ON, the
 editor pauses and requires a key press to continue after every page is
 printed.  This is useful with single sheet printers.  When OFF, the
 editor prints continuously without pausing.

 ToggleShowCurrChar  <Esc><O><H>
 
 Toggles (ON and OFF) the display of the ASCII and Hexadecimal values of
 the current character on the StatusLine.  When ON, the ASCII and Hex
 values of the current character are displayed in the far right portion
 of the StatusLine.  If the cursor is past the end of the text on the
 line, <EOL> is displayed.

 ToggleSmartTabs     <Ctrl QT>
 
 Toggles (ON and OFF) Smart Tabs mode.  If ON, the TabRt and TabLt
 commands place the cursor beneath the beginning of the next (or
 previous) word on the first nonblank line preceding the current cursor
 line.

 ToggleSortCaseInsensitive   <Esc><B><I>
 
 Toggles (ON and OFF) case-insensitive sorting.  When ON, upper and lower
 case letters are sorted as if they are of the same case.  When OFF,
 upper and lower case letters are sorted strictly by their ASCII value,
 which places all upper case letters before the lower case letters.

 ToggleSortDescending        <Esc><B><N>
 
 Toggles (ON and OFF) descending sorting.  When ON, sorting is performed
 from highest value to lowest value (descending).  When OFF, sorting is
 performed from lowest value to highest value (ascending).

 ToggleSwap          <Esc><O><S>
 
 Toggles (ON and OFF) swapping to expanded memory or disk when the Shell
 <F9> and Dos <Alt F9> commands are executed.  (You can specify a default
 for swapping, using the configuration program.  Refer to the "Advanced
 Options" section of Chapter 2 for more information.)
 If ON, QEdit swaps itself out of DOS memory and to expanded memory
 or disk when a shell command is executed.  This leaves a small 2K
 kernel of QEdit in DOS memory, freeing up the rest of DOS memory for
 running other applications out of the shell such as compilers or
 spreadsheets.
 While you are in a shell, QEdit maintains a file with a ".SWP" file
 extension in your root directory.  It is very important that you do not
 delete this file while in the shell.

 ToggleTabsExpand    <Alt V>
 
 Toggles (ON and OFF) Physical Tab Expansion mode.  If ON, physical tab
 characters (ASCII 9) found in a file are expanded into spaces according
 to the Physical Tab Width set in the configuration program.  If OFF,
 physical tabs are displayed on the screen and a physical tab character
 is placed in the text each time the TabRt command is entered.

 ToggleTabsOut       <Alt I>
 
 Toggles (ON and OFF) Tabs Out mode.  If ON, continuous spaces in a line
 of text are replaced with physical tabs (ASCII 9) according to the
 Physical Tab Width set in the configuration program.  Only spaces in
 edited lines are replaced with physical tabs.  Spaces falling between
 single or double quotes are not replaced.

 ToggleVarTabs       <Esc><O><Y><V>
 
 Toggles (ON and OFF) Variable Tabs mode.  When ON, tab stops are set to
 those specified by the SetVarTabStop command, or by the default set by
 the configuration program.  When OFF, tab stops are set to a fixed tab
 width, as specified by the SetCTabWidth command.

 ToggleWordwrap      <Ctrl OW> or <Esc><O><W>
 
 Toggles (ON and OFF) WordWrap mode.  If ON, the cursor, along with the
 word currently being typed, automatically advances to the next line
 whenever a character is typed beyond the right margin.  The right margin
 can be permanently set using the configuration program (refer to the
 "General Options" section of Chapter 2) or temporarily changed using the
 SetRmargin command.
 The letter "W" appears on the StatusLine when this mode is ON.

 UndoCursorline      <Ctrl QL>
 
 Reverses any changes made to the current cursor line (except changes
 made with the FindReplace command).  If the cursor has been moved from
 the changed line or a file or window command is executed, the changes
 cannot be undone.

 UnKill              <Ctrl U> or <Esc><E><U>
 
 Recovers the last deleted entry from the current file's Kill Buffer.
 Deleted Blocks and lines are inserted immediately before the current
 cursor line, and deleted words are inserted immediately before the
 current cursor position.
 The number of lines saved in the Kill Buffer may be set with the
 configuration program.  Refer to the "General Options" section of
 Chapter 2 for more information.

 UnmarkBlock         <Alt U> or <Esc><B><U>
 
 Unmarks the currently marked Block.

 Upper               <Alt 1>
 
 Changes all characters in a marked Block to upper case.  The cursor must
 be within the marked Block.  If the cursor is outside of the marked
 Block or if no Block is marked, the character at the current cursor
 position is changed to upper case.

 WordLeft            <Ctrl Cursor Left>
 
 Positions the cursor at the first character of the previous word.

 WordRight           <Ctrl Cursor Right>
 
 Positions the cursor at the first character of the following word.

 WrapPara            <Alt B>
 
 Reformats text from the current cursor position until a blank line or
 end of file is encountered.  If AutoIndent is ON, the line below the
 cursor line is used for the left margin.  Otherwise, a left margin of
 zero is used.  The right margin is determined by the configuration
 program (refer to the "General Options" section of Chapter 2), or
 interactively set by the SetRmargin command.

 WriteBlock          <Alt W> or <Alt F><W> or <Esc><F><W>
 
 Writes the currently marked Block to the named file.  The editor prompts
 for the name of the file.

 A Save-As-Filename feature is possible with the WriteBlock command,
 allowing you to save your current file under a different name.  To use
 this feature, execute the WriteBlock <Alt W> command with no marked
 Blocks in the file.  QEdit prompts with:
 Ŀ
 File to write:                                                
 
 Enter the new filename.  If the filename you specify already exists,
 QEdit prompts with:
 ChooseĿ
  Overlay existing file 
  Append to file        
 
 Select the desired option, or press <Esc> to cancel.
 If there is a marked Block in the file, the WriteBlock command operates
 as usual, and writes the currently marked Block to the named file.

 ZoomWindow          <Ctrl OZ> or <Esc><W><Z>
 
 Toggles Zoom mode ON and OFF.  If there are multiple windows on the
 screen, entering the ZoomWindow command causes the current window to
 fill the entire screen.  Press ZoomWindow again to restore the other
 windows to the screen.




 Ŀ
                    QEdit(R) Advanced  -  Version 3                        
                Copyright 1985-1994 SemWare Corporation.                   
                                            
                          H E L P M E . D O C                              
                 QEdit common questions and answers:                       
 

  KEYBOARD
 
 QUESTION:   I try to use the "*","-", and "+" key on my numeric keypad and it
 doesn't seem to work.
 ANSWER:     By default QEdit has the Paste, Cut, and Copy commands assigned to
 these keys. They are referred to as the "grey*", "grey-", and "grey+" keys. If
 you want to use these keys at "Face-value", then unassign them in your
 keyboard definition file. See the printed manual for a listing of these keys.

 QUESTION:   I have a NorthGate keyboard that has an additional "*" key, but it
 doesn't seem to work.
 ANSWER:     This extra "*" key is the same as the "grey*" key. Please see the
 previous Question and Answer.

 QUESTION:   I can't get the F11 and F12 keys to work.
 ANSWER:     The F11 and F12 keys are present on "Enhanced Keyboards", also
 known as the 101-key keyboards.
 By default, QEdit has enhanced keyboard testing turned off. Run Qconfig.exe,
 select Advanced options, and answer Yes to "Test for presence of enhanced
 keyboard (Y/N)? ". Be sure that you Save your changes when you quit
 Qconfig.exe. As long as you have an "Enhanced Keyboard" and also a Rom Bios
 that recognizes the Enhanced keyboard, you will be able to use these
 additional keys. For a list of the "Enhanced Keyboard" keys, see the printed
 manual.

 QUESTION:   My TSR will not pop up over QEdit, why?
 ANSWER:     Some TSR's will not pop-up when Enhanced keyboard calls are being
 made. Run Qconfig.exe, select Advanced options, and answer NO to "Test for
 presence of enhanced keyboard (Y/N)? ". Be sure that you Save your changes
 when you quit Qconfig.exe. This should allow your TSR to pop-up. If you have
 Enhanced Keyboard testing turned off, you will not be able to access commands
 that you have assigned to the F11, F12, and other enhanced keys. For a list of
 the Enhanced keyboard keys, see the printed manual.

 QUESTION:   My Tab key doesn't seem to work right. What is wrong?
 ANSWER:     It's possible that you have ToggleSmartTabs ON. Make sure that
 ToggleSmartTabs is OFF.  Please see the printed manual for a description of
 the ToggleSmartTabs command.

  TEXT ENTRY AND MANIPULATION:
 
 QUESTION:   How can I enter _ANY_ ASCII character in QEdit?
 ANSWER:     Any ASCII character having a decimal value of 0-255 can be entered
 into a text file while in QEdit using one of the following methods:
                                 ASCII 1-255:
 Press and hold the <ALT> key. Now, using the numeric keypad (this is the
 keypad that is usually located on the right hand side of the keyboard), type
 the decimal value of the Ascii character that you want. Now release the <ALT>
 key and you should have the character placed in your text. (If you have a
 problem entering an ASCII 240, see the discussion in this section.)
                                   ASCII 0:
 To enter the NULL character (Ascii 0) into your text, first use QEdit's
 literal command (our default <CTRL P> ) and then press <CTRL @>. You will get
 the NULL character placed in your text (it will look like a space).
 For more information on the Alt numeric keypad see the QEdit tip on page 1-26
 of the printed manual. For more information on the Literal command see the
 printed manual.

 QUESTION:   How can I change a lower case character to an Upper case one or
 Vice-versa?
 ANSWER:     QEdit has 3 case changing commands. They are Upper, Lower, and
 Flip. These commands can be used to force uppercase, lowercase, or togglecase
 at the cursor position OR on all characters in a marked block (if the cursor
 is within the marked block).

 QUESTION:   How can I enter page breaks into my text?
 ANSWER:     You can enter a Form-feed character into your text by using the
 Literal command (our default <CTRL P> ) followed by <CTRL L>. You can also use
 the Alt-numeric keypad method (described previously). Hold the <ALT> key and
 type 12 on the numeric keypad, then release the <ALT> key.

 QUESTION:   I am writing batch files and QEdit puts a carriage return/line
 feed on the last line of a file. How can I keep from getting the double Dos
 prompt when my batch file is done?
 ANSWER:     QEdit writes a carriage return/line feed pair at the end of each
 line whenever a file is saved. If you don't want the carriage return/line feed
 on the last line of a batch file to be "SEEN" by Dos, then enter a Ctrl Z as
 the last character on the last line. Dos will stop processing the batch file
 when the ctrl Z is reached so you won't get the double prompt.

 QUESTION:   How do I enter a NULL character into my text?
 ANSWER:     Use QEdit's Literal command (our default <CTRL P>) immediately
 followed by <CTRL @>. This will place a NULL (ASCII 0) character in your text.
 Please see the discussion of the Literal command in this section.

 QUESTION:   How can I draw boxes in QEdit?
 ANSWER:     Use the ToggleBoxDraw command (our default <SHIFT F1>). When box
 drawing mode is on, a "B" will be present in the Status line. You can now use
 the cursor keys to draw boxes in your text. To turn box drawing off, issue the
 ToggleBoxDraw command again. The "B" will be gone from the status line. You
 can also select several Box Styles, plus an eraser mode, by using the
 ToggleBoxType command (our default <ALT F1>).

 QUESTION:   I try to enter an ASCII 240 using the Alt numeric keypad and my
 system seems to hang. What can I do?
 ANSWER:     There is a "Known" problem with some versions of the Phoenix Bios
 that occurs when an ASCII 240 is being generated from the numeric keypad and
 "Enhanced Keyboard" calls are being made.
 Internally, the bios code enters an infinite loop. To break out of this loop,
 Press <CTRL BREAK> and you will again have control of your keyboard. *NOTE:
 <CTRL C> will NOT get you out of the loop, you must use <CTRL BREAK>. If you
 have enhanced keyboard testing turned off in QEdit, you will not have this
 problem.
 As a side note, DOS 4.0 and above also make enhanced keyboard calls and the
 above discussion applies there as well.

 QUESTION:   How can I change all the Tab characters in a file to spaces?
 ANSWER:     Use the TabsToSpaces command (<Esc><O><X>)

  FINDING TEXT
 
 QUESTION:   How can I limit a "FIND" or "SEARCH and REPLACE" operation to a
 specified area?
 ANSWER:     The "L" option was added as a way for the user to limit a search
 operation to within a marked block area. When prompted for options, just
 include "L" with the other options.

 QUESTION:   How can I do a Find and place the found item on the center of the
 screen.
 ANSWER:     Set the "Center Finds" option on (<Esc><S><C>)

  CURSOR MOVEMENT
 
 QUESTION:   When I use the cursor key in QEdit to move to the right or left,
 the cursor stays on the same line when I come to the beginning or end of the
 line. How can I have the cursor move to the start of the next line when I
 reach the end of the current line OR move to the end of the previous line when
 I reach the beginning of the current line?
 ANSWER:     Assign the following macro in your Qconfig.dat file:
 cursorleft  MacroBegin CursorLeft JTrue end: CursorUp JFalse end: EndLine end:
 cursorright MacroBegin IsEndLine JTrue down: CursorRight Jump end: down:
     CursorDown JFalse end: BegLine end:

 QUESTION:   When I am inserting text on a line, wordwrap does not seem to
 work.
 ANSWER:     In order for wordwrap to operate, the cursor has to exceed the
 right margin that has been set. Once the right margin has been exceeded and
 you type a non-wordset character, the line will wrap.

  PRINTER
 
 QUESTION:   How can I enter Printer control codes in QEdit?
 ANSWER:     Please see the TEXT ENTRY AND MANIPULATION section. You will need
 to know the ASCII values of the control characters. These values will be
 mentioned in your printer manual.

 QUESTION:   I print a file that I have in QEdit, but the Box drawing
 characters do not print on my printout.
 ANSWER:     Check your printer manual and make sure that you have the printer
 set up to utilize the Character Graphics Set.

 QUESTION:   How can I have QEdit print to LPT2 or Com1?
 ANSWER:     Set the appropriate print device via the QCONFIG program, or set
 it interactively via the Print pulldown menu.

 QUESTION:   How can I get double spaced lines on my printout?
 ANSWER:     You can use the "print left margin" setting to obtain double and
 triple spaced text in most cases. If you have your printer set up so that it
 prints 80 characters on a line, then set the "print left margin" in QEdit to
 80. This will cause QEdit to send 80 spaces before printing each line, so
 effectively get double spaced lines. If you want triple spacing, then make the
 setting 160.

 QUESTION:   I have QEdit sending formfeeds to the printer, but am getting
 parts of a page AND some blank pages on my printout.
 ANSWER:     Make sure that your text does not have some long lines that are
 being wrapped by the printer. If your printer wraps at 80 characters on a
 line, make sure that your file does not have lines longer than 80 characters.

  CONFIGURATION
 
 QUESTION:   I make some changes to QEdit using Qconfig.exe and they do not
 take effect.
 ANSWER:     Make sure that you are using the copy of QEdit that you just
 configured. If you are not in the current directory where your newly
 configured copy of QEdit is, then check your path to see if you are getting a
 different copy of QEdit. Be sure to look for batch files as well as EXE's and
 COM's that share the same primary name. I.E. Look for Q.exe, Q.com, Q.bat
 along your path.

  QEDIT COMMANDS
 
 QUESTION:   When I use the CenterLine command, my text is not centered on the
 screen.
 ANSWER:     The centerline command uses column 1 and the right margin that you
 have set as the basis for centering text. If you want the text centered on the
 screen, assuming that your screen is 80 columns wide, you can set your right
 margin to 80 and then issue the centerline command. If you don't want to
 change your right margin, you can use column block marking to mark your left
 and right hand margins, then issue the centerline command.

 QUESTION:   How do I get the Sort command to work?
 ANSWER:     In order to use the Sort command, you must be in a single,
 nonzoomed window. You must use the MarkColumn command to mark the range of
 lines to sort, and the width of the field to sort on as the key. If you use
 any other type of blocking, the sort command will not work.

  QEDIT COMMAND LINE OPTIONS
 
 QUESTION:   How can I have QEdit run a macro on start-up?
 ANSWER:     The "-Emacroname" or "/Emacroname" command line switch, will
 execute the first macro in macroname. Be sure to specify a path to macroname
 if it is not in the current directory. E.G.  Q ABC -Ec:\path\mymacro.mac will
 load file ABC and execute the first macro in c:\path\mymacro.mac. Please note
 that this switch does not load macroname. If you also want to load macroname,
 then use the -L or /L option described in this section.

 QUESTION:   How can I have QEdit pre-load a macro set?
 ANSWER:     The "-Lmacroname" or "/Lmacroname" command line switch, will load
 macroname. Be sure to specify a path to macroname if it is not in the current
 directory. E.G.  Q ABC -Lc:\path\mymacro.mac will load file ABC and load the
 macrofile c:\path\mymacro.mac.

 QUESTION:   I used to be able to have QEdit load a file and then go to a
 certain line number, but now it does not work.
 ANSWER:     In versions of QEdit prior to version 2.1, going to a specified
 line on startup was a configuration program option. This has been replaced
 with a command line switch of the format -nLINE# or /nLINE#. I.E. To load file
 ABC and immediately go to line# 35 type:  Q ABC -n35

 QUESTION:   How can I have QEdit come up in 43/50 line mode?
 ANSWER:     Set the appropriate option via the QCONFIG program.  See the
 Colors/Screen section.

 QUESTION:   How do I use a QEdit command that is not tied to a key?
 ANSWER:     If you would like to have the command available at all times, just
 assign the command to a key in your keyboard definition file. Once you have
 modified your keyboard file, be sure to run the Qconfig.exe program. Select
 the Keys option, supply the name of your Keyboard file, then save your changes
 and quit the program.
 You may use all the QEdit commands when creating macros.



 Ŀ
                    QEdit(R) Advanced  -  Version 3                        
                Copyright 1985-1994 SemWare Corporation.                   
                                            
                          Q T I P S . D O C                                
    A compilation of QEdit Tips from the SemWare Technical Support Staff   
 

 The InsertDate Command in QEdit 2.15 & 3.00
 
   In QEdit 2.15 when you used the InsertDate command, the output contained the
   full year:
                              Tue 11-02-1993
   However, in QEdit 3.00 the output of InsertDate does not contain the first
   part of the year:
                               Tue 11-02-93
   To have QEdit 3.00 insert the "19" part of the year, use the following
   macro:
   <KEY>   MacroBegin
               SaveSettings        * Save Settings of Insert, WordWrap, etc.
               SetScreenOff        * Turn off screen updates
               InsertDate          * Insert the Date
               SetInsMode          * Set Insert ON
               CursorLeft  2       * Move Back to the beginning of the year
               "19"                * Insert the 19 part of the year
               CursorRight 2       * Move to the end of the year
               RestoreSettings     * Restore our original condition
   This macro can be bound to any available key in your QCONFIG.DAT file.

 Converting QEdit 2.x Macros to 3.0
 
   The binary macro files compiled with QMAC from QEdit 2.15 and earlier are
   not completely compatible with QEdit 3.00.  However, there is a painless
   process to convert your macros from 2.15 to 3.00.
   To follow this process you will need to determine if you have text file
   versions of your macros.  If you don't, you will need to follow this
   process:
     (1) Copy all of your binary macro files (*.MAC) to a temporary directory.
     (2) Copy the QMAC program (QMAC.EXE) from your QEdit 2.15 directory to
         your temporary directory.
     (3) For each of the *.MAC files, run QMAC to convert them to text files.
         For example:
             C:\QETMP>QMAC <FileName>.MAC <FileName>.Q /A- /T
         Where <FileName> is the file to convert.
   This process creates the text file versions of your macros.  The files will
   have the same name as the original macros, but with a ".Q" extension.
   This process is for everyone, it will convert your QEdit 2.15 macros into
   QEdit 3.0 macros:
     (1) Copy all of text macro files (for those who followed the first
         process: the *.Q files in the temporary directory) to your QEdit 3.0
         directory.
     (2) For each of the text macro files, run the QMAC program (from QEdit
         3.0) to convert them to binary files.  For example:
             C:\QE3>QMAC <FileName>.MAC <FileName>.Q /A- /B
   That's it!  You have now successfully re-compiled your macros for QEdit 3.0.

 Multi-Line Macro Format
 
   In QEdit 3.0 you can have multi-line macros in your QCONFIG.DAT file. This
   new capability gives QEdit much more power over previous versions.
   When upgrading from QEdit 2.15 (or earlier) there are a couple of
   conventions that must be followed when formatting your QCONFIG.DAT file:
     (1) The key must appear in the first column of the command assignment or
         macro.
     (2) When writing macros, all succeeding lines must be indented one or more
         columns.
   The reason for these conventions is to allow QEdit to differentiate between
   commands and keys.  Consider this example, which does _not_ follow the new
   conventions:
     * This comment starts in column one.
     *
         CursorDown CursorDown BegLine
         CursorUp CursorUp BegLine
   Before QEdit 3.0, the first word on each line would have been interpreted as
   a key automatically.  However, with multi-line macros it is no longer clear
   exactly what the user intended here.  These lines could be seen as either
   two individual key assignments, or as a single macro. (Granted, it would be
   a silly macro -- one step forward and two steps back!)
   Here is an example of a few key assignments that follow the new format:
     * This comment starts in column one.
     *
     ^k_h        MacroBegin                          * Fancy Home Macro
                 BegLine
                 isCurrChar ' '      MacroQuitFalse
                 FirstNonWhite
     CursorDown  CursorDown                          * Down / BegLine
                 BegLine
     CursorUp    CursorUp BegLine                    * Up / BegLine

 Startup Macros
 
   QEdit has the capability of loading and/or executing your compiled macro
   files on startup through the use of command line parameters. The macro files
   being used must be in binary format created using the MacroWrite command
   <Esc><M><W> command or QMAC (QEdit's macro translator).
   To _load_ a macro from the command line enter "-l" or "/l" (a dash or slash
   and the letter "l") followed immediately by a macro filename.  The maximum
   size of a loadable macro file is 2k. The format for loading a macro follows:
           q <filename to edit> -l<macro filename>
   To _execute_ a macro from the command line enter "-e" or "/e" followed
   immediately by a macro filename.  The maximum size of an executed macro is
   500 bytes.  The format for executing a macro on startup follows:
           q <filename to edit> -e<macro filename>
   When using the execute ("-e or /e") option, the first macro in the macrofile
   is executed.  The macro is then executed only after the file to be edited
   has been loaded.  The macro file is executed once and not loaded into the
   editor.
   A filename must be supplied to QEdit to make use of the command line
   parameters.  Both the load and execute macro parameters may be used at the
   same time.  The order that they are specified on the command line is not
   important.  The format for executing a macro and loading a macrofile on
   startup follows:
           q <edit filename> -e<macro filename> -l<macro filename>
   To illustrate the above, suppose you want to edit a file called WORK.TMP and
   at the same time, from the command line, load the macro file called
   FIRST.MAC and execute the macro file called SECOND.MAC.  From the command
   line you would enter:
           q work.tmp -lfirst.mac -esecond.mac

 QMac: The Basic's
 
   QMac is a translator of QEdit macro files.  It translates QEdit macros from
   the binary file in which QEdit saves macros to a text file which allows easy
   macro editing, and translates such text files back into a QEdit binary file.
   This allows you to "record" a macro using QEdit; fine-tune it by editing the
   text representation of the macro; and then translate the edited version and
   reload it into QEdit for replay.
   QMac allows appending to or overwriting existing files, making it easy to
   add new macros to existing files. QMac's text file format allows comments,
   permitting documentation of the macros within their "source file".
   To see a summary of QMac's operations, type "QMAC ?" at the DOS prompt and
   press Return.  All of the command line switches are optional and are only
   necessary to control QMac's operation in special ways.
   Here is quick run-through of what you can do with QMac, including recording
   a macro, saving it to disk, and converting it with QMac.  The keystrokes
   mentioned below assume you are using the default QCONFIG.DAT supplied with
   QEdit; if you have re-installed your keyboard using QCONFIG, please modify
   as needed.

   Recording a Macro:
   ~~~~~~~~~~~~~~~~~
   1. From inside QEdit, select MacroRecord.  (Either hit <Ctrl M> or select
   "Macro record" from the "Macro" menu in the pull-down menu system, by
   pressing <Escape><M><M>).
   2. At the prompt that says "Assign to what key:" press a key to redefine.
   We will use <Ctrl F10>
   3. Press Find <Ctrl QF>, type "the" and press Return, and type "IW" and
   press Return again.  (This is just an example of what you can do, you could
   of course record any legal series of QEdit keystrokes here.)
   4. Select MacroRecord again to end the macro, like step 1 above.
   5. Now, you can press <Ctrl F10> to search for the word "the" in your text
   in just one step.

   Saving the Macro:
   ~~~~~~~~~~~~~~~~
   6. Let's write this macro to disk in a file that QMac can use. Select
   MacroWrite from the pull down menus, by pressing <Escape> then <M><W>.
   7. Give it a filename of "FIND.MAC", and press Return to save this macro on
   disk.

   Converting the Macro to Text:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   8. Press Dos <Alt F9> to send a command to MS-DOS. Type:
        QMAC FIND.MAC FIND.TXT /A- /T
   to convert FIND.MAC to a text form in the file FIND.TXT. Press Return.  (The
   /T selects text output).
   9. Press EditFile <Alt E> to load this file into QEdit. Type "FIND.TXT" to
   load the text file you just created with QMac. Press Return.  You should see
   something like this on the screen:
        * * Converted by QMAC from: C:\FIND.MAC * ^f10
        MacroBegin Find "the" Return "IW" Return
   Which is, of course, a text representation of the keystrokes you just
   recorded.

   10. You can now edit your macro if need be.  Let's change the word "the" to
   "and", and save the file back to disk by pressing File <Ctrl KX>.

   Converting the Macro from Text back to Binary:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   11. Press Dos <Alt F9> to send a another command to MS-DOS. This time, type:
        QMAC FIND.MAC FIND.TXT /A- /B
   to convert FIND.TXT back to its BINARY form, FIND.MAC. (NOTE that we use /B
   to tell QMac to make the binary file from the text file we just edited).
   Press Return.

   QMac Additional Notes:
   ~~~~~~~~~~~~~~~~~~~~~
   QMac will create whichever of the two files (binary or text) that did not
   exist already:  If the text macros already exist, it will convert them to
   binary.  Or if the binary macros already exist, it will convert them to
   text.
   However, if both files exist, you must supply one of the optional switches
   to determine the direction.  The switch /B tells QMac to create a Binary
   file, while /T tells it to create a text file.
   If the output file already exists, you must also supply a /A+ or /A- switch
   to tell QMac whether to "append" to the existing file. With /A+ it will
   append, /A- tells QMac to overwrite the existing file.
   Anywhere an asterisk ("*") appears on a line, outside of a quoted string,
   the rest of the line is treated as a "comment" and is ignored by QMac.  You
   can use this to include notes to yourself about how your macros work, or
   what they are supposed to do.  Comments are not included in the binary macro
   file that QEdit loads, so there is no penalty for including them in your
   text macro files.
   A macro can continue onto more than one line, simply indent the second and
   subsequent lines of the macro one or more spaces. The macro continues until
   QMac runs out of text or encounters another key at the beginning of a
   subsequent line.
   Lines in your text macro files can be up to 512 characters long.

 QEdit in 43/50 Line Mode on Startup
 
   If you want to have QEdit start-up in 43/50 line mode, you can select the
   "Startup video mode" option under Colors/Screen in the QCONFIG program.
   Using this option, you can force QEdit to come up in 28 or 43/50 line mode.

 Saving Files and Exiting
 
   QEdit provides several different ways to save files, discard files, and exit
   the editor.  A set of five basic commands provides various combinations of
   saving, discarding, and exiting in order to suit individual preferences.
   We recommend selecting one or two methods with which you feel most
   comfortable and use them consistently.  Below is a description of the basic
   commands for both single and multiple files along with our default key
   combinations.
   1)  SaveFile <Ctrl K><S> - save the currently edited file to disk. The file
           remains loaded into the editor for further editing.
       GSave <Alt Y> - Like the SaveFile command but it issues the SaveFile
           command for all the files that have been modified.
   2)  File <Ctrl K><X> - Unconditionally saves and then discards the current
           file.  It then either goes to the next file in the QEdit file ring
           or the file to edit prompt.
       GFile <Alt F><G> - Like the File command but it instructs the editor to
           save all files that have been modified and then discards all the
           files that are loaded and exits.
   3)  Exit <Ctrl K><D> - Conditionally discards the currently edited file.  If
           the file has not been modified, the file is discarded without
           prompting and the editor is exited.  If the file has been modified,
           the editor will prompt "Save Changes (Y/N)?"  Selecting <Y> will
           save and discard the file, then exit.  Selecting <N> will discard
           the file without saving any changes and exit.
       GExit <Alt X> - Like the Exit command but it issues the Exit command for
           all loaded files.  If no files have been modified, it will
           immediately exit the editor.  If any files have been modified, the
           "Save Changes (Y/N)?" prompt will be displayed for each modified
           file.
   4)  PQuit <Ctrl K><Q> -  A protected quit that will warn the user of a
           modified file before discarding the file.  If the file has not been
           modified, it is discarded without prompting. If the file has been
           modified, the editor will prompt "Lose Changes (Y/N)?"  Selecting
           <Y> will discard the current file without saving changes and then
           either go to the next file in the QEdit file ring or the file to
           edit prompt. Selecting <N> will return you to the file to resume
           editing.
       GPQuit <F3> - Like the PQuit command but it issues the PQuit command for
           all loaded files.  If no files have been modified, it will
           immediately exit the editor.  If any files have been modified, the
           "Lose Changes (Y/N)?" prompt will be displayed for each modified
           file and then the editor is exited.
   5)  Quit - An unconditional quit.  The current file is discarded regardless
           of any changes made to it.  NOTE: Use this command with caution!
           The Quit command is not assigned to a default keystroke.
   The Exit, File, PQuit commands can be configured to terminate or not
   terminate the editor and ask for another file to edit. This option can be
   customized using the configuration program QCONFIG.EXE.  Run QCONFIG.EXE,
   select G)eneral Options, and return till you get to the option that reads:
       Do you want the PQuit, Exit and File commands to return to "EditFile"
       prompt (Y/N)? [Y]
   The default configuration is set to <Y> and will return you to the EditFile
   prompt upon executing the PQuit, Exit, and File commands or go to the next
   file in the QEdit file ring.  If set to <N>, it will terminate QEdit upon
   executing the above commands.  The SaveFile and Quit commands are not
   affected by this setting.

   A Few Recommendations:
   ~~~~~~~~~~~~~~~~~~~~~
   *  If you know what you are doing and want to get in and out of the editor
      quickly, use the GFile command.
   *  If you want to make one more final check before you exit the editor, use
      the GExit.
   *  PQuit/GPQuit and Exit/GExit are not intended to be used at the same time,
      but to give the user opposing approaches to saving files and exiting the
      editor.

 Types of Block Marking and Unmarking
 
   A block is a portion of a text file which has been defined by using QEdit's
   Block marking commands.  QEdit has a rich set of Block commands.  These
   commands mark Blocks by lines, columns, and characters.
   To define a block, you must first "mark" or outline a Block. There are four
   Block types in QEdit: line, column, inclusive character blocks, and
   non-inclusive character blocks.  The one you choose will depend on the
   editing situation and what you feel most comfortable using.  Below is a
   description of the commands along with our default key combinations.
   MarkLine <Alt L> - will mark only complete lines and no portions of lines.
       To use this command, place the cursor anywhere on the first line of the
       text you want to mark and press <Alt L>.  Now move the cursor to the
       last line of text you wish to be marked and press <Alt L> again.
   DropAnchor <Alt A> - will mark a Block one character at a time. The Block
       will contain a stream of characters and can span over multiple lines.
       To use this command, place the cursor over the first character of text
       you wish to mark and press <Alt A>.  Now move the cursor toward the end
       of text to be marked. (Notice that the Block "follows" the cursor
       position.)  Once the cursor is placed over the last character to be
       marked, press <Alt A> again.
   MarkCharacter - will work just like DropAnchor except that while the Block
       is being marked, the cursor is _not_ included within the Block.
       MarkCharacter is not assigned to a default keystroke.
   MarkColumn <Alt K> - will mark one or more columns of text. To use this
       command, place the cursor over the upper left-hand character of the text
       you wish to mark and press <Alt K>. Now move the cursor to the right
       and/or downward toward the end of text to be marked.  (Notice that the
       Block "follows" the cursor position.)  Once the cursor is placed over
       the lower right-hand character of the Block, press <Alt K> again.
   MarkBlockBegin <Ctrl K><B> and MarkBlockEnd <Ctrl K><K> - will mark one
       character at a time.  These commands do _not_ show the block until
       MarkBlockEnd is executed.  To use this command, place the cursor over
       the first character of the text you wish to mark and press <Ctrl K><B>.
       Now position the cursor one character past the end of the text that is
       to be marked and press <Ctrl K><K>.
   MarkWord <Ctrl K><T> - will mark a single word.  To use this command, place
      the cursor at the first character of the word you wish to mark and press
      <Ctrl K><T>. (If no word is at the current cursor position, then no
      action is taken.)
   UnMarkBlock <Alt U> - will cause the currently marked Block to be unmarked.

   A few side notes:
   ~~~~~~~~~~~~~~~~
   *  QEdit allows you to mark one Block at a time.
   *  If you mix Block types, QEdit will mark the Block according to the last
      command entered.
   *  MarkCharacter is provided as a replacement for the DropAnchor command.
      If you want the cursor position included in the character Blocks, then
      continue to use DropAnchor; otherwise, replace the DropAnchor command
      with MarkCharacter in the QCONFIG.DAT file.
   *  When using MarkLine, MarkCharacter, MarkColumn, and DropAnchor commands,
      it is not necessary to mark the end of the Block.  QEdit will assume the
      end of the Block to be the current cursor position and/or line depending
      on the command being used.  Marking the end of the Block is only
      necessary when moving or copying text within the same file.

 Manipulating Marked Blocks (Part A)..
 
   QEdit provides several ways to manipulate a marked Block. Manipulation can
   be done directly, using the scrap buffer (Clipboard), or using the scratch
   buffers.  Following is a description of each of QEdit's block manipulation
   commands along with our default key combinations.

   Manipulating Directly
   ~~~~~~~~~~~~~~~~~~~~~
   The following commands allow you to manipulate a marked Block directly.
   CopyBlock <Alt C> - will make a copy of the marked Block and insert it where
       you decide.  This can be either in another place in the same file, or in
       another file.  To use this command, mark the Block and move the cursor
       to the position where you wish to insert the marked text. Now press <Alt
       C> and notice the Block will be inserted at the new position. To unmark
       the copied Block, enter the UnmarkBlock command.
   CopyOverBlock <Alt Z> - will work just like the CopyBlock command except the
       Block is copied to the current cursor position by overlaying the
       existing text.  The command can _only_ be used with column Blocks.  The
       Block will be inserted without shifting the text to the right.
   MoveBlock <Alt M> - will work just like the CopyBlock command except that
       upon entering the MoveBlock command, the original marked Block is
       deleted from the file.
   DeleteBlock <Alt G> - will delete a marked Block of text from the file.  To
       use this command, mark the Block of text to be deleted, then enter the
       DeleteBlock command.
   ShiftLeft <Shift 7> and ShiftRight <Shift F8> - will shift the text
       contained in a marked Block one column to the left or right.  To use
       these commands, mark the Block and enter the ShiftLeft or ShiftRight
       command.  If there is not a marked Block or the cursor is outside of the
       Block, the current cursor line will be shifted.

   Manipulating Using the Scrap Buffer (Clipboard)
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   The Scrap Buffer is a temporary holding area for marked Blocks of text.  The
   commands Cut, Copy, Paste, and PasteOver are solely responsible for
   manipulating text to and from the Scrap Buffer.
   Cut <grey -> - will copy the marked Block into the Scrap Buffer. The Block
       is then deleted from the file being edited.  If no Block is marked, the
       cursor line is cut into the Scrap Buffer.
   Copy <grey +> - will copy the marked Block into the Scrap Buffer and then
       unmark the Block.  If no Block is marked, the cursor line is copied into
       the Scrap Buffer.
   Paste <grey *> - will insert the contents of the Scrap Buffer to the current
       cursor position.  If the Scrap Buffer contains a character or column
       Block, it is inserted at the cursor position.  If the Scrap Buffer
       contains a line Block, it is inserted before or after the cursor line
       depending on the configuration setting.
   PasteOver <Ctrl PrtSc> - will work like the Paste command, but for column
       Blocks.  It takes a column Block which has been loaded into the Scrap
       Buffer using the Cut or Copy commands and places it at the current
       cursor position by overlaying the existing text and without shifting
       text to the right.
   When you issue a Copy or Cut command, the marked Block is placed in the
   Scrap Buffer.  The next time you Copy or Cut a Block into the Scrap Buffer,
   the previous contents of the Scrap Buffer are deleted and replaced with the
   new Block.
   You can use the Paste and PasteOver commands as many times as needed to
   insert a copy of the Block held in the Scrap Buffer at multiple positions in
   your file or files.  The Paste and PasteOver commands will not purge the
   contents of the Scrap Buffer.
   The Cut and Copy commands can be configured to act on the current cursor
   line if no Block is marked.  This option can be customized using the
   configuration program QCONFIG.EXE.  Run QCONFIG.EXE, select A)dvanced
   options, and return till you get to the option that reads:
           Should Cut and Copy use the current line if no block marked (Y/N)?
           [N]
   The default configuration is set to <N> and will result in no action if the
   Cut and Copy commands are used outside of a block. If set to <Y>, QEdit will
   take use the current cursor line if the Cut and Copy commands are issued.

   Manipulating Using the Scratch Buffer
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   A Scratch Buffer is a special type of buffer to which you assign a name.
   QEdit allows you to create and name up to 99 Scratch Buffers for each
   editing session.  These can be useful if you have several different Blocks
   of text that you want to insert in multiple locations.  The commands
   StoreScrbuff, AppendScrbuff, and GetScrbuff are used to place text in, and
   retrieve text from, a Scratch Buffer. Whenever you issue one of these
   commands, QEdit will ask you for the name of the Scratch Buffer. The
   contents of all Scratch Buffers are discarded when the editor is terminated.
   StoreScrbuff <Ctrl B><S> - will copy the marked Block to the named Scratch
       Buffer.  The editor will prompt for the name of the Scratch Buffer.
   AppendScrbuff <Ctrl B><A> - will append the marked Block to the end of the
       named Scratch Buffer.  The existing contents of the named Scratch
       Buffers are _not_ lost.  If the named Scratch Buffer does not exist, a
       new Scratch Buffer will be created.
   GetScrbuff <Ctrl B><L> - will insert the contents of the named Scratch
       Buffer at the cursor position.

 Manipulating Marked Blocks (Part B)..
 
   QEdit provides several other ways to manipulate a marked Block. Manipulation
   of Marked Blocks can be done by using the Upper, Lower, Flip, Sort, Fill,
   Print, and WriteBlock commands. Following is a description of each of
   QEdit's block manipulation commands along with our default key combinations.
   Upper <Alt 1> - will change all characters in a marked block to upper case.
   Lower <Alt 2> - will change all characters in a marked block to lower case.
   Flip <Alt 3> - will reverse the case (upper to lower and lower to upper) of
       all characters in a marked block.
   The Upper, Lower, and Flip commands must be used within the marked block.
   If the cursor is outside of the marked block or if no block is marked, the
   character at the current cursor position is changed to upper case.
   Sort <Shift F3> - will sort a range of lines in ascending order. The sort
       key is determined by a marked column block.  The length of the column
       block determines the range of lines to be sorted.
       This command can _only_ be used with a single, nonzoomed window on the
       screen.
   FillBlock <Ctrl K><L> - will fill an entire block with any ASCII character.
       FillBlock is recommended for use with column and word blocks only
       because it will fill other type blocks with characters beyond column 80.
   PrintBlock <Alt P><B> - will print the entire contents of the marked Block.
       The marked Block must be in the current file.
   WriteBlock <Alt W> - will write the marked Block to the named file.  The
       editor will prompt for the name of the file.
       This feature will also allow you to save your current file under a
       different name.  To do so, press <Alt W> with no marked blocks in the
       file.  QEdit will prompt you for a filename. If the filename already
       exists, QEdit will prompt you with "Overlay existing file" and "Append
       to file." Select the option you desire or press escape to abort.
       If there is a marked block in the file, the WriteBlock command will, as
       before, write the current marked block to the named file.

 QEdit's Keyboard Configuration
 
   Are you tired of signing your names to all those messages you write in
   QEdit?  Would you like to change the help screen to the F10 key like it was
   in your "other" editor?  This is where QEdit's flexible keyboard
   configuration is extremely helpful. It will provide you with the ability to
   assign editor commands and macros to almost any key you prefer.  Below you
   will find an explanation of QEdit's keyboard definition file (QCONFIG.DAT)
   and how to modify it to meet _your_ needs.

   What is QCONFIG.DAT?
   ~~~~~~~~~~~~~~~~~~~~
   It is QEdit's keyboard definition file which contains the default settings
   for the keyboard.  This file contains a list of all the keys to which
   commands may be assigned.
   The configurable keys are on the left side of the file with the commands or
   macros assigned to the keys on the right.  Blank lines and lines starting
   with an asterisk "*" are ignored.  The control, alternate, and shift keys are
   used within QCONFIG.DAT to assign to commands.  The following are some
   examples of each.
        - Control keys are specified with a "^". (i.e. - ^F1 means Control F1
          and ^PgUp means Control Page Up)
        - Alternate keys are specified with a "@". (i.e. - @F1 means Alternate
          F1 and @PgUp means Alternate Page Up)
        - Shift keys are specified with a "#". (i.e. - #F1 means Shift F1)
   The case of the commands, as well as underscores in command names, are
   ignored by the configuration program (QCONFIG.EXE). This means that
   CursorDown, cursor_down, and Cursor_Down all refer to the same command.

   What are twokeys?
   ~~~~~~~~~~~~~~~~~
   A twokey is a keystroke sequence assigned to two distinct keystrokes.  This
   allows for more key assignment possibilities. To assign a command to a
   twokey, enter both of the keystrokes of the twokey in the first column
   separated by an underline. The key here is that the commands must be
   separated by a '_'.  For example, to assign the Exit command to the twokey,
   <Ctrl F1><F2>, enter the following into your keyboard definition file:
           ^F1_F2  Exit
   Any QEdit command can be assigned to a twokey, including macros.

   How can I modify MY QEdit keys?
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Any QEdit user can modify his/her keys to suit their needs.  It is easy and
   simple.  Just follow the steps below to modify your QCONFIG.DAT file.
           1.  Edit QCONFIG.DAT  (i.e. - q QCONFIG.DAT).
           2.  Make the appropriate changes to your QCONFIG.DAT file.  (i.e. -
               change the definitions of @0 and ^F2 to be:
               @0      InsertDate
               ^F2     MacroBegin "Matthew Giles" Return "SemWare Technical
                       Support"
               Remember that the first line of a command assignment must start
               in column 1.  Command assignments can wrap or continue for
               multiple lines, as long as each succeeding line starts in a
               column greater than 1.
               Also remember that text should be enclosed in single or double
               quotes.
           3.  Save your QCONFIG.DAT file.
           4.  Run QCONFIG.EXE, enter program name and select K)eys
           5.  Enter keyboard definition name
           6.  Select S)ave options and quit
   You have now installed your new keyboard definitions into QEdit. Next time
   the editor is loaded your new keys will be in effect.

   What if I liked the keys assignments on my "other" editor?
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   There are many keyboard definition files written by QEdit users and staff
   that will allow you to customize your editor to run like another editor.
   You may find these additional keyboard definition files on the SemWare
   Support BBS.  To install and/or edit the other keyboard definition file,
   follow the steps above with the addition of entering the new filename when
   it prompts you for the keyboard definition filename.

 QEdit TSR's Benefits
 
   Have you ever been in a program and wanted to simply jot a note to yourself?
   Have you ever had the need to take a quick look at a document, but the
   program you were in had no shell option? Then, QEdit TSR, the memory
   resident version of QEdit, is for you!
   As a memory-resident version of QEdit Advanced, QEdit TSR (Terminate and
   Stay Resident) resides in the background, giving you the power of QEdit with
   a single keystroke, but without having to exit the file you're working in.
   Unlike more familiar TSR programs, QEdit TSR utilizes a unique swapping
   feature to provide the benefits of a TSR without draining precious memory.
   QEdit TSR uses less than 9k memory, and when popped up swaps your current
   applications out of memory and into extended/ expanded memory or to disk.
   In this configuration, you can edit files up to 400k in size.
   QEdit TSR contains all of the QEdit v2.15 commands plus four additional
   commands.  These are described below along with the default key combination
   for each.
   GrabScreen <Ctrl F10> - reads in the contents of the screen, as it appeared
       when you popped up QEdit TSR as a marked block at your current cursor
       position, and inserts it into the current file as a marked block. The
       GrabScreen command behaves as if you were using the QEdit Advanced
       ReadBlock command.
   GoBack <ESC><Q><G> - returns you to your DOS application, in the exact
       configuration as when you left it.  The GoBack command can be customized
       to prompt you to save edited files.  This is done by using QTCONFIG,
       QEdit TSR's configuration program.
   Purge <ESC><Q><P> - purges QEdit TSR from memory after first prompting the
       user to save any changed files.
   TsrPaste - "pastes" a marked block into the foreground application.
       TsrPaste does not have a default keyboard assignment.  To use this
       command, follow these steps:
       1) When the foreground application is waiting for input, pop up QEdit
          TSR.
       2) Within QEdit TSR, mark a block of text and stuff it into the keyboard
          buffer with the [TsrPaste] command (available as the last item on the
          "Quit" pulldown menu).
       3) Quit QEdit TSR and return to the foreground application by issuing
          the [GoBack] command, and the text will be immediately pasted into
          the foreground application.
   Notes: Each line that is pasted, including single lines, has a carriage
       return appended to it.
   Although QEdit TSR has all the features QEdit Advanced is famous for, most
   users want a non-TSR editor as well.  For this reason, QEdit TSR currently
   comes bundled with a separate copy of QEdit Advanced.  Registered users may
   purchase only the TSR software at a discount over the full TSR package
   price.  Please call us at 404-641-9002 M-F 9a-5p EST for details!

 QEdit's Line/Box Drawing
 
   Do you want to spice up your memos?  Do you want to draw boxes around text
   to emphasize it?  Then QEdit's Line/Box drawing feature is for YOU!  Give
   emphasis to your documents without the need to use a drawing program.  It's
   simple and easy to use!
   QEdit contains two line drawing commands.  These are described below along
   with the default key combination for each.
   ToggleBoxDraw <Shift F1> - this mode of operation can be switched ON or OFF.
       In the ON position, the cursor movement keys (up, down, right, and left)
       can be used to "draw" lines in the text.  To switch Line/Box Drawing
       mode ON, enter <Shift F1>. To switch it OFF, enter <Shift F1> again.
   ToggleBoxType <Alt F1> - this command prompts the user to select from
       various line drawing styles for use in the Line/Box Drawing mode.  The
       selectable options are:  single, double top, double side, double, and
       eraser.
   The status line indicates when the line/box drawing mode is on. The letter
   'B' is displayed on the status line whenever line/box drawing mode is
   selected.
   To print the lines/boxes you have drawn in your text file, first set your
   printer to use the IBM graphics character set.  Then use any of QEdit's
   printing options.

 QEdit's Conditional Logic for Macros
 
   Have you ever wanted to test to see if the cursor is at the beginning of the
   line?  Have you ever wanted to perform a task only if you find what you are
   searching for in a macro?  QEdit brings you all the power of looping and
   branching in it's conditional logic commands.
   There are three commands in QEdit for use within macros: Jump, JTrue, and
   JFalse.  Placing one of these commands following another QEdit command in a
   macro allows for branching or looping during macro execution.
   All QEdit commands set an internal result code to either "true" for
   successful execution, or "false" for unsuccessful execution or if no action
   occurs.  The Jump command makes an unconditional jump.   The JTrue command
   makes a jump only when a result code of "true" is returned.  Likewise, the
   JFalse makes a jump only for a result code of "false".
   Labels can be defined for branching, in the format "label:". The maximum
   label length is 15 characters.

   beginning of the line, and assigned to the f10 key:
           f10     MacroBegin
                   begin:
                      CursorLeft
                      JFalse done:
                      DelCh
                      Jump begin:
                   done:

 Little known QEdit Commands
 
   Have you ever wanted to adjust some of your settings temporarily?  Have you
   wanted to turn off the sound while performing a repeated find command?  Have
   you wanted to find the decimal code for a character?  QEdit Advanced lets
   you accomplish these tasks and more!  These additional general and advanced
   macro commands increase the power of QEdit.  The following is a list of the
   commands added to QEdit in version 2.15 with a brief description of each,
   plus several examples.

   General Commands:
   ~~~~~~~~~~~~~~~~
   AsciiChart - Displays a scrollable ASCII chart on the screen.
   ListFiles -  Displays a list of the currently loaded files. To switch to
       another file, move the cursor to the appropriate file and press <Enter>.
       To resume editing the current file, press <Escape>.
   FirstNonWhite -  Intended as a replacement and/or supplement to the BegLine
       command. Places the cursor at the first non-white character on the line,
       or column 1 if the line doesn't have any non-white characters. "White"
       characters are tabs or spaces. A useful macro would be:
           Home MacroBegin BegLine JTrue done: FirstNonWhite done:
       (Explanation: If already at the start of a line, go to the first
       non-white character on the line; otherwise, if not already at the start
       of a line, go to the start of the line.)

   Advanced Macro Commands:
   ~~~~~~~~~~~~~~~~~~~~~~~
   The following commands, intended primarily for QEdit macro writers, are
   designed to simplify the writing of certain kinds of macros.  This group of
   macro commands forces the indicated mode or setting.  If the setting is
   already in that condition, they set QEdit's result code to TRUE; otherwise,
   they set it to FALSE.
   In some cases, a macro can behave differently based on the currently set
   QEdit modes.  The following three commands give some control in establishing
   the proper environment so that your macro will always work as intended.
   SetInsMode - Sets Insert mode on. To set Insert mode "off" (that is, set
       overwrite mode "on"), do the following: SetInsMode ToggleInsert
   SetAutoIndentMode - Sets AutoIndent mode "on". To set AutoIndent mode off,
       do the following: SetAutoIndentMode ToggleIndent
   SetWordWrapMode - Sets WordWrap mode "on". To set WordWrap mode off, do the
       following: SetWordWrapMode ToggleWordWrap
   The Find command sounds a tone when the search string cannot be found. This
   can be irritating in the case of a long-running macro that may possibly
   execute hundreds of finds that fail. The following commands allow you to
   selectively turn the sound "on" and "off".
   SetSoundOn - Sets sound "on".
   SetSoundOff - Sets sound "off".
   Most macros execute dozens of QEdit commands, sometimes hundreds of times.
   This can cause the screen to flash rapidly as the macro runs. Not only is
   this disconcerting to watch, it actually decreases the speed of some macros.
   The following commands allow you to temporarily suspend or resume screen
   updating, while a macro is running.
   SetScreenOn - Turns screen updating "on".
   SetScreenOff - Turns screen updating "off". You must turn screen updating
       back on before your macro prompts for input, or if there is some output
       from the macro that you want displayed on the screen.
   NOTE: QEdit will AUTOMATICALLY turn screen updating back on when the macro
   has finished executing. Thus, it is not necessary to issue the SetScreenOn
   command at the end of the macro.
   Many times, it would be nice for a macro to force a few settings, do its
   assigned task, and then restore the original settings. The following
   commands allow you to do just that. Note that each time SaveSettings is
   executed, the previous settings saved with SaveSettings are overwritten.
   SaveSettings - Saves the current settings of: Insert, AutoIndent, WordWrap,
       Sound, and Screen Updating.
   RestoreSettings - Restores the saved settings listed above.
   The following commands set QEdit's result code to TRUE or FALSE based on the
   condition being tested. These commands make certain types of macro tests
   easier and more reliable.
   isBegLine - Returns TRUE if the cursor is at column 1; otherwise, FALSE is
       returned.
   isEndLine - Returns TRUE if the cursor is past the last non-white character
       on the current line; otherwise, FALSE is returned, including the case
       when the cursor is on an empty line.
   isEmptyLine - Returns TRUE if the current line is empty or contains only
       white space; otherwise, FALSE is returned.
   isLastLine - Returns TRUE if the cursor is on the last line of the currently
       edited file; otherwise, FALSE is returned.
   isFirstLine - Returns TRUE if the cursor is on the first line of the
       currently edited file; otherwise, FALSE is returned.
   isCursorInBlock - Returns TRUE if the cursor is inside a marked block;
       otherwise, FALSE is returned.
   To demonstrate how these concepts tie together, consider the following
   simple macro to delete all the blank lines in a marked block. The cursor
   should be at the beginning of the block when the macro is invoked.
   ^f9  MacroBegin
        SetScreenOff                  * turn off screen for speed
   begin:
        isCursorInBlock jFalse done:  * exit if not in block
        isEmptyLine     jFalse next:  * skip if not empty line
        isLastLine      jTrue  last:  * special handling for last
                                      * line
        DelLine         jump  begin:  * delete empty lines
   next:
        CursorDown      jTrue begin:  * try next line
        jump done:                    *
   last:
        DelLine                       * delete the last line
   done:                              * that's all, folks!

 Replacing a CR with a CR/LF
 
   Have you ever loaded a file and gotten the message "long line splits"?  Have
   you ever had a database file that just had a carriage return at the end of
   line of text?  We have developed a small macro that allows you to replace a
   visible carriage return (CR) with a carriage return/line feed (CR/LF).
   The DOS standard specifies that a CR/LF be appended to each line of text in
   an ASCII text file.  Some databases, as well as the Macintosh, only use
   carriage returns at the end of their lines of text in files.  The following
   macro can be used when you see the carriage return (it will appear as a
   musical note) in your text. The macro will replace the carriage return
   (ASCII 13) with a carriage return/line feed (ASCII 13/10).
   <key>    MacroBegin SetScreenOff Find #13 Return 'i' Return top: Delch
            SplitLine CursorDown JoinLine BegLine RepeatFind JTrue top
   NOTE: <key> is the key to which you should tie this macro.  In addition, the
         macro must all be on one line in your QCONFIG.DAT file.  Once you have
         added the macro to your keyboard, run QCONFIG.EXE to install the
         changes. To use QCONFIG.EXE, run it, press return to accept Q.EXE,
         press K for keys, press return to accept QCONFIG.DAT, then press S to
         save your changes.

 Eliminating all tabs in your file
 
   Have you ever wanted to get rid of _all_ the tabs (ASCII 9) that
   are in your text file?  It gets pretty frustrating trying to
   figure out how to do this, right?  This is a question that the
   SemWare Technical Support Staff is often asked.  In response, in
   QEdit 3.0, the TabsToSpaces command has been added.  From the
   reference manual:

   TabsToSpaces        <Esc><O><X>
   ------------------------------------------------------------
   Expands tab characters to the appropriate number of spaces. Tabs within
   quotes (single and double) are not expanded.  If the cursor is within a
   marked Block when this command is executed, only tabs within the Block are
   expanded; otherwise, this command operates on the entire file.

 Drawing Boxes in Text
 
   Have you ever wanted to box in parts of a text file for emphasis, or to
   spice up messages with fancy boxes?  We have developed a simple one-key step
   for boxing in your text with QEdit.
   QEdit has a versatile line/box drawing capability. But since most of us like
   to make text editing as simple as possible, we took QEdit's box drawing
   feature and incorporated it into two different versions of a macro.  Each
   version takes a _column block_, _marked word_, or _character block_ that the
   user marks and draws a box around the text.  Then, depending on which
   version is used, it reinserts the boxed text into your file in one of two
   ways: "insert" or "overwrite."
   Give one of the versions of the macro a try and see how it gives your text
   files an exciting new look!
   This version of the macro will box the text and re-insert it _without_
   overwriting other text in the file.
   <key>   MacroBegin SetScreenOff EditFile "nul" Return Quit GotoBlockEnd
           AddLine GotoBlockBeg InsertLine Cut EditFile Return GotoColumn '2'
           Return Paste InsertLine GotoBlockEnd ToggleBoxDraw upagainr:
           CursorUp JTrue upagainr leftagaint: CursorLeft JTrue leftagaint
           GotoBlockEnd CursorDown leftagainb: CursorLeft JTrue leftagainb
           upagainl: CursorUp JTrue upagainl CursorRight ToggleBoxDraw
           UnMarkBlock BegFile MarkColumn EndFile CursorLeft Copy Quit Paste
           UnMarkBlock
   This version of the macro will box the text and re-insert it into the file
   while overwriting text surrounding the block with the new box.
   <key>   MacroBegin SetScreenOff EditFile "nul" Return Quit GotoBlockBeg Cut
           Paste FillBlock " " Return CursorUp CursorLeft EditFile Return
           GotoColumn '2' Return Paste InsertLine GotoBlockEnd ToggleBoxDraw
           upagainr: CursorUp JTrue upagainr leftagaint: CursorLeft JTrue
           leftagaint GotoBlockEnd CursorDown leftagainb: CursorLeft JTrue
           leftagainb upagainl: CursorUp JTrue upagainl CursorRight
           ToggleBoxDraw UnMarkBlock BegFile MarkColumn EndFile CursorLeft Cut
           Quit PasteOver UnMarkBlock
   NOTE: <key> is the key to which you should tie each macro.
       Once you have added the macro to your QCONFIG.DAT file, run QCONFIG.EXE
       to install the changes. To use QCONFIG.EXE, run it, press return to
       accept Q.EXE, press K for keys, press return to accept QCONFIG.DAT, then
       press S to save your changes.

 Loading a Filelist into QEdit
 
   Do you often work with the same group of files?  Does it take you awhile to
   load these files?  If so, you are like many others who use the same files
   quite often and who spend a lot of time loading them into the editor.  Now
   you can use the flexibility of QEdit to load _all_ those files with a single
   keystroke.
   To use the following macro to load your list of files, first create a file
   (ie - FILELIST).  Then list each one of the files you need to load
   (including it's path) on separate lines. Finally, save that file for future
   use (note that you may have several lists of files for different needs).  In
   the future you can just load your filelist into the editor and run the
   macro. Notice that since you have not actually viewed the files yet, they
   will not be loaded until you move to them the first time . This will permit
   the user to take care of any "Press Escape" prompts.
   The end result will be to load each of the files in the filelist into the
   editor in the order that they were listed and to remove the FILELIST from
   the current file ring.
   <key>     MacroBegin SetScreenOff EndFile REPEAT: UnMarkBlock MarkLine Copy
             EditFile CurrentFilename " " Paste Return CursorUp JTrue REPEAT:
             Quit NextFile
   NOTE: <key> is the key to which you should tie this macro. Once you have
       added the macro to your QCONFIG.DAT file, run QCONFIG.EXE to install the
       changes. To use QCONFIG.EXE, run it, press return to accept Q.EXE, press
       K for keys, press return to accept QCONFIG.DAT, then press S to save
       your changes.

 Macro Table is Full
 
   Are you running out of macro space in QEdit?  Does QEdit respond with a
   MACRO TABLE FULL error when installing your keys?  Then, it looks like you
   need more space for QEdit macros.  Although the configuration area for key
   definitions is fixed in the editor, there still is a solution.  Setting up
   external macro files are a good way to add macros to the editor when the
   macro table is full.
   The configuration area for key definitions holds approximately 2000 bytes of
   information.  When that space is full, you will receive an error message:
   'macro table full at line #:'.  One solution is to go into your keyboard
   definition file (normally QCONFIG.DAT) and delete macros that are no longer
   needed. Alternatively you can move several of your larger macros to an
   external macro file and compile it with QMAC, QEdit's external macro
   compiler.  Each of these external macro files can be up to 4k in size and
   you can generate as many such files as needed. Thus, users have access to an
   unlimited amount of macro space through the use of external macro files.
   For example, create a macro file named MYMACS.MAC that has several of your
   larger macros included in it.  Next create a batch file, such as Q.BAT, to
   run QEdit, and load your macros. To eliminate confusion about where you
   execute Q.BAT, rename Q.EXE to QEDIT.EXE.  The batch file will then be
   similar to the following:
        qedit %1 %2 %3 %4 %5 %6 %7 %8 %9 -lc:\qedit\mymacs.mac
   The batch file loads QEdit, loads up to nine files on the command line, and
   loads the external macro file.  Modifications to the 'c:\qedit\mymacs.mac'
   section of the batch file may be needed, depending on the name of your macro
   file and it's location on your system.
   The end result is a keyboard definition file with more space available, plus
   an easy way to load the deleted macros in an external macro file.  All this
   with still just the touch of one keystroke!

 Printing to LPT1 and LPT2
 
   Have you ever wanted to print to another printer port in QEdit? Do you have
   two printers and want to toggle between them?
   As shipped, QEdit's printer routines output all data to PRN, which usually
   points to LPT1.  A number of users have expressed a need to print to LPT2,
   or to toggle between LPT1 and LPT2.  In response, in QEdit 3.0, you can
   select the device to print to, PRN, LPT1, LPT2, LPT3, or even a disk file.
   This printer output device can be set permanently via QCONFIG, or
   temporarily inside QEdit via the Print pulldown menu.

