Welcome to QEdit Advanced the "quick editor" Please note that this is the shareware version of the documentation. The registered/commercial version comes with a professionally formatted, spiral-bound, 125-page INDEXED manual. Version 2.1 (February 1990) (See the file "read.me" for additional 2.1 documentation) R E F E R E N C E M A N U A L SemWare 4343 Shallowford Road, Suite C-3 Marietta, GA 30062-5003 VOICE: (404) 641-9002 FAX: (404) 640-6213 BBS: (404) 641-8968 Copyright (c) 1985-1990 Applied Systems Technologies, Inc., dba SemWare. All Rights Reserved. This version of the documentation, software and copyright supersedes all previous versions of QEdit. Specifications subject to change without notice. _______ ____|__ | (TM) --| | |------------------- | ____|__ | Association of | | |_| Shareware |__| o | Professionals -----| | |--------------------- |___|___| MEMBER LICENSE This version of QEdit is NOT public domain or free software, but is being distributed as "shareware". Non-registered users of this software are granted a limited license to make an evaluation copy for trial use on a private, non-commercial basis, for the express purpose of determining whether QEdit is suitable for their needs. At the end of this trial period, you should either register your copy or discontinue using QEdit. What does all this really mean? If you use this program, then you should pay for your copy. QEdit is NOT free, and we are not giving away free copies. We are giving you the opportunity to try it before you buy it. It is really just that simple. Try it. Either pay for it, or quit using it. Paying for the product allows SemWare to provide you with support and updates, and stay in business. Plus, registered users receive additional utilities, additional configuration files, update notices, huge discounts on future versions, technical support, and a version of the program that does NOT show the opening and closing shareware registration screens, and does not require the pressing of a key to start the program. A QEdit registration entitles you to use the program on any and all computers available to you, with the following restriction: If other people have access to this program or may use it, then additional copies or a site license should be purchased. Please call SemWare for details. All users are granted a limited license to copy QEdit only for the trial use of others and subject to the above limitations. This license does NOT include distribution or copying of this software package: 1. In connection with any other product or service. 2. For general use within a company or institution. 3. For any consideration or 'disk fee'. 4. For distribution in modified form; i.e., the file containing this license information MUST be included, along with the full QEdit documentation. Operators of electronic bulletin board systems (Sysops) are encouraged to post QEdit for downloading by their users, as long as the above conditions are met. Disk vendors MUST obtain written permission from SemWare before distributing QEdit. Certain restrictions apply. Generally, ASP approved vendors are granted permission; others are handled on a case-by-case basis. Please contact SemWare for details. ORDERING INFORMATION A QEdit Advanced registration licenses you to use the product on a regular basis. Registration also includes notification of updates and telephone support, and entitles you to access to the registered user area of our BBS (404-641-8961, N81, 1200/2400/9600 baud, 24 hours a day). Individual registrations of QEdit come in two forms. For $54.95 (plus 3.00 shipping) we will send you the latest version of QEdit Advanced, along with a professionally typeset bound manual, and a QEdit quick reference card. Included on the registered disk are additional utilities for use with QEdit. If you do not want the handsome bound manual and reference card, then you can register the current version for $44.00 (plus 3.00 shipping). We will send you the latest version of QEdit Advanced, along with documentation on disk. Georgia residents should include 4% sales tax. ORDERS OUTSIDE THE U.S. ----------------------- Please use your Mastercard, VISA or American Express when ordering, or send a check drawn on a US bank in US dollars. (We can accept non-US currency; however, you must include an additional $25 to cover conversion and collection costs.) Please include an additional $10 to cover postage on orders delivered outside of the US/CANADA/MEXICO ($5 for disk only orders). Educational institutions, full-time students and bona fide BBS sysops can apply a 35% discount to all prices (except shipping). PLEASE include your educational institution letterhead (with your title), or a photocopy of your most recent registration slip or student ID card, or the name and number of your BBS along with any other relevant information. Remit to: SemWare Order Form #9002-OF02 4343 Shallowford Rd, Suite C-3 Marietta, GA 30062-5003 *** QEdit Advanced version 2.1, February 1990. *** We offer discounts on quantity orders, multiple-user licenses, and dealer pricing. We also offer student discounts and discounts for bona fide BBS sysops. Please call for details. We take American Express, MasterCard, or VISA. You can use this handy order form to order by MAIL, or by: VOICE: (404) 641-9002, Mon. - Fri., 9:00 a.m. - 5:00 p.m., ET ONLY. FAX: (404) 640-6213, 24 hrs, 7 days a week. BBS: (404) 641-8968, 24 hrs, 7 days a week. 1200/2400/9600(HST), . SemWare, send me (check desired items): ____ QEdit Registration with Printed Manual...... @ $54.95 ea $ ______ (Includes latest version of the licensed software, handy reference card, low-cost upgrades, plus our professionally printed, spiral-bound, indexed reference manual.) ____ QEdit Registration ......................... @ $44.00 ea $ ______ (Includes latest version of the licensed software, with documentation on disk, plus low-cost upgrades) Shipping With printed manual (US/Canada/Mexico: $3; Overseas: $10) $ ______ Disk only (US/Canada/Mexico: $3; Overseas: $5) $ ______ Purchase Orders under $100.00, add $6.00 Handling Charge $ ______ (NON-PREPAID ORDERS ONLY - THIS DOES NOT APPLY TO CASH, CHECK, MONEY ORDER, OR CHARGE CARD ORDERS) Subtotal $ ______ Georgia Residents please add Sales Tax ................ @ 4% $ ______ Total (U.S. Funds drawn on U.S. Bank) $ ______ Payment by:( )CHECK(MAIL ONLY) ( )AMEX ( )MC ( )VISA ( )PO# ______________ Name: _______________________________________________________________ Company (ONLY if company address):___________________________________ Address: ____________________________________________________________ : ____________________________________________________________ : ____________________________________________________________ Voice Day Phone: ______________________ Evening: ____________________ Card #: _________________________________ Exp. Date: ________________ Signature of cardholder: ____________________________________________ Prices subject to change without notice. Confirm current prices by calling (404) 641-9002. TSR and OS/2 VERSIONS NOW AVAILABLE! Call for details. DISCLAIMER Use of this program acknowledges this disclaimer of warranty: "This program is supplied as is. Applied Systems Technologies, Inc. disclaims all warranties, express or implied, including, without limitation, the warranties of merchantability and of fitness of this program for any purpose. Applied Systems Technologies, Inc. assumes no liability for damages direct or consequential, which may result from the use of this program." TRADEMARK SemWare is a registered trademark and QEdit is a trademark of Applied Systems Technologies, Inc. MS-DOS is a registered trademark of Microsoft Corporation. PC-DOS is a registered trademark of IBM Corporation. Compaq is a registered trademark of Compaq Computer Corporation. Tandy 1000 is a registered trademark of Tandy Corporation. SideKick and SuperKey are registered trademarks of Borland International, Inc. Wordstar is a registered trademark of MicroPro International Corporation. Brief is a registered trademark of UnderWare, Inc. SITE LICENSES AND QUANTITY PURCHASES All corporate, business, government or other commercial users of QEdit must be registered. We offer quantity discounts as well as site licensing. Site licensing agreements allow duplication and distribution of a specified number of copies within the licensed institution. Duplication of multiple copies is not allowed except through execution of a licensing agreement. Site license fees are based upon the number of users using QEdit. Note that with a site license, only one copy of the program will be sent. You will be responsible for distributing additional copies. Please call or write for more information. ALL PRICES AND DISCOUNTS ARE SUBJECT TO CHANGE WITHOUT NOTICE. Discounts are not cumulative; they apply to single orders of like products only. Unit prices are the same as for individual users. WARNING: YOU MAY NOT USE QEdit WITHIN YOUR ORGANIZATION WITHOUT A PRIOR PURCHASE OR LICENSE ARRANGEMENT. Table of Contents ========================================================================= Acknowledgements .............................................. ii Introduction .................................................. iii Features ...................................................... iv System Requirements ........................................... v Installation .................................................. vi Chapter 1 Users Guide for QEdit 1-1 Quick Start ............................................... 1-2 Getting Started ....................................... 1-2 In the Editor ......................................... 1-2 Getting Out ........................................... 1-3 Menus ..................................................... 1-3 The Status Line ........................................... 1-4 Files ..................................................... 1-5 Creating New Files .................................... 1-5 Loading Existing Files ................................ 1-5 Multiple Files: The Ring ............................. 1-6 Saving Files and Exiting ............................. 1-8 Viewing and Getting Around in the Text .................... 1-9 Cursor Movement ....................................... 1-9 Moving Through a File ............................. 1-9 Moving Around on the Screen ....................... 1-12 Moving by Lines and Characters .................... 1-13 Using Windows ......................................... 1-13 Creating Windows .................................. 1-14 Switching Windows ................................. 1-14 Changing Window Size .............................. 1-14 Closing Windows ................................... 1-15 Copying, Moving, Replacing, and Deleting text ............. 1-16 Block Commands ........................................ 1-16 Marking and Unmarking a Block ..................... 1-16 Manipulating Blocks Directly ...................... 1-18 Manipulating Blocks Using Scrap Buffers ........... 1-19 Manipulating Blocks Using Scratch Buffers ......... 1-21 Examples of Block Commands ........................ 1-22 Non-Block Commands .................................... 1-25 Adding Text ....................................... 1-25 Copying Text ...................................... 1-26 Moving Text ....................................... 1-27 Deleting and Undeleting Text ...................... 1-28 Replacing Text .................................... 1-29 The Kill Buffer - A Safety Net ........................ 1-31 Macros .................................................... 1-33 Creating Macros ....................................... 1-33 Using Macros .......................................... 1-34 Saving and Reloading Macros ........................... 1-34 Example of a Macro .................................... 1-35 Printing .................................................. 1-35 Print Formatting ...................................... 1-36 Formfeeds ............................................. 1-36 The Shell and Dos Commands ................................ 1-37 Word Processing Commands .................................. 1-38 Modes ..................................................... 1-39 Chapter 2 Customizing QEdit 2-1 Initiating the Configuration Program ...................... 2-2 The Configuration Menu .................................... 2-3 Advanced Options .......................................... 2-5 Colors/Screen Options ..................................... 2-7 General Options ........................................... 2-9 The Help Screen ........................................... 2-13 Keyboard Configuration .................................... 2-14 The Keyboard Definition File .......................... 2-14 Creating a Keyboard Definition File ................... 2-16 Printer Options ........................................... 2-17 Tab Settings .............................................. 2-18 Chapter 3 QEdit Command Reference 3-1 Appendix A. List of Commands A-1 By Function ............................................... A-1 Alphabetically ............................................ A-6 Appendix B. List of Configurable Keys B-1 Function Keys ............................................. B-1 Special Purpose Keys ...................................... B-2 Control Keys .............................................. B-3 Alternate Keys ............................................ B-5 Enhanced Keyboard Keys .................................... B-6 Appendix C. Error Messages C-1 QEdit Error Messages ...................................... C-1 QCONFIG Error Messages .................................... C-3 Appendix D. Commonly Used Macros D-1 Appendix E. The Author E-1 Index I-1 Acknowledgements ========================================================================= Many years of work have gone into the development of this version of QEdit. And we had LOTS of help. Special thanks go to: My wife, for her many valuable suggestions, for "proofing" this manual, and for putting up with all the long hours (and many all nighters) that I have spent working on QEdit. Gerhard Barth, who went above and beyond the call of duty to help us track down a nasty bug in the very first version of QEdit. P.L. Olympia, who has gone out of his way and spent much time promoting this program. Anthony M. Marcy, who developed the INLINER program, an assembler which translates 8088 assembly language directly into Turbo Pascal INLINE code. Karl Brendel, for his constant support and excellent testing. Karl is also the author of an excellent add-on product for QMODEM called QFONEDIT. John Newlin, for his encouragement and support. John is also the author of SCOUT. If you're looking for a powerful file or DOS manager that's memory resident, then look no further. SCOUT is probably what you're looking for. Stuart Warren, for his insight, encouragement, and many valuable programming suggestions. Steve Watkins, for all the many hours he spent testing and the many "hard to find" bugs and quirks that he uncovered. All the folks at TurboPower software. We're especially grateful for TdebugPlus. Using Turbo Pascal without the tools provided by the TurboPower folks is just plain wasteful! To ALL registered users - THANK YOU - it is only through your support that additional versions are made possible. ii Introduction ========================================================================= "You can never be too rich, too thin, or have too much RAM and Disk storage." Ancient American proverb, ca. 1980 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, and a reference section which explains all of QEdit's 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 word-wrapping and paragraph reformatting 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 "Pop-Down" menus. - Customizable Help Screen. - Complete execution from a single file (Q.EXE). - Pop-up file directory and picker. - COMPACT PROGRAM SIZE - Every effort was made to keep the program size as compact as possible. Even though memory is getting cheaper all the time, we didn't want QEdit to require any more memory than absolutely necessary. iii Features ========================================================================= These are just some of the many features you will enjoy while using QEdit: - It is very fast! - It is customizable. QEdit can be easily configured the way you like it. This includes the meaning of ALL special keys on the keyboard (Alt, Ctrl, and function keys; , , etc.), colors, screen appearance, and many other options. - It utilizes all available memory. With QEdit you can edit files as large as your computer's memory will allow. - It allows true multi-file editing. The number of files you can edit is limited only by available memory. - It enables you to view files through up to eight "windows". You can have multiple views of the same file or view a different file in each window. - It provides up to 99 scratch buffers for cut-and-paste or template operations. - It allows you to exit to DOS (or a DOS shell) temporarily and use DOS commands from within the editor. - It is easy to use. You can use the optional "Pop-Down" menus to access QEdit's commands, and there is a Help Screen which you can customize for your own needs. - It supports Character, Line, and Column Blocks. - It allows you to create macros which will execute a series of commands and keystrokes by pressing a single key. - It provides wordwrap and paragraph reformat capabilities. - It saves deleted words, lines, and Blocks in a deletion buffer for later recall. - It provides "C mode", which utilizes automatic indentation for C language programming. - It locates matching braces and parentheses, a useful feature for programming. - It will load multiple files from the DOS command line, with or without wildcard characters. - It allows you to specify up to six default file extensions for use when loading files and determining tab settings. iv - It allows you to execute command line compilers from within QEdit, using its macro capability. - It provides line drawing to create diagrams and tables. - It supports enhanced (101 key) keyboards. - It supports up to 200-column and 100-line screens. - It supports EGA 43-line mode and VGA 50-line mode. - It is compact. Even with all these features, QEdit requires less than 50k of disk space. 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 PC's. MINIMUM requirements are: - 128 KB of memory (although QEdit can utilize up to 640 KB if it is available). - PC-DOS 2.0 or greater or MS-DOS 2.0 or greater. - One diskette drive. - Either a color or a monochrome monitor with 80-column display. - 60 KB of disk space. - Q.EXE, the editor program itself. No other files are necessary for operating QEdit. v Installation ========================================================================= Before installing QEdit, you should review the contents of the READ.ME file on your QEdit distribution diskette. This file contains important information (usage information, new features, changes, etc.) that became available after this manual was printed. You should carefully review the READ.ME file before using QEdit. The READ.ME file also contains a complete list of the files included on the distribution diskette. A partial list is included here: Q.EXE QEdit. 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. QHELP.TXT The default QEdit Help text. Used by QCONFIG.EXE. QEdit is simple to install. But first, be sure to make a backup copy of the distribution diskette. Once you have made your backup copy, simply copy Q.EXE to the disk and/or subdirectory where you would like to use it. If you are using a hard disk, then you probably want to put it somewhere that is accessible via the "path". For example, on our system, we keep many of our executable programs in a subdirectory called TOOLS. +---------------------------------+ |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. | +---------------------------------+ If you will be customizing QEdit (Refer to Chapter 2 for complete information on customizing QEdit), then you may wish to create a special directory and copy the files Q.EXE, QCONFIG.EXE, QCONFIG.DAT, and QHELP.TXT to that directory. vi Chapter 1. Users 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 ". 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 " 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 . Pressing again returns you to the text. To obtain a menu of QEdit commands, press . You may then use the cursor movement keys to position the cursor bar over the desired command. Pressing will execute the command. 1-2 +---------------------------------+ | QEdit Tip: | | Pressing will abort | | any editor prompt. | +---------------------------------+ Getting Out The easiest way to get out of QEdit and save all the work you have done is to enter . Menus ------------------------------------------------------------------------- QEdit provides an easy-to-use "Pop-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 . The main menu will be displayed at the top of the screen. The main menu consists of a list of sub-menu items. 2. Select a sub-menu item. You may do this by moving the cursor bar to the desired item and pressing or by typing 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 "Pop-Down" style menu system. This User is about to execute the "Copy block" command. +-----------------------------------------------------------------+ |File Window ±Block± Search Print Macro Editing Other Quit | +-------------Â------------------Â--------------------------------+ | mark block Begin | | mark block End | |±Copy block±±±±±±±| | Move block | | Delete block | | Unmark | | mark Line | +------------------+ You can execute many QEdit commands using the menus. As you become more familiar with the editor, you may wish to use the , , and function keys, instead of the menus, to execute commands more quickly. A cross reference of all QEdit commands can be found in Appendix A. 1-3 The Status Line ------------------------------------------------------------------------- At the top of the editing screen is the Status Line. The Status Line constantly displays information regarding the file you are currently editing. The Status Line is shown below with a description of the information displayed. +----------------------------------------------------------------------+ |L 15 C 15 IAW R B 411K *c:\qedit\qedit.doc | +--Â------Â----ÂÂÂ-Â-Â---Â-------Â-------Â-----------------------------+ | | ||| | | | | | | | ||| | | | | +---- 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 the "Macros" section in this chapter. +---------------------------------+ | QEdit Tip: | | The Status Line may be config-| | ured to appear at the bottom | | of the screen. Refer to the | | "Colors/Screen Options" | | section of Chapter 2 for more | | information. | +---------------------------------+ 1-4 Files ------------------------------------------------------------------------- Creating New Files There are three different ways to create new files, ready for editing. 1. From the DOS command line, enter followed by one or more new filenames. Each filename must be separated by a space. For example, typing: "Q file1 b:file2 \dir1\file3 " 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 ". QEdit will respond with the prompt: +-----------------------------------------------------------------+ | File(s) to edit: | | | +-----------------------------------------------------------------+ Enter one or more new filenames, each separated by a space. 3. From within the editor, enter the EditFile 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. 1-5 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 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. 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 | <---|±B±±| | | | | | |±±±±| | | | | +----+ +----+ | | | v ^ 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. 1-6 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 command. You will now be editing the next file in the ring, file "C". - Enter the PrevFile command. You will now be editing the previous file in the ring, file "A". - Enter the EditFile 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. 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. | +---------------------------------+ 1-7 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 GExit X X X(a)| | | |File GFile X X X(a)| | | |PQuit GPQuit X X X(a)| | | |Quit (b) X X | | | |SaveFile GSave 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! | +------------------------------------------------------------------------------+ 1-8 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 and EndFile 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 and PageDown 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. +---------------------------------+ | 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. | +---------------------------------+ 1-9 - ScrollUp and LineUp These commands scroll the text one line at a time toward the beginning of the file. The ScrollUp command will cause the cursor to remain on the same line of text until it reaches the bottom of the screen, while the LineUp command will cause the cursor to remain stationary on the screen. - ScrollDown and LineDown These commands scroll the text one line at a time toward the end of the file. The ScrollDown command will cause the cursor to remain on the same line of text until it reaches the top of the screen, while the LineDown command will cause the cursor to remain stationary on the screen. - GotoLine Upon entering the GotoLine command, QEdit will prompt with: +--------------------------+ |line number: | | | +--------------------------+ By typing a line number and , QEdit will "jump" 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 Status Line, and then using this command to "jump" to those positions. - GotoBlockBeg and GotoBlockEnd 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 will make that file the current file and then move 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 This command can come in very handy. It moves you to the cursor's previous position. Although it would not be of much use if you had 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 . 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. 1-10 If there are intervening keystrokes that move the cursor, PrevPosition will move you back to the most recent location of the cursor. - Find and RepeatFind These commands will search for a specific string of characters in the file. Upon entering the Find command, QEdit will prompt for the string of characters for which to search. +-----------------------------------------------------------------+ |Search for: | | | +-----------------------------------------------------------------+ Enter the desired string of characters and press . QEdit will then prompt for the search options to use. +------------------------------------------------------+ |Options [IWB] (Ignore, Words, Backward) | |I | +------------------------------------------------------+ Enter the letter(s) corresponding to the option(s) you want and press . The available options are: [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" will match only the actual word "sent". Otherwise, any other words that contain the string (such as "sentence" or "absent") would also match. [B] = Search backward from the current cursor position. When you choose "B", QEdit will search backward from the cursor position toward the beginning of the file. Otherwise, it will search from the cursor position toward the end of the file. Once the Find command is executed the cursor will be 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. - Match 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 will locate the logical matching character of the pair. This command can be useful for programming in languages where complicated expressions are grouped using these characters. 1-11 Moving Around on the Screen These commands affect the cursor position within the current screen of displayed text. - BegScreen and EndScreen 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 and EndLine 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. - ScreenLeft and ScreenRight 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 and WordRight These commands move the cursor to the first character of the previous or following word in the text. - MakeCtrofScreen , MakeTopofScreen , 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. 1-12 Moving By Lines and Characters These commands enable you to move in short increments through the text. - CursorLeft and CursorRight These commands move the cursor one column to the right or left on the cursor line. When you use CursorLeft, the cursor will stop 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 will begin to scroll the text to the left. It will stop scrolling when it reaches the maximum line length. - CursorUp and CursorDown These commands move the cursor up or down in the file one line at a time. The cursor's column position does not change. Using Windows ------------------------------------------------------------------------- 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 15 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. | | | +----------------------------------------------------------------------+ 1-13 Creating Windows To create a window, use the HorizontalWindow command. The screen will be split into two halves, or windows, each window having its own Status Line. 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. 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. - The PrevWindow command will move the cursor to the window above the current window. If the current window is at the top of the screen, the cursor will move to the last window on the screen. - The NextWindow command will move the cursor to the window below the current window. If the current window is at the bottom of the screen, the cursor will move to the first window on the screen. Changing Window Size You can change the size of any of the windows on the screen with the commands below. - The GrowWindow command allows you to increase the size of the current window. Upon entering this command, QEdit will prompt you to increase the size of the window by using the cursor up and cursor down keys. The cursor up key will increase the size of the current window one line at a time toward the top of the screen. The cursor down key will increase the size of the current window one line at a time toward the bottom of the screen. 1-14 - The ShrinkWindow command allows you to decrease the size of the current window. A window can be as small as 3 lines, including its Status Line. Upon entering this command, QEdit will prompt you to decrease the size of the window by using the cursor up and cursor down keys. The cursor up key will decrease the size of the current window one line at a time by moving the bottom of the window toward the top of the screen. The cursor down key will decrease the size of the current window one line at a time by moving the top of the window toward the bottom of the screen. +---------------------------------+ | QEdit Tip: | | The GrowWindow and Shrink- | | Window commands may be entered| | successively, without pressing| | in between. | +---------------------------------+ - The ZoomWindow command will cause the current window to fill the entire screen, as all other windows disappear. To restore the screen with all windows, simply press 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. Closing Windows There are two commands to close windows. - The CloseWindow command closes the current window. The current window will disappear and the cursor will be 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 will become the new current window. - The OneWindow command closes all windows except the current window. The current window will fill the entire screen. Note that closing a window does not discard files from the editor. 1-15 Copying, Moving, Replacing, and Deleting Text ------------------------------------------------------------------------- Block Commands ------------------------------------------------------------------------- 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. Marking and Unmarking a Block Before you can manipulate a Block, you must first "mark" or outline a 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 to use. - MarkLine 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 . (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 again. You now have a marked Block, ready for manipulation. - DropAnchor 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 . 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 again. You now have a marked Block, ready for manipulation. 1-16 - 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 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 . 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 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. | +---------------------------------+ - MarkBlockBegin and MarkBlockEnd 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 . Then position the cursor one character past the end of the text that is to be marked and press . The Block is now marked and ready for manipulation. - UnmarkBlock 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. 1-17 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. 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 Drop- | | Anchor, MarkCharacter, | | MarkColumn, and | | MarkBlockBegin/End | | commands will always be | | inserted beginning at the | | current cursor position. | | | | Blocks marked using the Mark- | | Line 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 This command makes a copy of the marked Block and inserts it where you decide. 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 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 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. 1-18 - MoveBlock This command works exactly like CopyBlock with one exception: Upon entering the MoveBlock 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 . 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" section in this chapter for more information.) This command will not delete column Blocks. Use the Cut command instead to delete column Blocks from your text. - ShiftLeft and ShiftRight 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. 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 four 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 solely responsible for placing text into the Scrap Buffer and copying text from the Scrap Buffer. 1-19 When you issue a Copy or Cut command (we will discuss how to use these 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 and Paste or PasteOver 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 . 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, likewise place the cursor at the desired position. 5. Enter Paste 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 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 or PasteOver . Please note that the next time you issue a Cut or Copy command, the previous contents of the Scrap Buffer will be discarded. - Cut and Paste or PasteOver 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. 1-20 +---------------------------------+ | 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. | +---------------------------------+ 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 , 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 and AppendScrbuff 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, enter StoreScrbuff . (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, enter AppendScrbuff . 3. QEdit will prompt 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. The Block is now stored in a Scratch Buffer under the assigned name. - GetScrbuff 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. 1-21 2. Enter GetScrbuff . QEdit will prompt for the name of the Scratch Buffer to be retrieved. +-----------------------------------------------------------------+ |Get from buffer: | | | +-----------------------------------------------------------------+ 3. Enter the name of the desired Scratch Buffer. 4. Repeat the above steps whenever you want to insert the contents of a Scratch Buffer into your text. 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 to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn 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 in the file where you want to insert the marked Block. 6. Enter CopyBlock , CopyOverBlock (column Blocks only), or MoveBlock . 7. Enter UnmarkBlock 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 to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn to mark a column of text. 1-22 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 , CopyOverBlock (column Blocks only), or MoveBlock . 7. Enter UnmarkBlock 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 to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn 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 . If you want to delete the Block from its original position and insert copies of it at other locations, then enter Cut . 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 or PasteOver (column Blocks only). The Block is now inserted. Repeat steps 5 and 6 for each additional insertion. 1-23 - 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 to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn 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 . If you want to delete the Block from its original position and insert copies of it at other locations, then enter Cut . 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 or PasteOver (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 to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn to mark a column of text. 3. Position the cursor at the end of the first Block. 4. Enter AppendScrbuff if you want to append to an existing Scratch Buffer. Otherwise, enter StoreScrbuff to create or overwrite an existing Scratch Buffer. 1-24 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 . 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 each of these non-Block commands in detail. Adding Text - AddLine 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 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 The Literal command is used to insert control characters into the text. To use this command, enter 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 . 1-25 This command is handy for entering the control characters represented by ASCII decimal values 1 through 26. Simply enter followed by for ASCII character 1, or for ASCII character 2 and so on, up to 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 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 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. | +---------------------------------+ - ToggleBoxDraw 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 . To switch OFF, enter again. - ToggleEnterMatching 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 . To switch OFF, enter again. Copying Text - GetPrev 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 and hold it down. The cursor will move to the right while copying the the characters from the line above. - DupLine 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. 1-26 - Copy and Paste 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. 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 This command will delete the line below the current cursor line and append it to the end of the cursor line. 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 This command will delete all text on and to the right of the cursor on the cursor line and will insert this text on a new line immediately below the cursor line. The cursor position will not change. - Return 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. 1-27 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 and Paste 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 and ShiftRight 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. Deleting And Undeleting Text - Backspace and DelLtWord 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 and DelRtWord 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. 1-28 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 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 This command deletes the current cursor line from the text. All text below the deleted line is shifted up one line. - UndoCursorline 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 This command allows you to retrieve text that has been deleted by the DeleteBlock, DelLine, DelRtWord, or DelToEol commands. Refer to "The Kill Buffer" section in this chapter for a complete explanation on the use of this command. 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 which is described in the "Moving Through a File" section in this chapter.) - FindReplace This command will search for a specific string of characters in the current file, and optionally, replace it with another string of characters. Upon entering the FindReplace command, QEdit will prompt for the string of characters for which to search. +-----------------------------------------------------------------+ |Search For: | | | +-----------------------------------------------------------------+ Enter the desired string of characters and press . 1-29 QEdit will then prompt for a new string of characters (to replace the old string). +-----------------------------------------------------------------+ |Change to: | | | +-----------------------------------------------------------------+ Enter the new string of characters and press . QEdit will then prompt for the search options you wish to use. +---------------------------------------------------------------+ |Options [IWBN] (Ignore, Words, Backward, No Ask) | |I | +---------------------------------------------------------------+ Enter the letter(s) corresponding to the option(s) you want and press . The available options are: [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" will match only the actual word "sent". Otherwise, any other words that contain the string (such as "sentence" or "absent") would also match. [B] = Search backward from the current cursor position. If you choose "B", QEdit will search backward from the cursor position toward the beginning of the file. Otherwise, it will search from the cursor position toward the end of the file. [N] = Find and replace without prompting. If you choose "N", QEdit will find and replace every occurrence of the search string, without asking you if you want to replace each individual occurrence. If you select the "No Ask" option, QEdit will find and replace every occurrence of the search string with no further User intervention. If you do not select the "No Ask" option, QEdit will prompt at every occurrence of the search string with: +---------------------------------------+ | Replace (Yes/No/Only/Global/Quit): | +---------------------------------------+ Valid responses are: es - Replace the search string with the new string and continue to the next occurrence. o - Do not replace the search string, but continue to the next occurrence. 1-30 nly - Replace the search string with the new string and quit. lobal - Replace the search string with the new string and replace all other occurrences with no further prompts. uit - Abort the FindReplace process. - RepeatFind This command will reissue the previous Find or FindReplace command using the same character strings and options. 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 DelLine DelRtWord DelToEol 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 | (1 word deleted) | Ã-------Å------------Å--------------------------------´ | 2 | DelLine | This entire line was deleted. | Ã-------Å------------Å--------------------------------´ | 1 | DelLine | This entire line was deleted. | Ã-------Å------------Å--------------------------------´ | empty | | | Ã-------Å------------Å--------------------------------´ | empty | | | +-------Á------------Á--------------------------------+ bottom 1-31 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 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. 1-32 Macros ------------------------------------------------------------------------- A macro is a series of commands and/or keystrokes which are assigned to a single key. If you find that you are repeatedly entering the same series of commands and keystrokes (for example, a row of asterisks, three Returns, and then a Tab), using macros will allow you to easily assign these to a single key, such as . Then, the next time you wish to enter a row of asterisks, three Returns, and a Tab, you will only have to press . Creating, using, and saving macros for later use is both quick and simple. By taking a few minutes to review the following sections, you should be able to save plenty of time and keystrokes in your future editing with the help of macros. Creating Macros Once you have decided to assign a series of commands and keystrokes to a single key, creating the macro is simply a matter of entering this series while QEdit "records" the macro. To create a macro follow these steps: 1. Position the text and cursor to where you will begin entering the series of commands and keys. (You may want to practice your series once or twice before actually recording the macro.) 2. Enter the MacroRecord command. An "R" will appear on the Status Line to indicate macro recording is ON. The following message will appear: +--------------------------------------------------------+ |Assign to what key: (Enter for "scrap", Escape to Abort)| +--------------------------------------------------------+ 3. Enter the key to which you want to assign the series of commands and keystrokes. There are two requirements here. The key must be a "configurable" key. A list of all configurable keys is contained in Appendix B. Also, the key cannot have a command already assigned to it. You may assign the macro to a "scrap" or temporary area by simply pressing . The scrap area will hold your macro until another macro is recorded. 4. Enter the series of commands and keystrokes to be assigned. Note that the "R" still appears on the Status Line. 5. Enter the MacroRecord command again. Macro recording is now OFF. The "R" no longer appears on the the Status Line. The macro is now created and assigned to the key specified in step 3. 1-33 Using Macros To use your macro, simply position the text and cursor properly and press the key to which you assigned the macro, or use the ExecuteScrap command to retrieve the latest macro from the scrap area. If the macro does not behave as you expected (perhaps you inadvertently hit an extraneous key while recording), simply repeat the above steps. Your old macro assignment will be 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 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. Macros can be saved in a binary disk file. You specify the name of this file. Once macros have been created, enter the MacroWrite command. QEdit will prompt with: +-----------------------------------------------------------------+ |Macro file to write: | | | +-----------------------------------------------------------------+ Enter the name of the file to contain your macros. The macros will be saved under the given filename. You may notice that this file now appears in the current DOS directory. Macros assigned to the scrap area cannot be saved. In a future editing session, if you wish to reuse your previously defined macros, you need only reload the macro file. To do this enter the MacroRead command. QEdit will prompt with: +-----------------------------------------------------------------+ |Macro file to read: | | | +-----------------------------------------------------------------+ Enter the name of the previously saved macro file. Your macros will be reloaded. You may then use them in the same manner as before. The QEdit configuration program provides an alternate method of creating macros. Refer to the "Keyboard Configuration" section of Chapter 2 for more information. 1-34 Example of a Macro To create a macro which will insert 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. 2. Enter MacroRecord . 3. Press to assign the macro to this key. 4. Press the following series of keys: (for the BegLine command) (for the Literal command) (a formfeed character) 5. Enter MacroRecord . The macro is now created and assigned to the key. Now, whenever you enter , the cursor will be moved to column one and a formfeed character will be inserted, just as if you had typed it in from the keyboard. Printing ------------------------------------------------------------------------- QEdit allows you to print either your entire current file or a portion of the current file. To print the entire current file, simply enter the PrintAll command. The entire current file will be 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 command. Only the marked Block portion of the file will be printed. 1-35 Print Formatting Two commands are provided for setting the left margin and the page size. (The left margin and page size may also be specified using the configuration program. Refer to the "Printer Options" section of Chapter 2 for more information.) - SetPrintLeftMargin This command specifies the number of blank spaces to be used as a left margin. QEdit will prompt with: +------------------------------------------+ |Printer left margin [0..80]: | |0 | +------------------------------------------+ Enter the left margin length from zero to 80. - SetPrintPageSize

or

------------------------------------------------------------------------- Makes the previous file in the ring the new current file when multiple files are loaded. PrevPosition ------------------------------------------------------------------------- Positions the cursor at the previous cursor position. Very helpful when used with the GotoLine command. The GotoLine line can be used to go directly to a certain area of the file. The PrevPosition can then be used to return you to the original cursor position. PrevWindow or

------------------------------------------------------------------------- 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 will become the current window. PrintAll or

------------------------------------------------------------------------- Prints the entire contents of the current file. 3-16 PrintBlock or

------------------------------------------------------------------------- Prints the entire contents of the marked Block. The marked Block must be in the current file. PrintEject or

------------------------------------------------------------------------- Sends a formfeed character (ASCII 12) to the printer. QuickHelp or ------------------------------------------------------------------------- Displays the Help Screen. A Help Screen is provided with QEdit; however, you may wish to design your own Help Screen. For more information, refer to the "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 or or ------------------------------------------------------------------------- Inserts the named disk file at the current cursor position. RepeatFind or ------------------------------------------------------------------------- Repeats the previous Find or FindReplace command. Return ------------------------------------------------------------------------- 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. 3-17 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 to split lines when Insert mode is ON. Refer to the "Advanced Options" section of Chapter 2 for more information. SaveFile or or ------------------------------------------------------------------------- Saves to disk the file currently being edited. The file remains loaded, ready for further editing. ScreenLeft ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- 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. 3-18 ScrollUp ------------------------------------------------------------------------- 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. SetCtabwidth ------------------------------------------------------------------------- Sets the cursor tab width. This is the width that is used when the TabRt or TabLt commands are executed. 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 or VGA card to 43-line mode or 50-line mode, respectively. This command has no effect if the video card is not an EGA or VGA type. SetPrintLeftMargin or

------------------------------------------------------------------------- Sets the number of spaces to be printed as a left margin at the beginning of each line. The default is zero. SetPrintPageSize

or

------------------------------------------------------------------------- Sets the number of lines to be printed per page before sending a formfeed. A value of zero will allow continuous printing (no formfeeds sent). SetPtabwidth

------------------------------------------------------------------------- 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. 3-19 SetRmargin or ------------------------------------------------------------------------- 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. Shell or or ------------------------------------------------------------------------- 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 ". You will be back in QEdit, exactly where you left off. +---------------------------------+ | QEdit Tip: | | You should NOT execute any | | TSR (terminate and stay | | resident) programs here. | | These include the DOS print | | and graph commands and | | memory-resident programs | | such as Sidekick and Superkey.| +---------------------------------+ ShiftLeft ------------------------------------------------------------------------- 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 left. If you issue this command when the leftmost character(s) of the line(s) being shifted is in column 1, that character(s) will be deleted to allow the remainder of the line to shift left one position. ShiftRight ------------------------------------------------------------------------- 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 512, that character(s) will be deleted to allow the remainder of the line to shift right one position. ShowEntryScreen ------------------------------------------------------------------------- Displays the original DOS screen as it appeared upon initial execution of the editor. Pressing any key will return you to the edit screen. 3-20 ShrinkWindow or ------------------------------------------------------------------------- Decreases the size of the current window, if there are multiple windows on the screen. The editor will prompt for the direction in which to decrease the size. The GrowWindow command can be executed from this prompt to increase the window size. SplitLine or ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- Copies the currently marked Block to the named Scratch Buffer. The editor will prompt for the name of the Scratch Buffer. The contents of all Scratch Buffers are lost when the editor is terminated. TabLt ------------------------------------------------------------------------- Positions the cursor at the previous tab position, as defined by the tab width. If in Insert mode, the text to the right of, and including the cursor position, also shifts left. TabRt ------------------------------------------------------------------------- Positions the cursor at the next tab position, as defined by the cursor tab width. If in Insert mode, the text to the right of, and including the cursor position, also shifts right. ToggleBakups ------------------------------------------------------------------------- Toggles file backups ON and OFF. If ON, QEdit will create a backup file using the ".bak" file extension whenever a modified file is saved. 3-21 ToggleBoxDraw ------------------------------------------------------------------------- Toggles Box Drawing mode ON and OFF. If ON, the cursor movement keys (up, down, right, left) will "draw" lines in the text, both up/down and right/left. Very useful for creating charts and tables. The letter "B" will appear on the Status Line when this mode is ON. ToggleEGA43 ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- Toggles EnterMatching mode ON and OFF. If ON, the double quote, parenthesis, and square bracket keys all automatically enter the matching character when the left character is entered. For example, typing the '[' key automatically enters a ']' immediately following. ToggleIndent or ------------------------------------------------------------------------- Toggles AutoIndent mode ON and OFF. If ON, the cursor is positioned at the current left margin whenever the 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 will also use the current left margin when AutoIndent mode is ON. The letter "A" will appear on the Status Line when this mode is ON. ToggleInsert or ------------------------------------------------------------------------- Toggles Insert mode ON and OFF. 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, entering the Return command will cause a line split at the current cursor position. The letter "I" will appear on the Status Line when this mode is ON. 3-22 ToggleSmartTabs ------------------------------------------------------------------------- Toggles Smart Tabs ON and OFF. If ON, the TabRt and TabLt commands will place the cursor beneath the beginning of the next (or previous) word on the line immediately above the current cursor line. If the line immediately above the cursor line is blank, then the cursor will not move. Smart Tabs mode should NOT be set ON while C mode is ON. ToggleTabsExpand ------------------------------------------------------------------------ Toggles Physical Tab Expansion ON and OFF. If ON, physical tab characters (ASCII 9's) found in a file will be expanded into spaces according to the Physical Tab Width set in the configuration program. If OFF, physical tabs will be displayed on the screen and a physical tab character will be placed in the text each time the TabRt command is entered. ToggleTabsOut ------------------------------------------------------------------------- Toggles Tabs Out mode ON and OFF. If ON, continuous spaces in a line of text will be replaced with physical tabs (ASCII 9's) 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 will not be replaced. ToggleWordwrap or ------------------------------------------------------------------------- Toggles WordWrap mode ON and OFF. If ON, the cursor, along with the word currently being typed, will automatically advance 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 for more information) or temporarily changed using the SetRmargin command. The letter "W" will appear on the Status Line when this mode is ON. UndoCursorline ------------------------------------------------------------------------- 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. 3-23 UnKill or ------------------------------------------------------------------------- Recovers the last deleted entry from the current file's Kill Buffer. Deleted blocks and lines will be inserted immediately before the current cursor line and deleted words will be 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 or ------------------------------------------------------------------------- Unmarks the currently marked Block. WordLeft ------------------------------------------------------------------------- Positions the cursor at the first character of the previous word. WordRight ------------------------------------------------------------------------- Positions the cursor at the first character of the following word. WrapPara ------------------------------------------------------------------------- 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 or the SetRmargin command. WriteBlock or or ------------------------------------------------------------------------- Writes the currently marked Block to the named file. The editor will prompt for the name of the file. ZoomWindow or ------------------------------------------------------------------------- Toggles Zoom mode ON and OFF. If there are multiple windows on the screen, entering the ZoomWindow command will cause the current window to fill the entire screen. Pressing ZoomWindow again restores the other windows to the screen. 3-24 Appendix A. List of Commands ========================================================================= +-------------+ | By Function | +-------------+ Menu (Esc) Default Customized Command Sequence Keystroke Keystroke -------------------- ---------- -------------------- ---------- Cursor Movement --------------- BegFile Ctrl PgUp BegLine Home BegScreen Ctrl Home CursorDown Cursor Down CursorLeft Cursor Left CursorRight Cursor Right CursorUp Cursor Up EndFile Ctrl PgDn EndLine End EndScreen Ctrl End GotoBlockBeg Ctrl QB GotoBlockEnd Ctrl QK GotoLine Ctrl J HalfPgDn HalfPgUp LineDown LineUp MakeBotofScreen MakeCtrofScreen Shift F5 MakeTopofScreen F5 A-1 PageDown PgDn PageUp PgUp PrevPosition Ctrl QP ScreenLeft Alt F5 ScreenRight Alt F6 ScrollDown Ctrl Z ScrollUp Ctrl W WordLeft Ctrl Cursor Left WordRight Ctrl Cursor Right Editing ------- AddLine EA F2 Align Backspace Backspace DelCh Del DelLine ED Alt D DelLtWord Ctrl Backspace DelRtWord Ctrl T DelToEol EE F6 DupLine F4 GetPrev Ctrl - (dash) InsertLine EI Alt F2 JoinLine EJ Alt J Literal Ctrl P Return Enter SplitLine ES Alt S UnKill EU Ctrl U Block/Scratch Buffer -------------------- AppendScrbuff Ctrl BA Copy grey + CopyBlock BC Alt C CopyOverBlock Alt Z Cut grey - A-2 DeleteBlock BD Alt G DropAnchor Alt A GetScrbuff Ctrl BL MarkBlockBegin BB Ctrl KB or F7 MarkBlockEnd BE Ctrl KK or F8 MarkCharacter MarkColumn Alt K MarkLine BL Alt L MoveBlock BM Alt M Paste grey * PasteOver Ctrl PrtSc ShiftLeft Shift F7 ShiftRight Shift F8 StoreScrbuff Ctrl BS UnmarkBlock BU Alt U File ---- ChangeFilename FC Alt O or Alt F,C EditFile FL Alt E or Alt F,L Exit Ctrl KD File FF Ctrl KX or Alt F,F GExit QX Alt X or Alt Q,X GFile FG Alt F,G GPQuit QQ F3 or Alt Q,Q GSave Alt Y KillFile Ctrl KZ NextFile FN Alt N or Alt F,N PQuit FQ Ctrl KQ or Alt F,Q PrevFile FP Ctrl KP or Alt F,P Quit ReadBlock FR Alt R or Alt F,R SaveFile FS Ctrl KS or Alt F,S WriteBlock FW Alt W or Alt F,W A-3 Window ------ CloseWindow WC Ctrl OC GrowWindow WG Ctrl OG HorizontalWindow WS Ctrl OH NextWindow WN Ctrl ON OneWindow WO Ctrl OO PrevWindow WP Ctrl OP ShrinkWindow WR Ctrl OS ZoomWindow WZ Ctrl OZ Macro ----- CurrentFilename ExecuteScrap Ctrl Enter MacroRead MR MacroRecord MM Ctrl M MacroWrite MW Printing -------- PrintAll PA Alt P,A PrintBlock PB Alt P,B PrintEject PF Alt P,F SetPrintLeftMargin PL Alt P,L SetPrintPageSize PP Alt P,P Tab --- SetCtabwidth OC SetPtabwidth OP TabLt Shift Tab TabRt Tab A-4 Find/Replace ------------ Find SF Ctrl QF FindReplace SR Ctrl QA RepeatFind SA Ctrl L Toggles ------- ToggleBakups OB ToggleBoxDraw Shift F1 ToggleEnterMatching OE ToggleIndent OA Ctrl QI ToggleInsert OI Ins ToggleSmartTabs Ctrl QT ToggleTabsExpand Alt V ToggleTabsOut Alt I ToggleWordwrap OW Ctrl OW Other ----- Dos Alt F9 Escape Escape InsertDate InsertTime MainMenu Escape Match Alt F3 QuickHelp Alt H or F1 SetEGA25 SetEGA43 SetRmargin OR Ctrl OR Shell FO F9 or Alt F,O ShowEntryScreen Alt F10 ToggleEGA43 Ctrl F1 UndoCursorline Ctrl QL WrapPara Alt B A-5 +----------------+ | Alphabetically | +----------------+ Menu (Esc) Default Customized Command Sequence Keystroke Keystroke -------------------- ---------- -------------------- ---------- AddLine EA F2 Align AppendScrbuff Ctrl BA Backspace Backspace BegFile Ctrl PgUp BegLine Home BegScreen Ctrl Home ChangeFilename FC Alt O or Alt F,C CloseWindow WC Ctrl OC Copy grey + CopyBlock BC Alt C CopyOverBlock Alt Z CurrentFilename CursorDown Cursor Down CursorLeft Cursor Left CursorRight Cursor Right CursorUp Cursor Up Cut grey - DelCh Del DeleteBlock BD Alt G DelLine ED Alt D DelLtWord Ctrl Backspace DelRtWord Ctrl T DelToEol EE F6 Dos Alt F9 DropAnchor Alt A DupLine F4 EditFile FL Alt E or Alt F,L EndFile Ctrl PgDn EndLine End EndScreen Ctrl End Escape Escape ExecuteScrap Ctrl Enter Exit Ctrl KD File FF Ctrl KX or Alt F,F A-6 Find SF Ctrl QF FindReplace SR Ctrl QA GetPrev Ctrl - (dash) GetScrbuff Ctrl BL GExit QX Alt X or Alt Q,X GFile FG Alt F,G GotoBlockBeg Ctrl QB GotoBlockEnd Ctrl QK GotoLine Ctrl J GPQuit QQ F3 or Alt Q,Q GrowWindow WG Ctrl OG GSave Alt Y HalfPgDn HalfPgUp HorizontalWindow WS Ctrl OH InsertDate InsertLine EI Alt F2 InsertTime JoinLine EJ Alt J KillFile Ctrl KZ LineDown LineUp Literal Ctrl P MacroRead MR MacroRecord MM Ctrl M MacroWrite MW MainMenu Escape MakeBotofScreen MakeCtrofScreen Shift F5 MakeTopofScreen F5 MarkBlockBegin BB Ctrl KB or F7 MarkBlockEnd BE Ctrl KK or F8 MarkCharacter MarkColumn Alt K MarkLine BL Alt L A-7 Match Alt F3 MoveBlock BM Alt M NextFile FN Alt N or Alt F,N NextWindow WN Ctrl ON OneWindow WO Ctrl OO PageDown PgDn PageUp PgUp Paste grey * PasteOver Ctrl PrtSc PQuit FQ Ctrl KQ or Alt F,Q PrevFile FP Ctrl KP or Alt F,P PrevPosition Ctrl QP PrevWindow WP Ctrl OP PrintAll PA Alt P,A PrintBlock PB Alt P,B PrintEject PF Alt P,F QuickHelp Alt H or F1 Quit ReadBlock FR Alt R or Alt F,R RepeatFind SA Ctrl L Return Enter SaveFile FS Ctrl KS or Alt F,S ScreenLeft Alt F5 ScreenRight Alt F6 ScrollDown Ctrl Z ScrollUp Ctrl W SetCtabwidth OC SetEGA25 SetEGA43 SetPrintLeftMargin PL Alt P,L SetPrintPageSize PP Alt P,P SetPtabwidth OP SetRmargin OR Ctrl OR Shell FO F9 or Alt F,O ShiftLeft Shift F7 A-8 ShiftRight Shift F8 ShowEntryScreen Alt F10 ShrinkWindow WR Ctrl OS SplitLine ES Alt S StoreScrbuff Ctrl BS TabLt Shift Tab TabRt Tab ToggleBakups OB ToggleBoxDraw Shift F1 ToggleEGA43 Ctrl F1 ToggleEnterMatching OE ToggleIndent OA Ctrl QI ToggleInsert OI Ins ToggleSmartTabs Ctrl QT ToggleTabsExpand Alt V ToggleTabsOut Alt I ToggleWordwrap OW Ctrl OW UndoCursorline Ctrl QL UnKill EU Ctrl U UnmarkBlock BU Alt U WordLeft Ctrl Cursor Left WordRight Ctrl Cursor Right WrapPara Alt B WriteBlock FW Alt W or Alt F,W ZoomWindow WZ Ctrl OZ A-9 Appendix B. List of Configurable Keys ========================================================================= +---------------+ | Function Keys | +---------------+ Keystroke Default Command | Keystroke Default Command --------- --------------- | --------- --------------- F1 QuickHelp | Shift F1 ToggleBoxDraw F2 AddLine | Shift F2 F3 GPQuit | Shift F3 F4 DupLine | Shift F4 F5 MakeTopofScreen | Shift F5 MakeCtrofScreen | F6 DelToEol | Shift F6 F7 MarkBlockBegin | Shift F7 ShiftLeft F8 MarkBlockEnd | Shift F8 ShiftRight F9 Shell | Shift F9 F10 | Shift F10 -----------------------------------Å---------------------------------------- Ctrl F1 ToggleEGA43 | Alt F1 Ctrl F2 | Alt F2 InsertLine Ctrl F3 | Alt F3 Match Ctrl F4 | Alt F4 Ctrl F5 | Alt F5 ScreenLeft | Ctrl F6 | Alt F6 ScreenRight Ctrl F7 | Alt F7 Ctrl F8 | Alt F8 Ctrl F9 | Alt F9 Dos Ctrl F10 | Alt F10 ShowEntryScreen B-1 +----------------------+ | Special Purpose Keys | +----------------------+ Keystroke Default Command | Keystroke Default Command --------- --------------- | --------- --------------- Backspace Backspace | Ctrl Backspace DelLtWord Cursor down CursorDown | Cursor left CursorLeft | Ctrl Cursor left WordLeft Cursor right CursorRight | Ctrl Cursor right WordRight Cursor up CursorUp | | Del DelCh | Shift Del End EndLine | Ctrl End EndScreen Enter Return | Ctrl Enter ExecuteScrap Escape Escape | grey * Paste | | grey + Copy | grey - Cut | Home BegLine | Ctrl Home BegScreen Ins ToggleInsert | Shift Ins PgDn PageDown | Ctrl PgDn EndFile | PgUp PageUp | Ctrl PgUp BegFile Tab TabRt | Shift Tab TabLt ` | / | ~ (tilde) | | | Ctrl PrtSc PasteOver | Ctrl [ | Ctrl ] | Ctrl - GetPrev | Ctrl \ | Ctrl 2 | Ctrl 6 B-2 +--------------+ | Control Keys | +--------------+ Keystroke Default Command | Keystroke Default Command --------- --------------- | --------- --------------- Ctrl A WordLeft | Ctrl P Literal * Ctrl BA AppendScrbuff |* Ctrl QA FindReplace Ctrl BL GetScrbuff | Ctrl QB GotoBlockBeg Ctrl BS StoreScrbuff | Ctrl QC EndFile Ctrl C PageDown | Ctrl QD EndLine | Ctrl D CursorRight | Ctrl QE BegScreen Ctrl E CursorUp | Ctrl QF Find Ctrl F WordRight | Ctrl QI ToggleIndent Ctrl G DelCh | Ctrl QK GotoBlockEnd Ctrl H Backspace | Ctrl QL UndoCursorline | Ctrl I TabRt | Ctrl QP PrevPosition Ctrl J GotoLine | Ctrl QR BegFile * Ctrl KB MarkBlockBegin | Ctrl QS BegLine Ctrl KC CopyBlock | Ctrl QT ToggleSmartTabs Ctrl KD Exit | Ctrl QX EndScreen | Ctrl KE EditFile | Ctrl QY DelToEol Ctrl KF ChangeFilename | Ctrl R PageUp Ctrl KH UnmarkBlock | Ctrl S CursorLeft Ctrl KK MarkBlockEnd | Ctrl T DelRtWord Ctrl KN NextFile | Ctrl U UnKill | Ctrl KP PrevFile | Ctrl V ToggleInsert Ctrl KQ PQuit | Ctrl W ScrollUp Ctrl KR ReadBlock | Ctrl X CursorDown Ctrl KS SaveFile | Ctrl Y DelLine Ctrl KT ToggleTabsExpand | Ctrl Z ScrollDown | Ctrl KV MoveBlock | Ctrl KW WriteBlock | Ctrl KX File | Ctrl KY DeleteBlock | Ctrl KZ KillFile | | Ctrl L RepeatFind | Ctrl M MacroRecord | Ctrl N SplitLine | * Ctrl OC CloseWindow | Ctrl OG GrowWindow | | B-3 Ctrl OH HorizontalWindow | Ctrl OL SetPrintLeftMargin | Ctrl ON NextWindow | Ctrl OO OneWindow | Ctrl OP PrevWindow | | Ctrl OR SetRmargin | Ctrl OS ShrinkWindow | Ctrl OW ToggleWordwrap | Ctrl OZ ZoomWindow | * QEdit allows you to assign commands to "twokey" combinations. A twokey consists of two distinct keystrokes, such as immediately followed by . Please note that keystrokes such as and by themselves each count as only one keystroke, just as is only one keystroke. You cannot assign a QEdit command to a key which is already being used as the first keystroke of a twokey. B-4 +----------------+ | Alternate Keys | +----------------+ Keystroke Default Command | Keystroke Default Command --------- --------------- | --------- --------------- Alt A DropAnchor | Alt 1 Alt B WrapPara | Alt 2 Alt C CopyBlock | Alt 3 Alt D DelLine | Alt 4 Alt E EditFile | Alt 5 | Alt F MacroBegin MainMenu 'f'| Alt 6 Alt G DeleteBlock | Alt 7 Alt H QuickHelp | Alt 8 Alt I ToggleTabsOut | Alt 9 Alt J JoinLine | Alt 0 | Alt K MarkColumn | Alt - Alt L MarkLine | Alt = Alt M MoveBlock | Alt N NextFile | Alt O ChangeFilename | | Alt P MacroBegin MainMenu 'p'| Alt Q MacroBegin MainMenu 'q'| Alt R ReadBlock | Alt S SplitLine | Alt T | | Alt U UnmarkBlock | Alt V ToggleTabsExpand | Alt W WriteBlock | Alt X GExit | Alt Y GSave | | Alt Z CopyOverBlock | B-5 +------------------------+ | Enhanced Keyboard Keys | +------------------------+ Keystroke Default Command | Keystroke Default Command --------- --------------- | --------- --------------- F11 | Alt F11 F12 | Alt F12 Shift F11 | Alt ' Shift F12 | Alt , Ctrl F11 | Alt . | Ctrl F12 | Alt / Ctrl Center Cursor | Alt \ Ctrl Cursor Down | Alt ; Ctrl Cursor Up | Alt [ Ctrl Del | Alt ] | Ctrl grey * | Alt ` Ctrl grey + | Alt Backspace Ctrl grey - | Alt Enter Ctrl grey / | Alt Escape Ctrl Ins | Alt grey * | Ctrl Tab | Alt grey + Center Cursor | Alt grey - grey Enter | Alt grey / Ctrl grey Enter | Alt grey Cursor Down | Alt grey Cursor Left | | Alt grey Cursor Right | Alt grey Cursor Up | Alt grey Del | Alt grey End | Alt grey Home | | Alt grey Ins | Alt grey PgDn | Alt grey PgUp | Alt grey Enter | Alt Tab A list of all configurable keys is also contained in the QCONFIG.DAT file on the QEdit distribution diskette. B-6 Appendix C. Error Messages ========================================================================= This Appendix contains an alphabetical list of the error messages that can be displayed by QEdit. Each message has a description and, as required, a resolution. There is a separate list for QCONFIG (the configuration program) error messages. QEdit Error Messages ------------------------------------------------------------------------- Can't execute scrap macro when macro recording on: The ExecuteScrap command cannot be used during macro recording. Disk full: A disk full condition was encountered while trying to save a file. Resolution: Temporarily exit to DOS using the Shell command and remove some files on the full disk, OR use the KillFile command to remove the currently edited file from disk, OR use the ChangeFilename command to direct the file to a different disk drive designation. Error creating file: The filename specified on the command line is either an invalid DOS filename or there are no files matching the wildcarded specification. Resolution: Enter a valid DOS filename or valid wildcarded designation on the command line when executing QEdit. Error running program: DOS returned an error condition when QEdit attempted to perform the DOS EXEC function to load and execute a program and/or the DOS SHELL. Resolution: Check these possible causes: there is not enough memory to load the external program, OR the COMMAND.COM file is not available, OR the COMSPEC environment variable is not set properly. Refer to your DOS manual for more information on the COMSPEC environment variable. Error opening file: The file specified cannot be opened. Resolution: Check for possible disk errors or failure. Error reading file: The file specified cannot be read. Resolution: Check for possible disk errors or failure. C-1 Error renaming file: The file specified cannot be renamed. Resolution: Check for possible disk errors or failure. Error writing file: The file specified cannot be saved. Resolution: Check for possible disk errors or failure. File not found: The file specified in response to the MacroRead or ReadBlock command could not be found on disk. Resolution: Check for the correct name of the file to read. Filename already in use in ring: The file specified in response to the ChangeFilename command is already loaded into the editor. Resolution: Enter a filename that is not already loaded into the editor. If you are attempting to "jump" to another file in the ring, use the EditFile command. Invalid macro filesize: An attempt was made to load a macro file using the MacroRead command, which is either too large or is not a valid macro file. Resolution: Check for the correct name of the macro file to read. Key already defined: An attempt was made to assign a macro to a key which already has a command assignment. Resolution: Refer to Appendix B and select a key which does not already have a command assignment. Long lines split: An attempt was made to load a file whose line length exceeded the QEdit limit of 512 characters. Resolution: The file can still be edited, but be aware that all lines exceeding 512 characters will be split into shorter lines. Macro table full: There is no more room to record macros. Resolution: Delete some unused macros. Macro too long - Aborted: The macro being created during macro recording has exceeded the maximum length. Resolution: Keep macros to less than 250 consecutive "entries". Note that during macro recording each QEdit command takes up 1 of these entries and each keyboard character takes up 2 entries. Match not found: No match was found for "(", "{", or "[" characters when using the Match command. Memory lost to sub-process: A memory-resident program (TSR) was executed using the QEdit Dos or Shell command and has procured memory that was in use by the editor. Resolution: Immediately SAVE any files you are editing and re-boot your system. C-2 No files found: An invalid wildcarded filename was entered in response to a QEdit "file(s) to edit" prompt. Resolution: Check for the correct filename(s) to edit. Not enough memory to load entire file: There is not enough memory to load the requested file into the editor. Resolution: Split the requested file into separate files. Not enough memory: There is not enough memory to continue editing the current file. Resolution: Split the current file into separate files. Printer error: An error was encountered while attempting to direct an edit file to the printer. Resolution: Check to see that the printer is powered on, online, and properly connected to the computer. Press any key to continue: The editor has displayed a message and will not continue until instructed. QCONFIG Error Messages ------------------------------------------------------------------------- invalid response - try again: An invalid parameter was entered in response to a configuration option. Resolution: Reread option and enter valid parameter. ERROR!!! Help buffer overflow in help.txt at line #: The Help file contains more than 1800 non-blank characters. Resolution: Edit the Help file and reduce the number of non-blank characters. Help filename xxxxxxxx.xxx NOT found: The specified name of the Help file can not be found on disk. Resolution: Check for the correct name of the Help file. Unexpected End Of File encountered at line #: There is a problem with the format of the Help file - possibly corrupted. Resolution: Load the Help file into QEdit and enter the SaveFile command. Line # too long: The specified line in the Help file exceeds the maximum length of 80 characters. Resolution: Edit the Help file and ensure that no lines exceed 80 characters in length. C-3 FATAL ERROR: macro too long at line #: The macro at the specified line number in the Keyboard Definition file exceeds the maximum length of 255 characters. Resolution: Edit the Keyboard Definition file and ensure that no macros exceed 255 characters in length. FATAL ERROR: unrecognized command xxxx at line #: The Keyboard Definition file contains an invalid command at the specified line number. Resolution: Edit the Keyboard Definition file and correct the invalid command. FATAL ERROR: macro table full at line #: There is no more room left in the Keyboard Definition file for macros. Resolution: Delete some unused macros. FATAL ERROR: too many twokey definitions, aborted at line #: The maximum number of twokey assignments in the Keyboard Definition file has been exceeded. Resolution: Edit the Keyboard Definition file and reduce the number of twokey assignments. Generally, there can be 30 to 50 twokey assignments, depending on the number of unique first keys. The more unique first keys there are, the fewer twokey assignments can be made. FATAL ERROR: invalid second key code xx at line #: The Keyboard Definition file contains an invalid second key (of a twokey assignment) at the specified line number. Resolution: Edit the Keyboard Definition file and correct the invalid key. FATAL ERROR: macro_begin not supported for twokey commands, line #: Macros cannot be assigned to twokeys. FATAL ERROR: return bound to twokey at line #: The Return command cannot be assigned to a twokey. FATAL ERROR: escape bound to twokey at line #: The Escape command cannot be assigned to a twokey. FATAL ERROR: undefined key xxxx encountered at line #: The Keyboard Definition file contains an invalid configurable key at the specified line number. Resolution: Edit the Keyboard Definition file and correct the invalid key. FATAL ERROR: return command MUST be "bound" to a key: The Return command is not assigned to any key in the Keyboard Definition file. Resolution: Assign the Return command to some configurable key in the Keyboard Definition file. C-4 FATAL ERROR: escape command MUST be "bound" to a key: The Escape command is not assigned to any key in the Keyboard Definition file. Resolution: Assign the Escape command to some configurable key in the Keyboard Definition file. File xxxxxxxx.xxx not found: The specified name of the Keyboard Definition file can not be found on disk. Resolution: Check for the correct name of the Keyboard Definition file. FATAL ERROR: xxxxxxxx.xxx not found: The specified name of the QEdit executable file cannot be found on disk. Resolution: Check for the correct name of the QEdit executable file. FATAL ERROR: patch area NOT found: There is a problem with the QEdit executable file (Q.EXE or copy of same). Resolution: Reload the QEdit (Q.EXE) and QCONFIG.EXE executable files from the QEdit distribution disk. FATAL ERROR: end of patch area NOT found. There is a problem with the QEdit executable file (Q.EXE or copy of same). Resolution: Reload the QEdit (Q.EXE) and QCONFIG.EXE executable files from the QEdit distribution disk. C-5 Appendix D. Commonly Used Macros ========================================================================= We have received many useful suggestions from QEdit users over the years. Since the introduction of macros in version 2.00, we have received ideas for some very helpful macros. Here is a short list of some of the more useful (and simple) macros. - By default, 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 (and reload using QCONFIG.EXE) as follows: Default QCONFIG.DAT file: f2 AddLine ^y DelLine Customized QCONFIG.DAT file: f2 MacroBegin AddLine BegLine ^y MacroBegin DelLine BegLine - By default, QEdit's CopyBlock and MoveBlock commands leave the copied or moved block marked. Many would prefer for the block to be unmarked. A solution is to change the QCONFIG.DAT file (and reload using QCONFIG.EXE) as follows: Default QCONFIG.DAT file: @c CopyBlock @m MoveBlock Customized QCONFIG.DAT file: @c MacroBegin CopyBlock UnmarkBlock @m MacroBegin MoveBlock UnmarkBlock D-1 - By default, QEdit's ReadBlock command inserts a file from disk at the current cursor position. To have QEdit insert files on the line immediately following the current cursor line, change the QCONFIG.DAT file (and reload using QCONFIG.EXE) as follows: Default QCONFIG.DAT file: @r ReadBlock Customized QCONFIG.DAT file: @r MacroBegin EndLine SplitLine CursorDown BegLine ReadBlock GotoBlockEnd JoinLine GotoBlockBeg - By default, QEdit's DropAnchor command will end or extend 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, change the QCONFIG.DAT file (and reload using QCONFIG.EXE) as follows: Default QCONFIG.DAT file: @a DropAnchor Customized QCONFIG.DAT file: @a MacroBegin UnmarkBlock DropAnchor - A very useful QEdit command, GetPrev, will copy a character from the line immediately above the cursor line, onto the cursor line. Many times, it may be necessary to copy this character to several succeeding lines in the same column. The GetPrev command, used in a macro, makes this function easy. We will assign the macro to the key (@1 in QEdit's terminology). @1 MacroBegin GetPrev CursorLeft CursorDown - This macro will allow you to edit a sorted list of files of the current directory. @1 MacroBegin Dos "dir *.* | sort>filedir.tmp" Return Return EditFile "filedir.tmp" Return DelLine DelLine DelLine DelLine D-2 Appendix E. The Author ========================================================================= Sammy Mitchell is a native of Atlanta, Georgia. He graduated from Georgia State University in 1980 with a degree in Information Systems. Since college he has worked for Southern Company Services as a programmer analyst and for Equitable Real Estate Investment Management as a VM systems programmer. In 1986 he went into full-time consulting, specializing in systems and applications work on Micros and Mainframes in assembler, C and Pascal. Besides QEdit, he is also the co-author of Mach 2 for Turbo Pascal, LXEDIT (a "large file" front-end for IBM's VM/CMS SP XEDIT), and a host of productivity aids at both Southern Company and Equitable. When he's away from the computer (which is very seldom these days) he enjoys lifting weights, playing softball, and spending quiet evenings with his wife. E-1 Index ========================================================================= A AddLine command 1-25, 3-2 Align command 1-27, 2-20 aligning text 1-27 Alt key 1-3, 2-15 numeric keypad 1-26, 2-6 AppendScrbuff command 1-21, 1-22, 1-24, 3-2 ASCII characters entering 1-25, 1-26, 1-35, 3-12 AutoIndent mode 1-4, 1-28, 1-39, 1-40, 2-10, 3-18, 3-22, 3-24 B Backspace command 1-28, 1-39, 3-2 backup files, creation 1-41, 2-11, 3-21 BegFile command 1-9, 3-3 BegLine command 1-12, 3-3 BegScreen command 1-12, 3-3 binary files editing 1-42 blank lines inserting 1-25, 3-2, 3-11 Blocks copying 1-18, 1-20, 2-12, 3-3, 3-4 deleting 1-19, 3-5 examples 1-22, 1-23, 1-24, 1-25 marking 1-16, 1-17, 1-18, 3-6, 3-13, 3-14 moving 1-19, 1-20, 2-12, 3-14, 3-15 printing 3-17 shifting text 1-19, 3-20 unmarking 1-17, 3-24 writing to disk see WriteBlock command Brief emulation 2-14 buffers kill 1-29, 1-31, 1-32, 2-10, 3-24 scrap 1-19, 1-20 scratch 1-21, 1-22 C ChangeFilename command 3-3 CloseWindow command 1-15, 3-3 C mode 1-40, 2-10 colors, screen 2-7 command line format 1-2, 1-5, 2-6, 2-10 Compaq color adapter 2-7 I-1 compile within QEdit 2-16 Concurrent DOS 2-5 Copy command 1-19, 1-27, 2-6, 3-3 CopyBlock command 1-18, 2-12, 3-3, CopyOverBlock command 1-18, 3-4 creating files see files Ctrl key 1-3 CurrentFilename command 3-4 cursor 2-5 CursorDown command 1-13, 3-4 CursorLeft command 1-13, 3-4 CursorRight command 1-13, 3-4 CursorUp command 1-13, 3-4 Cut command 1-20, 1-28, 2-6, 3-5 D date and time entering 3-10, 3-11 DelCh command 1-28, 2-9, 3-5 DeleteBlock command 1-19, 3-5 DelLine command 1-29, 3-5 DelLtWord command 1-28, 3-5 DelRtWord command 1-28, 2-11, 3-5 DelToEol command 1-29, 3-6 directory picker 1-2, 2-10 discarding files 1-8 Dos command 1-37, 3-6 DropAnchor command 1-16, 3-6 duplicating lines 1-26, 3-6 characters 1-26, 3-9 DupLine command 1-26, 3-6 E EditFile command 1-5, 1-7, 2-9, 2-10, 3-6 eject, printer 1-36, 3-17 EndFile command 1-9, 3-7 EndLine command 1-12, 3-7 EndScreen command 1-12, 3-7 enhanced keyboard 2-5 EnterMatching mode 1-26, 1-41, 3-22 entry screen restoring 2-7 showing 3-20 end of file character 2-11 end of file marker 2-11 escape key 2-6 Escape command 3-7 I-2 ExecuteScrap command 1-34, 3-7 Exit command 1-8, 2-9, 3-7 exiting 1-8, 2-7 F File command 1-8, 2-9, 3-8 files creating 1-5 extensions 2-13 loading 1-2, 1-5, 1-7 saving 1-8 Find command 1-11, 1-31, 2-8, 2-12, 3-8 finding text see searching for text FindReplace command 1-29, 1-31, 2-8, 2-12, 3-8 flicker option 2-5 formfeed 1-25, 1-36, 2-17, 2-18, 3-17 G Genius video system 2-5 GetPrev command 1-26, 3-9 GetScrbuff command 1-21, 1-22, 3-9 GExit command 1-8, 3-9 GFile command 1-8, 3-9 go to begin\end of block 1-10, 3-9 begin\end of file 1-9, 3-3, 3-5 line 1-10, 3-10 GotoBlockBeg command 1-10, 3-9 GotoBlockEnd command 1-10, 3-9 GotoLine command 1-10, 3-10 GPQuit command 1-8, 3-10 graphics adapters 2-5, 2-7 GrowWindow command 1-14, 3-10 GSave command 1-8, 3-10 H HalfPgDn command 1-9, 3-10 HalfPgUp command 1-9, 3-10 Help Screen 1-2, 2-9, 2-13, 3-17 HorizontalWindow command 1-14, 2-11, 3-10 I indentation see AutoIndent mode InsertDate command 3-10 I-3 inserting disk files into text see ReadBlock command InsertLine command 1-25, 3-11 InsertTime command 3-11 Insert mode 1-4, 1-27, 1-28, 1-39, 2-5, 2-10, 3-2, 3-17, 3-21, 3-22 J JoinLine command 1-27, 3-11 K keyboard configuration 2-14 KillFile command 3-11 L LineDown command 1-10, 3-11 linefeed character 1-26 LineUp command 1-10, 3-11 Literal command 1-25, 3-12 loading files see files M macro examples 1-35, 2-16 keyboard recording 1-4, 1-33, 1-41 writing 2-16 macrobegin statement 2-16 MacroRead command 1-34, 3-12 MacroRecord command 1-33, 3-12 MacroWrite command 1-34, 3-12 MainMenu command 3-13 MakeBotofScreen command 1-12, 3-13 MakeCtrofScreen command 1-12, 3-13 MakeTopofScreen command 1-12, 3-13 margin setting left 1-36, 2-17, 3-19 right 1-38, 2-9, 3-20 MarkBlockBegin command 1-17, 3-13 MarkBlockEnd command 1-17, 3-13 MarkCharacter command 1-17, 3-14 MarkColumn command 1-17, 3-14 MarkLine command 1-16, 3-14 Match command 1-11, 3-14 menus 1-3, 2-6, 2-9, 3-7, 3-13 modes 1-4, 1-39 MoveBlock command 1-19, 2-12, 3-14 multiple files 1-6, 1-8, 1-14 I-4 N NextFile command 1-7, 3-15 NextWindow command 1-14, 3-15 null character 3-12 O OneWindow command 1-15, 3-15 P PageDown command 1-9, 3-15 PageUp command 1-9, 3-15 paragraph reformatting 1-39 Paste command 1-20, 1-27, 1-28, 2-12, 3-15 PasteOver command 1-20, 3-16 path 1-5 PQuit command 1-8, 2-9, 3-16 PrevFile command 1-7, 3-16 PrevPosition command 1-10, 3-16 PrevWindow command 1-14, 3-16 PrintAll command 1-35, 3-16 PrintBlock command 1-35, 3-17 PrintEject command 1-36, 3-17 printing 1-35 print formatting 1-36 Q QuickHelp command 2-13, 3-17 Quit command 1-8, 3-17 R ReadBlock command 3-17 recovering deleted text 1-29, 1-31, 2-10, 3-24 renaming files 3-3 RepeatFind command 1-11, 1-31, 3-17 replacing text 1-29 Return command 1-27, 1-39, 1-40, 2-5, 3-17 ring of files 1-6 S saving files see files SaveFile command 1-8, 3-18 scan code 2-6 ScreenLeft command 1-12, 2-7, 3-18 ScreenRight command 1-12, 2-7, 3-18 I-5 ScrollDown command 1-10, 3-18 ScrollUp command 1-10, 3-19 searching for text 1-11 SetCtabwidth command 3-19 SetEGA25 command 3-19 SetEGA43 command 3-19 SetPrintLeftMargin command 1-36, 3-19 SetPrintPageSize command 1-36, 3-19 SetPtabwidth command 3-19 SetRmargin command 1-38, 3-20 Shell command 1-37, 3-20 ShiftLeft command 1-19, 1-28, 3-20 ShiftRight command 1-19, 1-28, 3-20 ShowEntryScreen command 3-20 ShrinkWindow command 1-15, 3-21 snow handling 2-5, 2-7 special characters see ASCII characters SplitLine command 1-27, 3-21 startup 1-2 Status Line 1-4, 2-7, 2-8 StoreScrbuff command 1-21, 3-21 T tabs 1-41, 1-42, 2-18 TabLt command 1-39, 1-40, 1-41, 2-17, 3-21 TabRt command 1-39, 1-40, 1-41, 2-17, 3-21 terminate the editor 1-8 ToggleBakups command 1-41, 3-21 ToggleBoxDraw command 1-26, 1-41, 3-22 ToggleEGA43 command 3-22 ToggleEnterMatching command 1-26, 1-41, 3-22 ToggleIndent command 1-40, 3-22 ToggleInsert command 3-22 ToggleSmartTabs command 1-41, 3-23 ToggleTabsExpand command 1-41, 3-23 ToggleTabsOut command 1-42, 3-23 ToggleWordwrap command 1-38, 1-40, 3-23 twokey 2-15 U undelete see recovering deleted text UndoCursorline command 1-29, 3-23 UnKill command 1-29, 1-32, 2-10, 3-24 UnmarkBlock command 1-17, 3-24 I-6 W wildcarded filenames 1-2, 1-5, 2-10, 3-6 windows change size 1-14, 3-10, 3-21 close 1-15, 2-11, 3-3, 3-15 create 1-14, 2-11, 3-10 switch 1-14, 3-15, 3-16 zoom 1-15, 3-24 WordLeft command 1-12, 3-24 WordRight command 1-12, 3-24 WordStar emulation 2-14 WordWrap mode 1-4, 1-38, 1-40, 2-9, 3-20, 3-23 word processing features 1-38 WrapPara command 1-39, 1-40, 3-24 WriteBlock command 3-24 Z Zenith color adapters 2-7 ZoomWindow command 1-15, 3-24 I-7

This command specifies the the number of lines to be printed on each page. QEdit will prompt with: +-----------------------------------------+ |Printer page size [0..400]: | |0 | +-----------------------------------------+ Enter a page size from zero to 400. A zero will instruct QEdit to print continuously without page breaks. Formfeeds QEdit will automatically send a formfeed character (ASCII 12) to the printer at the end of each page. A page is determined by the page size as explained in the section above. 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 command followed by a formfeed character. 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 "Macros" section in this chapter. It is also possible, from within QEdit, to send a formfeed character to the printer, causing the printer to eject a page. To do this, simply enter the PrintEject command. 1-36 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. - Shell This command should be used when executing multiple DOS commands. Upon entering the Shell command, control will be passed to DOS. The DOS prompt will appear 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 control will be passed back to QEdit. You will be positioned in the file exactly where you were when the Shell command was entered. - Dos This command should be used when executing a single DOS command. Upon entering this command, QEdit will prompt 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 will pass control 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. 1-37 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 and paragraph reformatting capabilities. - 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 60. 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.) This value of the right margin will be 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, enter the SetRmargin command. QEdit will prompt with: +------------------------------------+ |right margin [1..300]: | |60 | +------------------------------------+ Enter the desired column number for the right margin. The new setting will be in effect until the SetRmargin command is entered again or the next time the editor is initiated. WordWrap mode 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 command. When switched ON, this mode will cause the cursor to advance automatically to the next line when text is being entered. The cursor will advance to the next line based on the right margin, which is set using the SetRmargin 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, will be advanced to the next line. The cursor will not advance to the next line if the current line does not contain at least one space. 1-38 - Paragraph Reformatting The WrapPara command will reformat text from the current cursor position to the next blank line or the end of the file. The right-hand side of the text will be reformatted based on the right margin. The right margin is set using the SetRmargin command. The left-hand side of the text will be reformatted based on AutoIndent mode. If AutoIndent mode is switched OFF, the left margin will be column one. If AutoIndent mode is switched ON, the first non-blank character on the line immediately AFTER the cursor line will be used for the left margin. Using the line AFTER the cursor line allows for special indentation for the first line of a paragraph. 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 all the QEdit modes. - Insert mode Insert mode can be switched ON and OFF by pressing the key. When Insert mode is ON, an "I" will appear on the Status Line. The following table describes the commands and keystrokes which are affected by Insert mode. Command/ Keystroke Insert ON Insert OFF ------------ ---------------------- ---------------------- Characters, Shift text to right Overwrite existing Space of cursor, one column text. to the right. Backspace Deletes character/word Deletes character/word to left of cursor. to left of cursor. Text to right of cursor Text to right of cursor shifts left one column. does 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. 1-39 - AutoIndent mode AutoIndent mode is switched ON and OFF using the ToggleIndent 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 key is pressed. The current left margin is determined by the first non-blank character on the immediately preceding line. 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 ".h" or ".c" file extension. When the current cursor line contains a "{" and the 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 command. When switched ON, this mode will cause the cursor to advance to the next line automatically when text is being entered. The cursor will advance to the next line based on the right margin, which is set using the SetRmargin 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, will be advanced to the next line. The cursor will not advance to the next line if the current line does not contain at least one space. 1-40 - BackUp mode BackUp mode is switched ON and OFF using the ToggleBakups command. When BackUp Mode is switched ON, QEdit will create 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 will be created. - MacroRecord mode MacroRecord mode is switched ON and OFF using the MacroRecord command. This mode, when ON, records and assigns a series of commands and keystrokes to a designated key (or scrap area). This creates a macro. For a complete explanation of macros and their use, refer to the "Macros" section in this chapter. - EnterMatching mode EnterMatching mode is switched ON and OFF using the ToggleEnterMatching command. If switched ON, QEdit will automatically insert 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 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. All of the diagrams found in this manual were created using Box Drawing. - Smart Tabs mode Smart Tabs mode is switched ON and OFF using the ToggleSmartTabs command. If switched ON, the TabRt and TabLt commands will place the cursor beneath the first character of the next (or previous) word on the line immediately above the current cursor line. If the line immediately above the cursor line is blank, then the cursor will not move. Smart Tabs mode should NOT be used in conjunction with C mode. - Physical Tab Expansion mode Physical Tab Expansion mode is switched ON and OFF using the ToggleTabsExpand command. If switched ON, physical tab characters (ASCII 9's) found in a file will be expanded into spaces according to the Physical Tab Width set in the configuration program. If switched OFF, physical tabs will be displayed on the screen and a physical tab character will be placed in the text each time the TabRt command is entered. 1-41 +---------------------------------+ | QEdit Tip: | | In general, Physical Tab | | Expansion mode should always | | be set ON. You would only | | want to set it OFF if you were| | 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 command. If switched ON, continuous spaces in a line of text will be replaced with physical tabs (ASCII 9's) 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 will not be replaced. 1-42 Chapter 2. Customizing QEdit ========================================================================= QEdit provides a configuration capability which 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, color, tab settings, and printer options. Of course, customizing QEdit is not a requirement. If you like the editor exactly the way it is, it will not be necessary to use the configuration program. The configuration program is QCONFIG.EXE and is included on the distribution diskette, along with the other QEdit software. 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. The program will request the name of the editor program to customize with the prompt: +----------------------------------------------------------------+ | Enter program name to config, for Q.EXE : | +----------------------------------------------------------------+ Simply press , 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 . If the editor is located in another directory, enter the full pathname and press . The program will then request an optional new name for the customized editor with the prompt: +----------------------------------------------------------------+ | Enter new name for Q.EXE, for Q.EXE : | +----------------------------------------------------------------+ If you wish to name the newly customized program something besides Q.EXE, enter the new filename and press . Otherwise, simply press . If the file to be customized could not be located on disk, this error message will be displayed: +----------------------------------------------------------------+ |FATAL ERROR: Q.EXE not found | +----------------------------------------------------------------+ 2-2 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, this error message will be displayed: +----------------------------------------------------------------+ |FATAL ERROR: patch area not found | +----------------------------------------------------------------+ Try reloading the QEdit software from the distribution disk (i.e., Q.EXE and QCONFIG.EXE). The Configuration Menu ------------------------------------------------------------------------- The configuration program will display a menu from which to select the desired functions for customization. +----------------------------------------------------------------+ | Configuration choices. | | Choose One of the Following by pressing the indicated Key: | | | | A)dvanced options | | C)olors/screen | | G)eneral options | | H)elp install | | K)eys | | P)rinter options | | Q)uit | | S)ave changes and quit | | T)ab settings | +----------------------------------------------------------------+ Following is a brief explanation of these menu items. They will each be discussed in detail in this chapter. A)dvanced options Contains a variety of configurable options, including those related to video display, DOS memory, and editor menus. C)olors/screen Allows you to change colors of various editor displays when using a color monitor. G)eneral options A miscellaneous category of options. H)elp install Allows you to create your own Help Screen. 2-3 K)eys Allows you to reassign editor commands to different keys. P)rinter options Allows you to set options for printing text, such as page size. Q)uit Terminates the program. You will first be prompted to save or not to save changes. S)ave changes and quit After you have made all of the desired changes, press to save the changes and terminate the program. T)ab settings Allows you to set the physical and cursor tab widths. Choose the category that you wish to customize by pressing the first letter of the corresponding menu item. You will be prompted for a response to each option within the category. Each configuration option will be displayed along with its current value. (The Keys and Help install categories, however, work a little differently in that they 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 . After you have reviewed all options in a category, you will be returned to the main menu where you may select another category. Once you have completed customizing, you may save all the changes you have made by pressing at the main menu prompt. Your changes will be made permanent (that is, effective the next time you execute the editor), and the configuration program will be terminated. If you decide that you do not want to save your changes, press . The prompt "Save Changes (Y/N)?" will be displayed. Simply press . No changes will be saved and the configuration program will be terminated. 2-4 Advanced Options ------------------------------------------------------------------------- This section contains a list of the Advanced Options which can be customized using the configuration program. The configuration program prompt, the default value, and a description are given for each option. - Test for presence of EGA or VGA adapters (Y/N)? [Y] : For Concurrent PC-DOS (a Digital Research version of DOS) users only, this option should be set to . - Test for presence of enhanced keyboard (Y/N)? [N] : If your system has an enhanced (101 key) keyboard then set this option to and QEdit will recognize the additional keys such as F11, F12, and grey cursor keys. +---------------------------------+ | QEdit Tip: | | Many TSR's, 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 . | +---------------------------------+ - 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. Selecting will tell QEdit not to change the cursor size. - Fast screen updating with "flicker" OK (CGA's only)(Y/N)? [N] : If QEdit determines that your system has a Color/Graphics Adapter card (CGA), the editor will not write to the screen at full speed in order to avoid "snow" (a sparkling appearance on the screen that results from updating the screen too quickly). If your system has a CGA card and the screen updates too slowly, try setting this option to . - Number of rows on physical screen [25..100] [25] : For Micro Display Systems (MDS) users ONLY. If your Genius Video System supports more than a 25-line screen, then specify that number here. - 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 pressed in Insert mode. This means that the part of the line following the cursor will be inserted on a new line. If Insert mode is OFF, the Return command will simply place the cursor at the beginning of the next line. 2-5 If you select for this option, the Return command will always act as if Insert mode is OFF. Return will move 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 a block is not marked, and you execute the Cut or Copy command, the current cursor line will be affected if you enter for this option. - Amount of memory to reserve from DOS (in paragraphs) [0,8..32767] [0] : COMMAND.COM normally occupies the high end of DOS memory. If a program uses all available DOS memory, then COMMAND.COM can be overlayed and will have to be reloaded when the application is finished. This really is not a problem on a hard disk system, as the reload takes a very short time. On a diskette based system, the delay can be somewhat annoying. Specifying a value of 1400 should keep COMMAND.COM from having to be reloaded on any DOS version through 3.3. Please note that this will deny QEdit of an additional 22k of memory. - Code generated by ALT numeric keypad [0] : The numeric keypad can be used to enter just about any of the characters in the IBM PC character set. Characters are entered by holding down the key and pressing the decimal number(s) that represents that character. On IBM PC's this action returns a scan code of 0. A small number of compatible PC's return a different scan code. If your PC returns a different scan code for the numeric keypad, enter it here. - Do you want the ESCAPE command to invoke the menus (Y/N)? [Y] : By default, the Escape command displays the "Pop-Down" menus, when executed outside of the menus or any QEdit prompts. If you do NOT want the Escape command to do this, select for this option. - Do you want to invoke the editor at a specified line number (Y/N)? [N] : If you choose , QEdit will position the cursor at a specified line number in a file when the file is loaded into the editor. For example, to load "file1" at line number 125, simply type "q file1 125 " from the DOS command line or "file1 125" at any QEdit "file to edit" prompt. 2-6 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, the default value, and a description are given for each option. - Statusline position: "T" for top, "B" for bottom [T] : The Status Line may be positioned at the top or at the bottom line of the screen. - Statusline fill character [ ] : This character is used to "break up" the information on the editor's Status Line. The default is a space. For example, if the dash character is specified then the Status Line would look like this: +----------------------------------------------------------------------+ |L 15-- C 15---IAW-R-B--411K-----*c:\qedit\qedit.doc-------------------| +----------------------------------------------------------------------+ - Do you want the display "boxed" (Y/N)? [N] : The editing screen may be completely enclosed in a box. - Do you want the original screen restored upon termination (Y/N)? [Y] : QEdit can optionally restore the original screen upon exiting the program. Be aware that selecting this option takes up 4k of memory. But it is very handy after long uninterrupted editing sessions to see what you were doing before you started. - Do you want "snow" checking (Y/N)? [Y] : If QEdit determines that your system has a Color/Graphics Adapter card (CGA), the editor will not write to the screen at full speed in order to avoid "snow" (a sparkling appearance on the screen that results from updating the screen too quickly). If you have a COMPAQ, ZENITH, or other color adapter that allows full speed screen updating without "snow", then set this option to . 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] : This is the number of columns that QEdit should scroll when you enter the ScreenLeft or ScreenRight commands. 2-7 +--------------------------------------------------------------------------------+ |Attribute chart/guide. [0..127] | | | |[ 0][ 1][ 2][ 3][ 4][ 5][ 6][ 7][ 8][ 9][ 10][ 11][ 12][ 13][ 14][ 15]| |[ 16][ 17][ 18][ 19][ 20][ 21][ 22][ 23][ 24][ 25][ 26][ 27][ 28][ 29][ 30][ 31]| |[ 32][ 33][ 34][ 35][ 36][ 37][ 38][ 39][ 40][ 41][ 42][ 43][ 44][ 45][ 46][ 47]| |[ 48][ 49][ 50][ 51][ 52][ 53][ 54][ 55][ 56][ 57][ 58][ 59][ 60][ 61][ 62][ 63]| |[ 64][ 65][ 66][ 67][ 68][ 69][ 70][ 71][ 72][ 73][ 74][ 75][ 76][ 77][ 78][ 79]| |[ 80][ 81][ 82][ 83][ 84][ 85][ 86][ 87][ 88][ 89][ 90][ 91][ 92][ 93][ 94][ 95]| |[ 96][ 97][ 98][ 99][100][101][102][103][104][105][106][107][108][109][110][111]| |[112][113][114][115][116][117][118][119][120][121][122][123][124][125][126][127]| | | |Select attributes from the chart above. | +--------------------------------------------------------------------------------+ The chart above is for use with the following Screen Color Options. 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 will 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. - Blocked Text [112]: The color used for marked Blocks. - Error msgs [112]: The color used for warning and error messages. - Text Area [7]: The color used for normal text (the editing screen). - Status Line [9]: The color used for the Status Line. - Cursor Line [15]: The color used for the cursor line. Reverts to normal when a block is marked. - Messages [15]: The color used for QEdit messages. - Hi-lited items [9]: The color used for "found" search strings when using the Find and FindReplace commands. - EOF line/indicator [15]: The color used for the "end of file" line. 2-8 - Help screen [112]: The color used for the Help Screen. - Box borders [15]: The color used for box borders. - PopUp windows [15]: The color used for the background of the "Pop-Down" menus. - Menu items [15]: The color used for items within menus. - Selected Menu items [112]: The color used for selected items within menus. General Options ------------------------------------------------------------------------- This section contains a list of the General Options which can be customized using the configuration program. The configuration program prompt, 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] : If you want the DelCh command to be restricted so that it only works on the current line, then select for this option. If you select , the command will work across line breaks. This means that if you issue DelCh at the end of the line, the following line will be joined to the end of the cursor line (just as if you had issued a JoinLine command). - Do you want the PQuit, Exit, and File commands 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. Enter to terminate. - Do you want the editor to start in Wordwrap Mode (Y/N)? [N] : If you want WordWrap mode to be ON each time QEdit is executed, then set this option to . Refer to the "Word Processing Commands" section of Chapter 1 for more information on WordWrap. - Default right margin for Wordwrap [1..512] [60] : This is the default right margin setting each time QEdit is executed. Refer to the "Word Processing Commands" section of Chapter 1 for more information. 2-9 - Do you want the editor to start in Insert Mode (Y/N)? [Y] : If you want Insert mode to be ON each time QEdit is executed, then set this option to . 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] : If you want AutoIndent mode to be ON each time QEdit is executed, then set this option to . Refer to the "Modes" section of Chapter 1 for more information on AutoIndent mode. - Load wildcarded filespecs from the command line (Y/N)? [Y] : When QEdit encounters a wildcarded file specification (* or ?) from the DOS command line, it will do one of two things depending on this option setting. If you select , the editor will load every file that matches the wildcarded specification. (For example, if you entered "q *.doc", QEdit would load all files with the extension ".doc"). However, if you select , QEdit will display a "Pop-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 and pressing . - Load wildcarded filespecs from inside the editor (Y/N)? [N] : This option is similar to the previous one, except that it refers to the EditFile command rather than the DOS command line used at startup. If you use a wildcard character with EditFile it will either load all matching files, or show you a list of matching files, depending on your choice for this option. Select to load all matching files and to display a list of matching files. - Do you want the editor to start in "enter matching" mode (Y/N)? [N] : When ON, the double quote, parenthesis, and square bracket keys all automatically enter the matching character when the left character is entered. For example, typing the '[' key automatically enters a ']' immediately following. - Use CMODE for .c and .h files (Y/N)? [Y] : C mode is included primarily for editing C Language programs. C mode is only in effect when AutoIndent mode is also ON. When C mode is active, typed on a line containing a '{' does a normal return and then issues a TabRt command. Subsequently, when a '}' is typed, a TabLt command is issued. - Default number of deleted lines to keep per file [0..300] [30] : QEdit saves a certain number of deleted lines and blocks, which can later be recalled using the UnKill command. This option allows you to select the maximum number of lines QEdit can save for every edited file. 2-10 - Remove trailing blanks from edited lines (Y/N)? [Y] : When you edit a line of text, QEdit can either remove trailing blanks from that line or leave it as is. For most purposes, the remove option is preferable, as it will generally create smaller files. - Delete white space after words with DelRtWord command (Y/N)? [Y] : If you enter the DelRtWord command, it deletes the "word" to the right of the cursor. This option causes DelRtWord to delete the blank space which follows the word as well. - Terminate files with a Control Z (Y/N)? [N] : MS/PC-DOS versions 2.0 thru 3.3 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 for this option. - Do you want "backups" of saved files (Y/N)? [Y] : Select if you want a backup file (an image of the file before you did any editing) with the .bak extension saved each time you save a file. - Prompt for filename on open window (Y/N)? [N] : If you enter the HorizontalWindow command, QEdit can either prompt you for the name of the file you want to load into the new window or load the next file in the ring into the new window (in the latter case, if only one file is being edited another window for the same file is opened). To have QEdit prompt you for a filename, select . To have it load the next file in the ring, select . - Close window when a file is quit (Y/N)? [Y] : If you enter any command which discards a file from the editor whenever more than one window is open, QEdit can either load the next file in the ring into that window or close that window. To have QEdit close the window, select . To have it load the next file in the ring, select . - Display End Of File marker (Y/N)? [Y] : QEdit can optionally display a line at the end of the file in the following format: <*** End of File ***> 2-11 - Insert line blocks ABOVE the cursor line (Y/N)? [N] : Line blocks can either be inserted (with the Paste, CopyBlock, or MoveBlock command) above or below the current cursor line. - Default Find options [IWB] [I]: Select the default search options when using the Find command. The options are: I - Ignore Case. The Find command will ignore lower and upper case when searching for a matching string. W - Words Only. The Find command will search for matching strings which are whole words only. For example, with the "W" option on, searching for the string "not", QEdit would ignore strings such as "cannot", "notes", etc. and only identify occurrences of the string "not" delimited by spaces. B - Backwards Search. This option causes the Find command to begin with the current cursor position and search backwards toward the beginning of the file. Note that even when these options are not selected as defaults, they can still be selected from within the editor whenever the Find command is executed. - Default FindReplace options [IWBN] [I]: Select the default search and replace options when using the FindReplace command. The options are: I - Ignore Case. The FindReplace command will ignore lower and upper case when searching for a matching string. W - Words Only. The FindReplace command will search for matching strings which are whole words only. For example, with the "W" option on, searching for the string "not", QEdit would ignore strings such as "cannot", "notes", etc. and only identify occurrences of the string "not" delimited by spaces. B - Backwards Search. This option causes the FindReplace command to begin with the current cursor position and search backwards toward the beginning of the file. N - No Prompting. The FindReplace command will not prompt when it identifies a matching string; instead, all occurrences of the search string will be replaced with the new string. 2-12 Note that even when these options are not selected as defaults, they can still be selected from within the editor whenever the FindReplace command is executed. - Default file extension number 1 [.pas]: - Default file extension number 2 [.inc]: - Default file extension number 3 [.asm]: - Default file extension number 4 [.c]: - Default file extension number 5 [.h]: - Default file extension number 6 [.doc]: Six default file extensions are provided to save keystrokes each time a filename to edit is entered. These file extensions are used whenever QEdit is executed with a filename from the command line or whenever the EditFile command is entered. When using QEdit, if the filename entered does not have 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 will repeat the process with the other default file extensions. If no files were found, then QEdit will create a new file as originally named. 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 entering the QuickHelp command. 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 entered. 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-13 2. Run QCONFIG.EXE and select option from the menu. 3. You will be prompted for the name of the Help file just created. Enter that name. That is all there is to it! The next time you enter QuickHelp from within QEdit, your customized Help Screen will be displayed. Keyboard Configuration ------------------------------------------------------------------------- QEdit provides the extremely helpful capability of assigning editor commands (and 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 or you may wish to reassign commands completely 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 smoother and 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. WordStar command keys can be emulated using the WSKEY.DAT Keyboard Definition file. Brief command keys can be emulated using the BRIEF.DAT Keyboard Definition file. 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 B, contains a complete list of configurable keys. Control keys are specified with a "^". For example: ^f1 or ^F1 specifies Control F1 ^c or ^C specifies Control C ^PgUp specifies Control PgUp 2-14 Alternate keys are specified with a "@". For example: @f1 or @F1 specifies Alt F1 @c or @C specifies Alt C @PgUp specifies Alt PgUp Shift keys are specified with 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 backspace Backspace ^backspace DelLtWord @a DropAnchor ^a WordLeft +---------------------------------+ | QEdit Tip: | | The configuration program | | ignores the case of the | | command, as well as any | | underscores that may be | | embedded. This means that | | 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 to a "twokey". A twokey consists of two distinct keystrokes, such as immediately followed by . To assign a command 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, , enter the following into the Keyboard Definition file: ^f1_f2 Exit 2-15 Through the use of macros, multiple commands and/or text may be assigned to any configurable key (Macros, however, cannot be assigned to twokeys). To define a macro, specify MacroBegin as the first command, followed by any combination of text and QEdit commands, each separated by a space. Text should be enclosed in single or double quotes. The commands and/or text must all fit on one line, not exceeding 255 characters in length. Example: f1 MacroBegin EditFile 'help.dat' Return This macro would load the file 'help.dat'. Note that the Return command is issued after the text. This is required to terminate the QEdit prompt. Example: @t MacroBegin GSave Dos 'tpc ' CurrentFilename Return Now, when you press , all changed files will be saved and the Turbo Pascal compiler will be invoked on the current file. Example (the following must appear on 1 line in the Keyboard Definition file): @f1 MacroBegin EditFile 'errors.lst' Return Quit Dos 'tcc ' CurrentFilename ' >errors.lst' Return Return HorizontalWindow EditFile 'errors.lst' Return This macro will run the Turbo C compiler on the current file, saving the results to a file called "errors.lst", and loading that file into another window after the compile is finished. Additional examples can be found in Appendix D. 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. 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 loaded. 2-16 To customize the keyboard using one of the supplied word processor emulation Keyboard Definition files, skip to step number 6 below. To create your own Keyboard Definition file, do the following: 1. Load the file QCONFIG.DAT into QEdit (from the DOS command line type "q qconfig.dat "). 2. Rename the file using the ChangeFilename command . 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 Keyboard Definition file section above. 5. Save the file and exit QEdit by pressing . 6. Run QCONFIG.EXE and select option 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 will be incorporated into the editor program, Q.EXE. The QCONFIG menu will again appear. Press to save your changes and terminate the program. 9. 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, the default value, and a description are given for each option. - Default left margin for printing [0..80] [0]: This is 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..400] [0]: QEdit will send a formfeed character to the printer after printing this number of lines. If you do NOT want QEdit to send formfeeds (continuous printing), select zero. 2-17 - Add formfeed after printing (Y/N)? [Y] : Should QEdit send a formfeed when printing is complete? If you select , your forms should be correctly lined up in preparation for the next printing operation. Tab Settings ------------------------------------------------------------------------- This section contains a list of all Tab Setting Options which can be customized using the configuration program. The configuration program prompt, 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] : If you want Physical Tab Expansion mode to be ON each time QEdit is executed, then set this option to . Refer to the "Modes" section of Chapter 1 for more information on Physical Tab Expansion. - Do you want the editor to start in Tabs Out Mode (Y/N)? [N] : If you want Tabs Out mode to be ON each time QEdit is executed, then set this option to . Refer to the "Modes" section of Chapter 1 for more information on Tabs Out. - Default physical tab width [2,4, or 8] [8]: This is the tab width that QEdit uses when Physical Tab Expansion mode or Tabs Out mode are ON. - Default Cursor tab width [2..12] [8]: This is the tab width that QEdit uses when you enter the TabRt and TabLt commands. - Default file extension number 1 for default tabs [.pas]: Physical tab width for above [2]: Cursor tab width for above [2]: - Default file extension number 2 for default tabs [.inc]: Physical tab width for above [2]: Cursor tab width for above [2]: - Default file extension number 3 for default tabs [.asm]: Physical tab width for above [8]: Cursor tab width for above [8]: 2-18 - Default file extension number 4 for default tabs [.c]: Physical tab width for above [4]: Cursor tab width for above [4]: - Default file extension number 5 for default tabs [.h]: Physical tab width for above [4]: Cursor tab width for above [4]: - Default file extension number 6 for default tabs [.doc]: Physical tab width for above [8]: Cursor tab width for above [8]: 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, these defaults are used. Otherwise, the defaults set in the first two Tab Settings are used. - Do you want the editor to start in Smart Tabs Mode (Y/N)? [N] : If you want Smart Tabs mode to be ON each time QEdit is executed, then set this option to . Refer to the "Modes" section of Chapter 1 for more information on Smart Tabs. 2-19 Chapter 3. QEdit Command Reference ========================================================================= This chapter contains a description for each of the QEdit commands. Where appropriate, the default key assignments are provided. Additionally, sequences are given for those commands which can be accessed through the "Pop-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 or ------------------------------------------------------------------------- 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 will only move the cursor to the next line. AppendScrbuff ------------------------------------------------------------------------- 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 will be created. 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, however, the cursor line will still be appended to the end of the previous line. 3-2 BegFile ------------------------------------------------------------------------- Positions the cursor at column one on the first line of the current file. BegLine ------------------------------------------------------------------------- Positions the cursor at column one of the current cursor line. BegScreen ------------------------------------------------------------------------- Positions the cursor at the top line of the current window. The cursor column does not change. ChangeFilename or or ------------------------------------------------------------------------- Changes the name of the current file. QEdit will prompt for the new name. If the file already exists, you will be required to confirm that you still want to rename the file. The current file is marked as being a changed file. (An asterisk will appear on the Status Line preceding the filename.) This command will have no effect on disk files, until the renamed file is saved. CloseWindow or ------------------------------------------------------------------------- Closes the current window, unless it is the only window which is open, in which case the command has no effect. Copy ------------------------------------------------------------------------- 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 or ------------------------------------------------------------------------- Copies the marked Block to the cursor position. If the Block is a character Block (created using the DropAnchor, MarkCharacter, or MarkBlockBegin/End commands) 3-3 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 (Refer to the "General Options" section of Chapter 2 for more information). The Block remains marked. Blocks may be copied from one file to another. CopyOverBlock ------------------------------------------------------------------------- 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. It may only be used in response to QEdit prompting for a filename. CursorDown ------------------------------------------------------------------------- Moves the cursor downward in the file to the next line. CursorLeft ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- Moves the cursor upward in the file to the previous line. 3-4 Cut ------------------------------------------------------------------------- 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. DelCh ------------------------------------------------------------------------- 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 or ------------------------------------------------------------------------- Deletes the currently marked character or line Block. If there is not a Block marked in the current file, this command has no effect. Use the Cut command to delete a column Block. DelLine or ------------------------------------------------------------------------- Deletes the cursor line. The line following the cursor line becomes the new cursor line. DelLtWord ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- 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. 3-5 DelToEol or ------------------------------------------------------------------------- Deletes text on the cursor line, from the cursor position to the end of line. Dos ------------------------------------------------------------------------- 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 here. | | These include the DOS print | | and graph commands and | | memory-resident programs | | such as Sidekick and Superkey.| +---------------------------------+ DropAnchor ------------------------------------------------------------------------- This command is used to mark a character Block. Initially executing this command will mark one end of a Block at the cursor position. As the cursor is moved, the Block will "grow" with it. Executing this command again will mark 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 ------------------------------------------------------------------------- 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 or or ------------------------------------------------------------------------- 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 will 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 will simply make that file the current file. 3-6 EndFile ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- Positions the cursor immediately following the last non-blank character on the cursor line. EndScreen ------------------------------------------------------------------------- The cursor is positioned on the last line of the current window. The cursor column does not change. Escape ------------------------------------------------------------------------- If executed while editing, the "Pop-Down" menus are displayed. Otherwise, this command aborts any editor prompt. ExecuteScrap ------------------------------------------------------------------------- Plays back the latest macro that was created using the MacroRecord command. Exit ------------------------------------------------------------------------- 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 (Y/N)?". Pressing will save and then discard the file. Pressing will discard the file without saving any changes. 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. 3-7 File or or ------------------------------------------------------------------------- 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. Find or ------------------------------------------------------------------------- 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: [I] Ignore the case of the search string. [W] Search for whole words only. [B] Search backwards from the current cursor position. FindReplace or ------------------------------------------------------------------------- Searches and replaces strings within the current file. The User is prompted for a search string, a replace string, and options. Available options are: [I] Ignore the case of the search string. [W] Search for whole words only. [B] Search backwards from the current cursor position. [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. [G] Replace the search string with the replace string for this and all occurrences throughout the file without any further prompting. [Q] Terminate the FindReplace process. 3-8 GetPrev ------------------------------------------------------------------------- Duplicates the character immediately above the cursor at the cursor position. GetScrbuff ------------------------------------------------------------------------- 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 or or ------------------------------------------------------------------------- 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 "Save Changes (Y/N)?" for each modified file. For example, if you have ten files loaded and two of them have been modified, then you will be prompted to save changes twice, once for each modified file. GFile or ------------------------------------------------------------------------- Instructs the editor to discard all files which have been loaded. Any files which have been modified will be saved. If no files have been changed, this command immediately terminates the editor and returns control to DOS. GotoBlockBeg ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- 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. 3-9 GotoLine ------------------------------------------------------------------------- Positions the cursor at the requested line. The editor will prompt for the desired line number. GPQuit or or ------------------------------------------------------------------------- Issues the PQuit command for all files that have been loaded. GrowWindow or ------------------------------------------------------------------------- Increases the size of the current window if there are multiple windows on the screen. The editor will prompt for the direction in which to increase the size. The ShrinkWindow command can be executed from this prompt to decrease the window size. GSave ------------------------------------------------------------------------- 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 or ------------------------------------------------------------------------- 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. 3-10 InsertLine or ------------------------------------------------------------------------- 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. JoinLine or ------------------------------------------------------------------------- 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. KillFile ------------------------------------------------------------------------- Erases the currently edited file from disk. The file remains loaded in the editor and is marked as being a changed file. (An asterisk will appear on the Status Line preceding the filename.) This command is very useful when available disk space is low. LineDown ------------------------------------------------------------------------- Scrolls the text one line at a time toward the end of the file. The cursor remains stationary on the screen. LineUp ------------------------------------------------------------------------- Scrolls the text one line at a time toward the beginning of the file. The cursor remains stationary on the screen. 3-11 Literal ------------------------------------------------------------------------- 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 form-feed character (ASCII 12), you would first press then . To insert a "null" character into the file, press and then . (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. MacroRead ------------------------------------------------------------------------- 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 or ------------------------------------------------------------------------- Toggles (ON and OFF) macro recording. If macro recording is OFF, this will turn macro recording ON and prompt for a key to which to assign the macro. After pressing the desired key (see Appendix B for a list of available 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 at the prompt. A macro assigned to the scrap area may be played back by entering the ExecuteScrap command. The scrap area will be updated each time the MacroRecord command is executed. MacroWrite ------------------------------------------------------------------------- Saves all currently defined macros to a binary disk file. The editor prompts for the name of the file. 3-12 MainMenu ------------------------------------------------------------------------- Activates the "Pop-Down" style 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 ------------------------------------------------------------------------- Scrolls the text in the window so that the cursor line becomes the center line of the window. MakeTopofScreen ------------------------------------------------------------------------- Scrolls the text in the window so that the cursor line becomes the top line of the window. MarkBlockBegin or ------------------------------------------------------------------------- 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 or ------------------------------------------------------------------------- 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. 3-13 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 ------------------------------------------------------------------------- This command is used to mark a column Block. Initially executing this command will mark the current cursor position. As the cursor is moved, the Block will "grow". Executing this command again will mark 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 or ------------------------------------------------------------------------- This command is used to mark a line Block. Initially executing this command will mark the current cursor line. As the cursor is moved, the Block will "grow" with it line by line. Executing this command again will mark 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. Match ------------------------------------------------------------------------- Will find 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 or ------------------------------------------------------------------------- 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 3-14 is inserted before or after the current cursor line, depending on the configuration setting (Refer to the "General Options" section of Chapter 2 for more information). The Block remains marked. Blocks may be moved from one file to another. NextFile or or ------------------------------------------------------------------------- Makes the next file in the ring the new current file when multiple files are loaded. NextWindow or ------------------------------------------------------------------------- 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 will become the current window. OneWindow or ------------------------------------------------------------------------- Closes all windows except the current window and expands it to occupy the entire screen. PageDown ------------------------------------------------------------------------- Scrolls the text toward the end of the file, one page-full less one line, at a time. PageUp ------------------------------------------------------------------------- Scrolls the text toward the top of the file, one page-full less one line, at a time. Paste ------------------------------------------------------------------------- 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. Refer to the "General Options" section of Chapter 2 for more information. 3-15 PasteOver ------------------------------------------------------------------------- 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 it at the current cursor position by overlaying existing text and without shifting text to the right. PQuit or or ------------------------------------------------------------------------- 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 User is warned that changes will be lost. If multiple files are being edited, this command will make 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 or