THE SEMWARE(R) EDITOR JUNIOR (formerly QEdit(R)) Version 4 R E F E R E N C E M A N U A L

Please note that this is the shareware version of the documentation, and has been abridged from the original document that accompanies the registered version of the software. The licensed commercial version includes the complete indexed, bound manual. Copyright 1985-1995 SemWare Corporation. All rights reserved worldwide. This software embodies valuable trade secrets proprietary to SemWare Corporation. SemWare is a registered trademark of SemWare Corporation. All other trademarks and registered trademarks referenced in this document are the property of their respective owners. The QEdit registered trademark is used under license from Robelle Consulting Ltd. The SemWare(R) Editor Junior (TSE Jr.) software products were formerly called QEdit(R) (QEdit Advanced, QEdit TSR, and QEdit for OS/2). Specifications subject to change without notice. The READ.ME file contains information which supplements this documentation. �������������������������������������������������������Ŀ � � � SALES AND SUPPORT � � � � SemWare Corporation � � Suite C3A � � 4343 Shallowford Road � � Marietta, GA 30062-5022 � � U.S.A. � � � � � � Orders ONLY: (800) 467-3692 Inside USA, 9am-5pm ET � � � � Other Voice Calls: (770) 641-9002 9am - 5pm ET � � � � InterNet: sales@semware.com � � or tech.support@semware.com � � CompuServe: GO SEMWARE (select Section 6) � � or 75300,2710 � � � � FAX: (770) 640-6213 24 hours � � BBS: (770) 641-8968 24 hours �

� � ���������������������������������������������������������

_______ ____|__ | (R) --| | |------------------| ____|__ | Association of | | |_| Shareware |__| o | Professionals -----| | |--------------------|___|___| MEMBER This program is produced by a member of the Association of Shareware Professionals (ASP). ASP wants to make sure that the shareware principle works for you. If you are unable to resolve a shareware-related problem with an ASP member by contacting the member directly, ASP may be able to help. The ASP Ombudsman can help you resolve a dispute or problem with an ASP member, but does not provide technical support for members' products. Please write to the ASP Ombudsman at 545 Grover Road, Muskegon, MI 49442-9427, or send a CompuServe message via CompuServe Mail to ASP Ombudsman 70007,3536.

THE SEMWARE EDITOR JUNIOR SHAREWARE SOFTWARE LICENSE ���������������������������������������������������� This version of The SemWare Editor Junior (the "Software") is NOT public domain or free software, but is being distributed as "shareware" for EVALUATION PURPOSES ONLY. Your use of this Software indicates your agreement to the terms and conditions of this License. COPYRIGHT, PROPRIETARY RIGHTS ����������������������������� The SemWare Editor Junior (TSE Jr.) Software is owned by SemWare Corporation or its suppliers and is protected by United States copyright laws and international treaty provisions. You may not reverse engineer, decompile, disassemble, or create derivative works based on the Software for any purpose other than creating an adaptation to the Software as an essential step in its utilization for your own use. This Software embodies valuable trade secrets proprietary to SemWare; you may not disclose any information regarding the internal operations of this Software to others. USAGE RESTRICTIONS ������������������ SemWare grants a limited license to individuals to use this shareware Software for a 30-day evaluation period on a private, non-commercial basis, for the express purpose of determining whether TSE Jr. is suitable for their needs. At the end of this 30-day evaluation period, the individual must either purchase a license from SemWare for continued use of the Software, or discontinue using TSE Jr. What does this mean? If you use this Software on a continued basis, you must purchase a license for its use. TSE Jr. is NOT free, and we are not giving away free copies. We are giving you the opportunity to try it before paying for a license for continued use. It is that simple. Try it for 30 days. Then either pay for it, or quit using it. Paying for a license to continue using the Software product is not only required, but also allows SemWare to provide support and updates, and stay in business. Licensed users receive printed documentation; a built-in spelling checker; a macro compiler/decompiler (QMAC); additional utilities and configuration files; and a version of the program that does NOT show the opening and closing shareware reminder screens. Registration of the licensed copy entitles the registered user to receive technical support (by phone, fax, our own support BBS, mail, or various electronic services such as CompuServe or InterNet), and makes them eligible for discounts on future versions. Purchasing a license for The SemWare Editor Junior entitles you to use the Software on any and all computers available to you, provided you do not operate the Software on more than one computer or terminal at a time and you do not operate the Software on a network or a multi-user system. If you would like a network or multi-user license, please contact SemWare for details.

DISTRIBUTION, COPYING RESTRICTIONS ���������������������������������� Individuals are granted a limited license to copy the SHAREWARE version of TSE Jr. only for the trial use of other individuals in accordance with the limitations identified in this License, and subject to the following restrictions: 1. You MAY NOT distribute the Software in connection with any other product or service. 2. You MAY NOT make general use of the Software within a company, institution, or agency. 3. You MAY NOT copy or distribute the Software for any consideration or "disk fee". 4. You MAY NOT copy or distribute the Software in modified form. (Any distribution must include ALL FILES supplied by SemWare with the shareware version of The SemWare Editor Junior, WITHOUT ALTERATION.) 5. You MAY NOT distribute the Software documentation, in whole or in part, in printed form. Operators of electronic bulletin board systems (Sysops) are permitted and encouraged to post the shareware version of TSE Jr. for downloading by their users, as long as the above conditions are met. Though a fee may be charged for BBS access, NO FEE may be charged to specifically access or download the TSE Jr. shareware files. Non-profit computer-related User Groups may distribute the shareware version of TSE Jr. provided the above conditions are met. However, such User Groups MAY charge a NOMINAL fee to cover the cost of the disk and copying of the Software. Disk vendors MUST obtain written permission from SemWare before distributing the shareware version of TSE Jr. Certain restrictions apply. Generally, ASP approved vendors are granted permission. For further details, see VENDOR.DOC. WARRANTY DISCLAIMER ������������������� SEMWARE PROVIDES THE SHAREWARE VERSION OF THE SEMWARE EDITOR JUNIOR "AS IS" AND WITHOUT ANY WARRANTY. TO THE EXTENT PERMITTED UNDER APPLICABLE LAW, SEMWARE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SPECIFICALLY, SEMWARE MAKES NO REPRESENTATION OR WARRANTY THAT THE SOFTWARE IS FIT FOR ANY PARTICULAR PURPOSE. SEMWARE SHALL NOT BE LIABLE FOR ANY DAMAGES RESULTING FROM THE USE OF THIS SOFTWARE, INCLUDING BUT NOT LIMITED TO, LOSS OF PROFIT, DATA OR USE OF THE SOFTWARE, OR INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR OTHER SIMILAR CLAIMS, EVEN IF SEMWARE HAS BEEN SPECIFICALLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE FOREGOING LIMITATION MAY NOT APPLY TO YOU.

U. S. GOVERNMENT LICENSEES �������������������������� If you are acquiring the Software on behalf of any unit or agency of the United States Government, the following provisions apply: The Government acknowledges SemWare's representation that the Software and its documentation were developed at private expense and no part of same is in the public domain. The Government acknowledges SemWare's representation that the Software is "Restricted Computer Software" as that term is defined in Clause 52.227-19 of the Federal Acquisition Regulations (FARs) and is "Commercial Computer Software" as that term is defined in Subpart 27.401 of the Department of Defense Federal Acquisition Regulation Supplement (DFARS). The Government agrees that: (i) if the Software is supplied to the Department of Defense (DoD), the Software is classified as "Commercial Computer Software" and the Government is acquiring only "restricted rights" in the Software and its documentation as that term is defined in Clause 252.227-7013(c)(1)(ii) of the DFARS, and (ii) if the Software is supplied to any unit or agency of the United States Government other than the DoD, the Government's rights in the Software and its documentation will be as defined in Clause 52.227-19(c)(2) of the FARs. RESTRICTED RIGHTS LEGEND. Use, duplication or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights In Technical Data and Computer Software clause at DFARS 252.227-7013. SemWare Corporation, 4343 Shallowford Road, Suite C3A, Marietta, Georgia 30062-5022, U.S.A. EXPORT LAW ASSURANCES ��������������������� You acknowledge and agree that the Software is subject to restrictions and controls imposed by the United States Export Administration Act (the "Act") and the regulations thereunder. You agree and certify that neither the Software nor any adaptation thereof is being or will be acquired, shipped, transferred or reexported, directly or indirectly, into any country prohibited by the Act and the regulations thereunder, nor will it be used for any purpose prohibited by the same. GOVERNING LAW AND GENERAL PROVISIONS ������������������������������������ This License and Warranty Disclaimer shall be construed, interpreted and governed by the laws of the State of Georgia, U.S.A. If any provision is found void, invalid or unenforceable, it will not affect the validity of the balance of this License and Warranty Disclaimer which shall remain valid and enforceable according to its terms. This License and Warranty

Disclaimer may only be modified in writing signed by you and a specifically authorized representative of SemWare. All rights not specifically granted in this License are reserved by SemWare.

ORDERING INFORMATION �������������������� Purchasing a license for TSE Jr. allows you to use the product on a regular and/or continuing basis. Registration of your licensed copy of TSE Jr. entitles you to technical support from SemWare, discounts on updates, and access to the Registered User area of our support BBS (770/641-8968, <N81>, 1200/2400/9600 baud, 24 hours a day). With your purchase, you will receive: a licensed copy of TSE Jr. V4.0 with a 90-day limited warranty; a bound, indexed manual; a built-in spelling checker; a macro compiler/decompiler (QMAC); and additional utilities for use with TSE Jr. We offer discounts to educational institutions, full-time students, BBS sysops, US and Georgia government agencies, and various approved Computer-related User Groups. Students must include proof of full-time student status (photocopy of current registration slip or student ID card). BBS sysops must supply the name and number of their BBS, along with any other relevant information. User Groups must be members of our SemWare Supporter program. Call for details. All prices and discounts are subject to change without notice. MULTI-USER LICENSES AND QUANTITY PURCHASES ������������������������������������������ All corporate, business, government, educational, or other commercial, public, or private users of TSE Jr. must be licensed. We offer quantity discounts as well as multi-user licensing. Please call or write for more information. ORDERS OUTSIDE THE U.S.A ������������������������ Please use your MasterCard, VISA, American Express, or Discover card when ordering, or send a check drawn on a US bank payable in US dollars.

***

The SemWare Editor Junior version 4.0, October 1995 * SINGLE-USER LICENSE ORDER FORM *

***

MAIL: SemWare Corporation 4343 Shallowford Rd, Suite C3A Marietta, GA 30062-5022 USA PHONE (Orders ONLY): (800) 467-3692 Inside USA, 9am-5pm ET

FAX: (770) 640-6213 24 hours BBS: (770) 641-8968 24 hours CIS: 75300,2710 InterNet: sales@semware.com OTHER VOICE CALLS: (770) 641-9002 9am-5pm ET

========================================================================== ____ TSE Jr. V4.0 with printed manual ........... @ $59.00 ea SHIPPING (each copy) .... US/Canada/Mexico: $5; Overseas: $12 PURCHASE ORDERS under $100.00, add $6 Billing Fee ........... (Does NOT apply to PREPAID Check or Charge Card orders) SUBTOTAL GEORGIA RESIDENTS please add Sales Tax ................ TOTAL @ 5% $ ______ $ ______ $ ______ $ ______ $ ______ $ ______

(U.S. Dollars drawn on U.S. Bank, payable to SemWare) NOTE: Software is provided on 3-1/2" diskette.

-------------------------------------------------------------------------Payment by: ( )CHECK ( )VISA ( )MC ( )AMEX ( )PO#_____________ (copy attached) ( )DISCOVER

Name: _____________________________________________________________ Company (ONLY if company address):_________________________________ Address: __________________________________________________________ : __________________________________________________________ : __________________________________________________________ Voice Phone: _______________________ FAX: ______________________

Card #: _________________________________ Exp. Date: ______________ Signature of cardholder: __________________________________________

THE SEMWARE EDITOR JUNIOR SOFTWARE IS LICENSED ONLY IN ACCORDANCE WITH THE SEMWARE LICENSE AGREEMENT THAT ACCOMPANIES THE SOFTWARE. Prices subject to change without notice. Call to confirm current prices.

Contact us about quantity discounts and multi-user licenses, as well as discounts for full-time students, BBS sysops, and approved User Groups.

TABLE OF CONTENTS ���������������������������������������������������������������������� INTRODUCTION FEATURES SYSTEM REQUIREMENTS INSTALLATION Tasks to Perform Following Installation Setting Up the Editor on a Laptop System 1. USER'S GUIDE QUICK START Getting Started In the Editor Getting Out MENUS THE STATUSLINE PROMPTS USING A MOUSE Mouse Equipment General Use of the Mouse Using the Pull-Down Menus Positioning the Cursor and Scrolling Text Marking a Block Using the Pop-Up Mouse Menu Working with Windows Summary of Mouse Operations FILES Creating New Files Loading Existing Files Locating a File on Disk Changing the Current Directory from within the Editor Invoking the Editor at a Specific Line Number Multiple Files: The Ring Saving Files and Exiting Read-Only Files VIEWING AND GETTING AROUND IN THE TEXT Cursor Movement Moving Through a File Moving Around on the Screen Moving By Lines and Characters Using Windows Creating Windows Switching Windows Changing Window Size Closing Windows Synchronized Scrolling in Windows FINDING AND REPLACING TEXT Finding Text Replacing Text COPYING, MOVING, CHANGING, AND DELETING TEXT Block Commands Marking and Unmarking a Block CUA-Style Block Marking Manipulating Blocks Directly Manipulating Blocks Using Scrap Buffers Manipulating Blocks Using Scratch Buffers Accessing the Microsoft Windows Clipboard

Examples of Block Commands Non-Block Commands Adding Text Copying Text Moving Text Deleting And Undeleting Text Changing Case Sorting The Kill Buffer - A Safety Net MACROS PRINTING Print Formatting Formfeeds THE SHELL AND DOS COMMANDS Swapping, [JR] Shell Indicator WORD-PROCESSING COMMANDS MODES 2. CUSTOMIZING THE EDITOR INITIATING THE CONFIGURATION PROGRAM THE CONFIGURATION MENU ADVANCED OPTIONS COLORS/SCREEN OPTIONS GENERAL OPTIONS THE HELP SCREEN KEYBOARD CONFIGURATION The Keyboard Definition File Creating a Keyboard Definition File PRINTER OPTIONS TAB SETTINGS 3. COMMAND REFERENCE

INTRODUCTION ���������������������������������������������������������������������� The SemWare Editor Junior (TSE Jr.), formerly called QEdit, is a full-screen text editor for the IBM PC and compatible computers. TSE Jr. is intended for use by those who want a fine-tuned, versatile DOS editor that is inexpensive, and operates efficiently in limited resources. (For those who want a more powerful editor that includes virtual-memory support, a full-featured programming language, and wildcard search and replace capabilities, we offer The SemWare Editor Professional.) This manual describes the use and operation of TSE Jr., and includes a user's guide, a chapter on customizing the editor, and a reference section for editor commands. A separate file, MACRO.DOC, contains information about keyboard macros and the editor's macro language. TSE Jr. 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, it can also be used like a word processor to write documents or letters since it includes many word-processing capabilities. The editor was developed with these goals in mind: * FAST OPERATION - More than anything else, the editor 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 includes: Optional "pull-down" menus. Customizable Help Screen. Complete execution from a single file (Q.EXE). Pop-up file directory and picker.

* COMPACT PROGRAM SIZE - Every effort has been made to keep the program size as compact as possible. Even though memory is getting cheaper all the time, we do not want the editor to require any more memory than absolutely necessary. TSE Jr. is available in three versions: the standard DOS version, the memory-resident DOS version (TSE Jr./Mem-Res), and the OS/2 version (TSE Jr./2). All three versions offer the same rich set of features and behave in much the same manner. This shareware version is based on the standard DOS version of TSE Jr.

FEATURES ���������������������������������������������������������������������� The editor offers a number of powerful features for editing text, both easily and quickly. To put that power at your fingertips, the editor: * Is very fast! * Is highly customizable. The editor can be easily configured the way you like. You can configure ALL of the special keys on the keyboard (Alt, Ctrl, and function keys; <Home>, <PgUp>, etc.), as well as the colors, screen appearance, and many other options. * Is easy to use. An optional "pull-down" menu provides ready access to the editor's commands, and the Help Screen can be customized for your own needs. * Can be used with a mouse. You can optionally perform scrolling, window, block, and menu operations using your mouse. * Is compact. Even with all these features, the editor requires less than 70K of disk space. * Utilizes all available conventional DOS memory (up to 640K). files as large as your computer's memory will allow. Edit

* Allows multi-file editing. The number of files you can edit is limited only by available conventional memory. * Accommodates editing of files with a line length of up to 2032 characters. * Enables you to view files through multiple horizontal, resizable windows. You can have multiple views of the same file or view a different file in each window. * Allows you to simultaneously scroll the text in multiple windows (with synchronized scrolling). * Offers a utility to locate a file when you do not remember the directory in which it exists, or you do not recall the exact name of the file. * Provides up to 99 scratch buffers for cut-and-paste or template operations. You can even select a buffer from a pick list of your current scratch buffers. * Allows you to temporarily exit to DOS (or a DOS shell) and use DOS commands from within the editor. Optionally, the editor can swap to disk or expanded memory to allow even the largest programs (such as compilers) to run without exiting the editor. * Allows you to copy or paste text directly between the current file and the Microsoft Windows Clipboard (or the OS/2 Clipboard, in the OS/2 version of the editor). * Supports numerous character, line, and column Block operations. you prefer, you can configure the editor to recognize CUA-style If

Block marking (using the shifted cursor keys). * Saves deleted words, lines, and Blocks in a deletion buffer for later recall. * Will load multiple files from the DOS command line, with or without wildcard characters. * Allows you to specify up to six default file extensions for use when loading files and determining tab settings. * Provides line-drawing capability to create diagrams and tables. * Supports enhanced (101-key) keyboards. * Supports EGA 43-line mode, and VGA 28-line and 50-line modes. * Offers a built-in Sort command, with options for ascending, descending, and case-insensitive sorting. * Includes many helpful options for finding and replacing text, allowing you to: incrementally search for a string; perform a "global" find or replace (throughout the entire file); perform a "local" find or replace (limited to a marked Block); and anchor a find or replace to the beginning or end of a line or Block. * Provides the ability to shift entire Blocks using the tab left and right commands (TabLt and TabRt). * Allows you to fill a Block with a specified character (FillBlock command). * Offers an optional large, flashing block cursor as a configuration option. This is especially helpful for use on laptop computers. * Provides a pop-up ASCII chart that allows you to directly insert the selected character into your text. * Allows you to display a visual directory tree to change the current directory from within the editor. * Includes various tab-handling options, including variable, smart, and fixed tabs. For your word-processing needs, the editor: * Contains a fully-integrated Spell Checker (in the registered version) that suggests spellings for misspelled words (less than 200K additional disk space required to load dictionary). * Provides wordwrap and paragraph-reformat capabilities. * Includes options to change the case of characters (Flip, Lower, Upper commands). * Gives you the ability to center the text on a line (CenterLine command).

* Includes commands that allow you to swap adjacent characters, words, and lines. * Offers various printing options, such as specification of top and bottom print margins (SetPrintBotMargin, SetPrintTopMargin commands), assignment of the print device, ability to adjust line spacing, and inclusion of line numbers. * Allows you to configure the date and time formats. * Includes an option to display the hex and decimal values of the current character on the StatusLine. To further enhance the editor's operation, the macro facility: * Allows you to create macros that will execute a series of commands and keystrokes by pressing a single key. * Offers a simple macro scripting language. * Includes the ability to load and/or execute macros from the DOS command line, as well as an option to execute an automatic startup macro. * Supports conditional logic (Jump, JTrue, JFalse commands). To assist you in your programming tasks, the editor: * Provides "C mode", which utilizes automatic indentation for C-language programming. * Locates matching braces and parentheses, which is very useful for entering and maintaining source code. * Allows you to execute command-line compilers from within the editor, using the macro facility. * Offers a DOS command-line option (-n) for jumping to a specific line number within a file upon loading.

SYSTEM REQUIREMENTS ���������������������������������������������������������������������� The editor requires an IBM PC or 100% compatible computer. requirements are: * 128 KB of memory for the standard DOS version. * PC-DOS or MS-DOS, v2.0 or greater, for the DOS versions. * One diskette drive. * Either a color or a monochrome monitor with 80-column display. * Less than 70 KB of disk space (or less than 250 KB if the spell-checker dictionary is installed, in the registered version). * The editor program itself: Q.EXE. Once configured, no other files are necessary for operating the editor. (Note: Additional files are required to use the spell checker that is included in the registered version.) MINIMUM

INSTALLATION ���������������������������������������������������������������������� Tasks to Perform Following Installation ��������������������������������������� If you placed the editor in a directory that is not already listed in your path, you may want to modify the PATH statement in your AUTOEXEC.BAT to include the editor directory. This allows you to run the editor from any directory on your machine. Please review the contents of the READ.ME file included with the software. This file contains important information (usage information, new features, changes, etc.) that became available after this manual was created. The READ.ME file also contains a complete list of the files included with the software. A partial list is included here: TSE Jr. ����������� Q.EXE File Description ������������������������������������������ The SemWare Editor Junior program. Once configured, this is the only file needed to run the basic editor. Note: QCONFIG.EXE QCONFIG.DAT QHELP.TXT Note: Configuration of the editor requires additional files. This program allows you to

The configuration program. customize the editor.

The default Keyboard Definition file. Used by QCONFIG.EXE. The default Help text. Used by QCONFIG.EXE.

After you have tried TSE Jr., you may wish to permanently customize some of the options. The editor comes with a configuration program, QCONFIG, that makes customizing the editor easy. See Chapter 2, "Customizing the Editor," for instructions.

Setting Up the Editor on a Laptop System ���������������������������������������� If you have a laptop computer (one with an LCD or plasma display), you should set your screen parameters before using the editor. For the best operation, enter MODE BW80 at the DOS command line before running the editor. Alternatively, you can install the editor for a black-and-white screen with the customization program, QCONFIG. Refer to Chapter 2, "Customizing the Editor." With this customization program, you should choose "1" (Monochrome) from the "Colors/screen" options, when prompted with "Startup attribute set:". ��������������������������������������������������������������Ŀ � Tip: �

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

CHAPTER 1. USER'S GUIDE ���������������������������������������������������������������������� QUICK START ���������������������������������������������������������������������� In the editor, 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 the editor is simple and straightforward. To initiate the editor, type "Q <Enter>". The editor will respond with a prompt for the name of the file to be edited. ��������������������������������������������������������������Ŀ � File(s) to edit: � � � ���������������������������������������������������������������� Enter the filename. The filename may include the full path designation.

��������������������������������������������������������������Ŀ � Tip: � � At any "File(s) 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 to edit> <Enter>

In the Editor ������������� Once you are in the editor, the cursor movement keys (Left, Right, Up, Down, Home, End, ...) allow you to move around in the text. To obtain a Help Screen, simply press <F1>. other key) returns you to the text. Pressing <F1> again (or any

To obtain a menu of editing commands, press <Esc>. You may then use the cursor movement keys to position the cursor bar over the desired command. Press <Enter> to execute the command. ��������������������������������������������������������������Ŀ � Tip: � � Within a prompt for a command, press <Esc> to cancel the �

� command (and the prompt). � ���������������������������������������������������������������� Getting Out ����������� The easiest way to get out of the editor and save all the work you have done is to enter <Alt F> <G>. MENUS ���������������������������������������������������������������������� The editor provides an easy-to-use "pull-down" style menu system. The menu system is very helpful while learning to use the editor. It is also handy for executing seldom-used commands. To access the menus and execute a command: 1. Press <Esc>. The main menu is displayed at the top of the screen. The main menu consists of a list of sub-menu items. 2. Select a sub-menu item. To do this, either move the cursor bar to the desired item and press <Enter>; or type the highlighted character, or "quick-key," of the desired item. 3. Execute a command. sub-menu items. This is done in the same manner as selecting the The User is

Here is an example of the pull-down style menu system. about to execute the CopyBlock command.

�����������������������������������������������������������������Ŀ �File Window �Block� Search Print Macro Editing Other Quit � ��������������������������������Ŀ��������������������������������� � Mark Line � � Mark Character � � Mark Column � � Mark Begin � � Mark End � � UnMark � �������������������Ĵ ��Copy Block��������� � Move Block � � Delete Block � � Copy Over � � Fill... � �������������������Ĵ � Sort � � Ignore Case [Off] � � Descending [Off] � ��������������������� As an added convenience, the default configuration of the editor allows you to directly access the File, Print, and Quit sub-menus by pressing <Alt F>, <Alt P>, or <Alt Q>, respectively.

You can execute many editing commands using the menus. As you become more familiar with the editor, you may wish to use the <Ctrl>, <Alt>, and function key assignments, instead of the menus, to execute commands more quickly. THE STATUSLINE ���������������������������������������������������������������������� At the top of the editing screen is the StatusLine. The StatusLine constantly displays information about the file you are currently editing. The StatusLine is shown below with a description of the information displayed. �������������������������������������������������������������������Ŀ �L 15 C 15 IAWRBS 411K *c:\semware\status.doc 20h,32� ��������������������������������������������������������������������� � � ������ � � � ����������������������� � � ������ � � � � � � ������ � � � � � � ������ � � � ���� The hex and decimal � � ������ � � � value for the character � � ������ � � � at the cursor position, � � ������ � � � if this option is ON. � � ������ � � � � � ������ � � ���� The path and name of the � � ������ � � file you are editing � � ������ � � � � ������ � ���� *) Indicates file has been changed � � ������ � � � ������ ������ Amount of available memory � � ������ (DOS versions only) � � ������ � � ��������� S) Indicates Synchronized Scrolling mode is ON � � ����� � � �������� 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, see the file MACRO.DOC.

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

PROMPTS ���������������������������������������������������������������������� When the editor needs information from the user (such as the name of a file to edit, a search string, etc.), a prompt is issued. The prompt consists of a message, telling what information is requested, and an area for the user to enter a response. The following commands are available in prompts (if assigned to a key): AsciiChart BackSpace BegLine CopyBlock CurrentFilename CursorLeft CursorRight DelCh DelLine DelToEol DirTree EndLine Escape Literal LocateFile Paste Pause Return ToggleInsert

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

USING A MOUSE ���������������������������������������������������������������������� You can optionally use the mouse to perform a wide range of functions within the editor, including selecting items from a menu or a pick list, positioning the cursor on the screen, scrolling text, marking and manipulating Blocks, and creating and moving between windows. Mouse Equipment ��������������� To use a mouse in the editor, the mouse must be enabled. This is done by setting the configuration option "Enable mouse processing" to <Y>. (This is the default setting for this option. Refer to the "Advanced Options" section of Chapter 2.) To fully use the mouse capabilities, the editor must also be configured to display a full border around each window on the screen. This is because the mouse uses the border area to scroll text and perform many window operations. To display a border around each window, set the configuration option "Do you want the display boxed" to <Y>. (Refer to the "Colors/Screen Options" section of Chapter 2.) When the editor detects that a mouse is present and enabled, the following special mouse-sensitive areas are included in the window

borders. (These areas, called mouse "hot spots", are used by the mouse to perform particular operations, described later in this section.) * A horizontal scrollbar is placed in each bottom window border, and a vertical scrollbar is placed in each right-hand border. * The # symbol is located at the left of each horizontal scrollbar, and the # symbol is located at the right. * The # symbol is located at the top of each vertical scrollbar, and the # symbol is located at the bottom. * Within each horizontal scrollbar, an elevator shaft runs between the # and # symbols, and includes an � elevator symbol. This horizontal elevator moves within the elevator shaft according to your relative column position in the current file. * Within each vertical scrollbar, another elevator shaft runs between the # and # symbols, and includes an � elevator symbol. This vertical elevator moves within the elevator shaft according to your relative line position in the current file. * The [#] or [#] symbol is located on the right-hand side of the StatusLine of each window when multiple windows are open. When the windows are non-zoomed, the [#] symbol is displayed in each window. When a window is zoomed, the [#] symbol is displayed in the zoomed window. * The [�] symbol is located on the left-hand side of the StatusLine of each window when multiple windows are open. If desired, you can configure the editor for left-handed use of the mouse (rather than right-handed). To do this, set the configuration option "Left-handed mouse" to <Y>. (Refer to the "Advanced Options" section of Chapter 2.) Additional configuration options have an effect on the behavior of the mouse in the editor. Refer to the "Advanced Options" section of Chapter 2 for more information. General Use of the Mouse ������������������������ To initiate an action with the mouse, position the mouse pointer at the appropriate place on the screen, and then press one of the buttons on the mouse (either the <LeftBtn> or <RightBtn>), as indicated by the mouse command assignments described later in this section. Depending on the desired action, you either "click," "press and hold," or "drag" the mouse, as follows: * To click a mouse button, press and immediately release the button. For certain commands, you execute the command one time only by clicking the mouse button. For some commands, you must click the indicated mouse button two or three times, as instructed for that command. For multiple clicks, the mouse pointer must remain at the

same location while the button is repeatedly clicked the specified number of times. * To press and hold a mouse button, press and hold the button for a period of time before releasing it. The amount of time that the button must be held is determined by the configuration option "Mouse hold time". (Refer to the "Advanced Options" section of Chapter 2.) For commands that are invoked by clicking a mouse button, a command can be executed multiple times by pressing and holding the button. The command is executed repeatedly until the mouse button is released. The value assigned to the configuration option "Mouse repeat-delay factor" determines the number of times that a command is repeated while the button is held. (Refer to the "Advanced Options" section of Chapter 2.) * To drag the mouse, press the indicated mouse button, and continue to hold down the button as you drag the mouse pointer to another location on the screen. Do not release the button until the mouse pointer is positioned at the desired location. The action caused by the mouse is determined by the location of the mouse pointer when a mouse button is pressed: * On the StatusLine, clicking the <LeftBtn> displays the main pull-down menu. * Within menus, prompts, and pick lists, clicking the <LeftBtn> is the same as pressing <Enter>, and clicking the <RightBtn> is the same a pressing <Esc>. For entries in menus and pick lists, the position of the mouse pointer determines the entry that is selected when you click the <LeftBtn>. * Within the text portion of a window, various operations with the <LeftBtn> are used to position the editing cursor or to mark a Block. (A few of the Block-marking commands are executed by pressing the <LeftBtn> in combination with the <Ctrl> or <Alt> keys on the keyboard.) * Anywhere in a window while in editing mode (when no menus, prompts, or pick lists are active), clicking the <RightBtn> pops up a special Mouse Menu of Block-related commands. * In a window border, the <LeftBtn> is used to scroll the text, or to create, resize, or switch windows. The special mouse symbols and scrollbars ("hot spots") in the window borders are used to execute specific scrolling or window commands. Using the Pull-Down Menus ������������������������� To execute a command or set an option from the pull-down menus using the mouse, you can follow these steps: * Display the main pull-down menu by placing the mouse pointer on the

StatusLine and clicking the <LeftBtn>. * Select a sub-menu item from the menu by placing the mouse pointer on the item and clicking the <LeftBtn>. * Select a command or option from a sub-menu by placing the mouse pointer on the desired item and clicking the <LeftBtn>. To exit from the pull-down menus, click the <RightBtn> until the main menu is removed from the screen, or move the mouse pointer outside the menu area and click the <LeftBtn>. Positioning the Cursor and Scrolling Text ����������������������������������������� You can use the mouse to position the cursor or scroll text on the screen, as described by the following. Note that the special symbols, # # # #, and the horizontal and vertical elevators along the scrollbars are used for scrolling. * To position the editing cursor: Place the mouse pointer in the text of the current window where you want the cursor to be positioned, and click the <LeftBtn>. * To scroll down in the file, by line: Place the mouse pointer on the # symbol. To scroll down one line, click the <LeftBtn>. To repeat scrolling, press and hold the <LeftBtn>; scrolling continues until the button is released, or the end of the file is reached. * To scroll up in the file, by line: Place the mouse pointer on the # symbol. To scroll up one line, click the <LeftBtn>. To repeat scrolling, press and hold the <LeftBtn>; scrolling continues until the button is released, or the beginning of the file is reached. * To scroll left in the text, by column: Place the mouse pointer on the # symbol. To scroll left one column, click the <LeftBtn>. To repeat scrolling, press and hold the <LeftBtn>; scrolling continues until the button is released, or column 1 is reached. * To scroll right in the text, by column: Place the mouse pointer on the # symbol. To scroll right one column, click the <LeftBtn>. To repeat scrolling, press and hold the <LeftBtn>; scrolling continues until the button is released, or the maximum line length is reached. * To scroll down in the file, by page: Place the mouse pointer on the scrollbar below the vertical elevator (�), within the vertical elevator shaft. To scroll down one page,

click the <LeftBtn>. To repeat scrolling, press and hold the <LeftBtn>, keeping the mouse pointer below the elevator; scrolling continues until the button is released, or the elevator joins the mouse pointer, or the end of the file is reached. * To scroll up in the file, by page: Place the mouse pointer on the scrollbar above the vertical elevator (�), within the vertical elevator shaft. To scroll up one page, click the <LeftBtn>. To repeat scrolling, press and hold the <LeftBtn>, keeping the mouse pointer above the elevator; scrolling continues until the button is released, or the elevator joins the mouse pointer, or the beginning of the file is reached. * To scroll left in the text, by TabWidth: Place the mouse pointer on the scrollbar to the left of the horizontal elevator (�), within the horizontal elevator shaft. To scroll left by one TabWidth, click the <LeftBtn>. To repeat scrolling, press and hold the <LeftBtn>, keeping the mouse pointer to the left of the elevator; scrolling continues until the button is released, or the elevator joins the mouse pointer, or column 1 is reached. * To scroll right in the text, by TabWidth: Place the mouse pointer on the scrollbar to the right of the horizontal elevator (�), within the horizontal elevator shaft. To scroll right by one TabWidth, click the <LeftBtn>. To repeat scrolling, press and hold the <LeftBtn>, keeping the mouse pointer to the right of the elevator; scrolling continues until the button is released, or the elevator joins the mouse pointer, or the maximum line length is reached. Marking a Block ��������������� The following describes how to use the mouse to mark a Block of text. * To mark a single line: Place the mouse pointer on the line to be marked. three times (without moving the mouse pointer). * To mark multiple lines: Place the mouse pointer on the beginning line to be marked. Press and hold <Alt> (on the keyboard) and the <LeftBtn>. Then drag the mouse to the desired ending line, and release <Alt> and the <LeftBtn>. * To mark a stream of characters: Place the mouse pointer on the beginning character to be marked. Press and hold the <LeftBtn>. Then drag the mouse to the desired ending character, and release the <LeftBtn>. * To mark a column: Click the <LeftBtn>

Place the mouse pointer on the beginning character to be marked. Press and hold <Ctrl> (on the keyboard) and the <LeftBtn>. Then drag the mouse to the desired ending position, and release <Ctrl> and the <LeftBtn>. * To mark a word: Place the mouse pointer on a character in the word to be marked. Click the <LeftBtn> twice (without moving the mouse pointer). When the ending position for a Block is not displayed on the screen, you can scroll the text in the necessary direction by dragging the mouse pointer outside the current window on the appropriate side. Then drag the mouse pointer back inside the current window to stop scrolling and continue marking. Note: To drag the mouse pointer outside a window, there must be a border, other editing window, or StatusLine onto which to move the mouse pointer; otherwise, the file cannot be scrolled in that direction.

��������������������������������������������������������������Ŀ � Tip: � � To unmark a Block using the mouse, place the mouse pointer � � on a blank character on the screen and click the <LeftBtn> � � twice. The editor attempts to mark a word at that � � location. Because the blank character is not a word, the � � editor fails to mark a Block, though it succeeds in first � � unmarking the existing Block. � ���������������������������������������������������������������� Using the Pop-Up Mouse Menu ��������������������������� A special Mouse Menu allows you to use the mouse to easily display a menu of Block-related commands. To pop-up the Mouse Menu with the mouse while in editing mode, click the <RightBtn> (with no menus, prompts, or pick lists active). You can then select one of the displayed Block-related commands by placing the mouse pointer on the desired item and clicking the <LeftBtn>. To remove the Mouse Menu, click the <RightBtn> until the Mouse Menu is removed from the screen, or move the mouse pointer off the Mouse Menu and click the <LeftBtn>. Working with Windows �������������������� This section describes how to use the mouse to create, switch, resize, and close windows. * To open a horizontal window: Place the mouse pointer on the left border of the window to be split

and click the <LeftBtn> twice. * To switch to another window: Place the mouse pointer in the desired window, and click the <LeftBtn>. To switch to another window and also position the editing cursor at the mouse position in that window, press and momentarily hold the <LeftBtn>. * To resize a window: Place the mouse pointer on the StatusLine of the window to be resized. (Note that you cannot resize a window using a StatusLine located at the very top or very bottom of the screen.) Press and hold the <LeftBtn>, so that a resizing bar appears. Then drag the resizing bar to the desired location and release the <LeftBtn>. * To zoom a window: Place the mouse pointer on the [#] symbol in the StatusLine of the window to be zoomed, and click the <LeftBtn>. While the window is zoomed, the [#] symbol is replaced by the [#] symbol. * To "unzoom" a window: Place the mouse pointer on the [#] symbol and click the <LeftBtn). The previous windows are restored to the screen, along with the [#] symbol. * To close a window: Place the mouse pointer on the [�] symbol in the StatusLine of the window to be closed, and click the <LeftBtn>.

Summary of Mouse Operations ��������������������������� ����������������������������������������������������������������� Mouse Pointer Block Marking Mouse Button Location �������������� ����������������������� ������������������ Word Single line Multiple lines Column Characters Click <LeftBtn> 2 times Click <LeftBtn> 3 times Drag <Alt LeftBtn> Drag <Ctrl LeftBtn> Drag <LeftBtn> Word in any window Text in any window Text in any window Text in any window Text in any window

����������������������������������������������������������������� Cursor Movement and Scrolling Mouse Button Mouse Pointer Location ����������������� ��������������� ��������������������������� Position cursor Scroll down: 1 line multi lines 1 page multi pages Scroll up: 1 line multi lines 1 page multi pages Scroll left: 1 column multi columns 1 TabWidth multi TabWidths Scroll right: 1 column multi columns 1 TabWidth multi TabWidths Click <LeftBtn> Click <LeftBtn> Hold <LeftBtn> Click <LeftBtn> Hold <LeftBtn> Click <LeftBtn> Hold <LeftBtn> Click <LeftBtn> Hold <LeftBtn> Click <LeftBtn> Hold <LeftBtn> Click <LeftBtn> Hold <LeftBtn> Click <LeftBtn> Hold <LeftBtn> Click <LeftBtn> Hold <LeftBtn> Text in current window # symbol # symbol Scrollbar below vertical � Scrollbar below vertical � # symbol # symbol Scrollbar above vertical � Scrollbar above vertical � # symbol # symbol Scrollbar left of horiz. � Scrollbar left of horiz. � # symbol # symbol Scrollbar right of horiz. � Scrollbar right of horiz. �

����������������������������������������������������������������� Menus, Prompts Mouse Pointer and Pick Lists Mouse Button Location �������������������� ���������������� ��������������������� Pull down Main Menu Pop up Mouse Menu Select from Menu or Pick List Accept StatusLine or Prompt entry Exit Menu Click <LeftBtn> Click <RightBtn> Click <LeftBtn> Click <LeftBtn> Click <RightBtn> OR Click <LeftBtn> Click <RightBtn> OR Click <LeftBtn> StatusLine Anywhere on screen Menu / Pick List item Anywhere in Prompt Anywhere on screen Outside Menu area Anywhere on screen Outside Prompt or Pick List

Cancel/remove any Prompt or Pick List

����������������������������������������������������������������� Mouse Pointer Windows Mouse Button Location ����������������� ������������������������ ������������������ Open Switch window Switch window and position cursor Resize Zoom Unzoom Close Click <LeftBtn> 2 times Click <LeftBtn> Hold <LeftBtn> Drag <LeftBtn> Click <LeftBtn> Click <LeftBtn> Click <LeftBtn> Left window border New window Text of new window Window StatusLine [#] symbol [#] symbol [�] symbol

FILES ���������������������������������������������������������������������� Creating New Files ������������������ There are three different ways to create new files, ready for editing. 1. From the DOS command line, enter <Q> followed by one or more new filenames. Each filename must be separated by a space. For example, typing: q file1 b:file2 \dir1\file3 <Enter>

will create "file1" in the current directory, "file2" on disk drive B, and "file3" in the directory "dir1". ��������������������������������������������������������������Ŀ � Tip: � � When specifying filenames, you may use full path � � designations if desired. � ���������������������������������������������������������������� 2. From the DOS command line, type "Q <Enter>". with the prompt: The editor responds

�����������������������������������������������������������Ŀ � File(s) to edit: � � � ������������������������������������������������������������� Enter one or more new filenames, each separated by a space. 3. From within the editor, execute the EditFile <Alt E> command. The above prompt will appear. Again, you may enter one or more new filenames, each separated by a space. Loading Existing Files ���������������������� Loading existing files works exactly like creating new files (in the previous section) with two exceptions: * The filename(s) specified must exist on disk. * The filename(s) may contain wildcard characters (*, ?). You can configure the editor to respond to wildcarded filename entries in one of two ways: 1. To load all matching files into the editor. 2. To show all the matching filenames in a "pick" listing. You can then use the cursor keys to find the file you want and press <Enter> to load it into the editor.

You can also configure the editor 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. In the default configuration of the editor, a handy macro file has been assigned to <Ctrl ]>. This macro will take at the current cursor position in the text, and load that editor. For example, if you have the following text in a file: #include "d:\tsejr\src\local.h" you could position the cursor anywhere within the specified path and filename, and press <Ctrl ]>. The editor would then load that file and make it the current file. Locating a File on Disk ����������������������� The LocateFile command in the editor allows you to easily locate a file when you do not remember the directory in which that file resides, or you do not recall the exact name of the file. * LocateFile <Esc><F><A> This command searches an entire drive for a specified filename. A list of all matching filenames is displayed, allowing you to select an appropriate file to edit. When you execute this command, it prompts you for the filename for which to search. A complete name or an ambiguous name (with DOS wildcard characters) can be specified. By default, the current drive is searched. However, a different drive can be searched by prefacing the filename with the drive name (such as, d:foo). The default or specified drive is then searched, and all matching filenames are displayed in a pick list. To select the desired file to edit, position the cursor bar on that filename in the pick list, and press <Enter>. To remove the pick list (and terminate the command), press <Esc>. If you assign LocateFile to a key, you can execute this command within any "File(s) to edit:" prompt (such as displayed by the EditFile <Alt E> command). Changing the Current Directory from within the Editor ����������������������������������������������������� The editor's DirTree command provides a very helpful visual means for changing your current directory from within the editor. * DirTree <Esc><F><I> This command displays a pick list of all the drives on your system, along with a directory tree for the current drive. The current drive or directory can be changed from this pick list. for loading a the filename file into the program source

Assuming your current drive is the D: drive, and you also have A:, B:, C:, and E: drives available on your system, following is an example of what the directory tree pick list might look like when you execute this command: ��������� Dir Tree ��������Ŀ � A: � � B: � � C: � � D: � � ����TSEJR � � � ����MAC � ������������DOC�������������� � � ����SPELL � � � ����TEMP � � � ����WORD � � ����TSEPRO � � ����DOC � � ����MAC � � E: � ����������������������������� To switch to a different directory, move the cursor bar to the desired entry in the tree, and press <Enter>. To change to a different drive, move the cursor bar to the desired drive, and press <Enter>. The selected drive becomes the current drive, and the directory tree for that drive is displayed in the pick list. To remove the directory tree pick list, press <Esc>. Invoking the Editor at a Specific Line Number ��������������������������������������������� A DOS command-line option (-n) allows you to specify a line number in a file on which to position the cursor when the file is loaded into the editor. From the DOS prompt type: q <filename to edit> -n<specific line number>

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

Or, if you prefer: q -n125 file1

Multiple Files: The Ring ������������������������� The editor 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 the editor handles multiple files will help you in manipulating and editing multiple files. All files that are loaded into the editor are maintained in a "ring". As we describe each of the commands used to manipulate the files in the ring, refer to the illustration below. ��������������������������������������������������������������Ŀ � ����Ŀ ����Ŀ � � � � ������ � � ������> � A � <���<Ctrl K P>��B���<Alt N> � � � � � ������ � � � � ������ ������ � � � v ^ <Alt E> v � � ����Ŀ � � ����Ŀ � � � � � � � � � � � F � <�������������������������������> � C � � � � � � � � � � � ������ � � ������ � � ^ v v ^ � � � ����Ŀ ����Ŀ � � � � � � � � � � � ������> � E � <���������� > � D � <����� � � � � � � � � ������ ������ � � � � The "Ring" � ���������������������������������������������������������������� In the ring we see that six files have been loaded into the editor. You can, of course, load many more files - as many as your computer's memory will allow. Assume the file currently being edited is file "B". You may then move from one file to another in any of the following ways: * Enter the NextFile <Alt N> command. file in the ring, file "C". You will now be editing the next

* Enter the PrevFile <Ctrl K P> command. You will now be editing the previous file in the ring, file "A". * Enter the EditFile <Alt E> command. The editor will prompt for a filename. You may enter the name of any file in the ring. The editor will make the entered file the current one for editing. * Enter the ListFiles <Esc><F><T> command. You will be shown a scrollable list of all loaded files, from which you may select a different file to edit. You may, at any time, add files to the ring or discard files from the ring. If you add a new file to the ring using the EditFile command, it will become the current file and the old current file will become the

previous file. If you delete a file from the ring the previous file will become the current file. ��������������������������������������������������������������Ŀ � Tip: � � When loading files, be aware that the editor will not load � � two copies of the same file. If you issue the EditFile � � command for a file already loaded, that file will become � � the new current file. � ���������������������������������������������������������������� Saving Files and Exiting ������������������������ The editor 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 � 1 � 2 � 3 � 4 � 5 � �������������������������������������������������������������������Ĵ �Exit <Ctrl K D> � GExit <Alt X> � � X � � X � X(a) � � � � � � � � � �File <Ctrl K X> � GFile <Alt F><G> � X � � � X � X(a) � � � � � � � � � �PQuit <Ctrl K Q> � GPQuit <Alt Q><Q> � � � X � X � X(a) � � � � � � � � � �Quit (b) � � � � � X � X � � � � � � � � � �SaveFile <Ctrl K S> � GSave <Alt Y> � X � � � � � ��������������������������������������������������������������������� 1. Edited file(s) are saved unconditionally 2. User prompted to save edited files (Y/N) 3. User warned that file changes may be lost 4. File(s) are discarded from editor 5. The editor is terminated (a) The Exit, File, and PQuit commands can be configured to terminate or not terminate the editor. Refer to the "General Options" section of Chapter 2 for more information. (b) USE WITH CAUTION!

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

When a Read-Only file is initially loaded, the message "File is READONLY" is displayed at the top of the screen. If you subsequently attempt to save a Read-Only file, the following message appears: �������������������������������������������� �Cannot save READONLY files - Press <Esc> � �������������������������������������������� To save a Read-Only file, simply save it under a different name using the WriteBlock <Alt W> command (be sure there are no marked Blocks in the file), or change the filename using the ChangeFilename <Alt O> command and then save the file under the new name. VIEWING AND GETTING AROUND IN THE TEXT ���������������������������������������������������������������������� The editor 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 the editor's windows, you can view multiple files at a time or have multiple views of the same file. As you will see, there are quite a few commands available 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 when editing. Cursor Movement ��������������� Moving Through a File The editor provides a number of commands to allow you to move about in a file. * BegFile <Ctrl PgUp>, EndFile <Ctrl PgDn> As their names imply, these commands move the cursor to the beginning or end of the current file. BegFile positions the cursor at column one on the first line of the file. EndFile positions the cursor after the last non-blank character on the last line of the file. If you are in the process of marking a Block using the MarkColumn command, the cursor column position does not change when you execute BegFile or EndFile. (This is true only while you have marked the beginning of a Block using MarkColumn, but have not marked the end of the Block.) * PageUp <PgUp>, PageDown <PgDn> PageUp scrolls the text toward the top of the file, one page-full,

less one line, at a time. PageDown scrolls the text toward the end of the file, one page-full, less one line, at a time. * HalfPgUp and HalfPgDn These commands work exactly like the PageUp and PageDown commands, except that they scroll only one-half page at a time. * NextPara, PrevPara, EndPara These commands move the cursor to the start of the next, previous, or to the end of the current paragraph. ��������������������������������������������������������������Ŀ � Tip: � � All editor commands, including those without default key � � assignments, can be assigned as the user desires, to � � almost any key. Refer to the "Keyboard Configuration" � � section of Chapter 2 for more information. � ���������������������������������������������������������������� * ScrollUp <Ctrl W>, LineUp These commands scroll the text one line at a time toward the beginning of the file. The ScrollUp command causes the cursor to remain on the same line of text until it reaches the bottom of the screen, while the LineUp command causes the cursor to remain stationary on the screen. * ScrollDown <Ctrl Z>, LineDown These commands scroll the text one line at a time toward the end of the file. The ScrollDown command causes the cursor to remain on the same line of text until it reaches the top of the screen, while the LineDown command causes the cursor to remain stationary on the screen. * GotoLine <Ctrl J> Upon entering the GotoLine command, the editor prompts with: ��������������������������Ŀ �Go to line: � � � ���������������������������� Type a line number and press <Enter>. The cursor then "jumps" to the specified line number. An easy way to move about quickly in your text is to keep track of critical positions by noting their line number, which is displayed on the StatusLine, and then using this command to "jump" to those positions. * GotoBlockBeg <Ctrl Q B>, GotoBlockEnd <Ctrl Q K> 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, the editor makes that file the current file and then moves you to the beginning or end of the Block. For more information on using marked Blocks, refer to the "Block Commands" section in this chapter.

* PrevPosition <Ctrl Q P> This command can be very handy. It moves you to the cursor's previous position. Although it is not of much use if you have only moved a character or two, it can be useful for larger jumps of the cursor. For example, perhaps you are in the middle of a file and want to check something at the very beginning of the file. To go to the beginning, you would simply enter BegFile <Ctrl PageUp>. After you look at the beginning, you want to go 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. PrevPosition can only take you back to the cursor's immediately previous position. If there are intervening keystrokes that move the cursor, PrevPosition will move you back to the most recent location of the cursor. * NextEqualIndent, PrevEqualIndent These commands move the cursor to the next or previous line (as appropriate) whose text starts in the same column as the current line. If the current line is blank, the cursor moves to the next or previous blank line. Moving Around on the Screen These commands affect the cursor position within the current screen of displayed text. * BegScreen <Ctrl Home>, EndScreen <Ctrl End> These commands move you to the first or last line of the screen (or current window if you have windows open). The cursor's column position does not change. * BegLine <Home>, EndLine <End> You are probably already familiar with these commands. BegLine moves the cursor to the beginning, or column one, of the current cursor line. EndLine moves the cursor to the last non-blank character of the current cursor line. * FirstNonWhite This command is intended as a replacement for the BegLine command. It positions the cursor on the first non-white (space) character on the current line, or column 1 if the line is blank. An interesting variation is a command that toggles between the beginning of the line and the first non-white character on that line: home FirstNonWhite MacroQuitTrue BegLine

Refer to the "Keyboard Configuration" section of Chapter 2 for more information on changing command assignments in the editor. * ScreenLeft <Alt F5>, ScreenRight <Alt F6> These commands scroll the entire text to the left or right one column at a time. You can change the number of columns which are shifted each time using the configuration program. Refer to the "Colors/Screen Options" section of Chapter 2 for more information.

* WordLeft <Ctrl Cursor Left>, WordRight <Ctrl Cursor Right> These commands move the cursor to the first character of the previous or following word in the text. * MakeCtrofScreen <Shift F5>, MakeTopofScreen <F5>, and MakeBotofScreen These three commands change the position of the cursor line on the screen (or window, if you have windows open). They can be useful if you prefer to work at the bottom or top of the screen or if you want to keep the text surrounding your cursor line in view. The MakeCtrofScreen command scrolls the text on the screen (either up or down) until the cursor line is the center line of the screen. The MakeTopofScreen command scrolls the text upward until the cursor line is the top line of the screen. The MakeBotofScreen command scrolls the text downward until the cursor line is the last line of the screen. Moving By Lines and Characters These commands enable you to move in short increments through the text. * CursorLeft <Cursor Left>, CursorRight <Cursor Right> These commands move the cursor one column to the right or left on the cursor line. When you use CursorLeft, the cursor stops when it reaches the left edge of the screen, unless the text has been scrolled to the left. In that case it scrolls the text to the right one column at a time until it reaches column one. When you use CursorRight and the cursor reaches the right edge of the screen, it begins to scroll the text to the left. It stops scrolling when it reaches the maximum line length. If you prefer that cursor left/right would wrap at the beginning and end of lines, you can assign the following macros in your QCONFIG.DAT file in lieu of cursor left/right, respectively: * Left and Right cursor definitions that wrap to previous/next line * like WordStar does cursorleft CursorLeft MacroQuitTrue CursorUp MacroQuitFalse EndLine isEndLine JTrue down: CursorRight MacroQuit down: * * * * * * * * * try to go left succeed! then we are done else try to go to prev line if fail, then at top of file. done. jump to end of previous line. are we at end of line? if so, go to down else right one Quit macro

cursorright

CursorDown * try to go to next line MacroQuitFalse * if not, go to end BegLine * else go to beginning of line Refer to the "Keyboard Configuration" section of Chapter 2 for more information on changing key/command assignments. * CursorUp <Cursor Up>, CursorDown <Cursor Down> These commands move the cursor up or down in the file one line at a time. The cursor's column position does not change. * GotoColumn <Esc><S><G> Upon entering the GotoColumn command, the editor prompts with: ��������������������������Ŀ �Go to column: � � � ���������������������������� Type a column number and press <Enter>. specified column number. Using Windows ������������� The editor provides the ability to view different areas of files (either multiple files or the same file) at the same time, through the use of windows. A window is a portion of the screen that allows you to view text. You can divide your screen into as many as eight horizontal windows. You can then view as many as eight different files through these windows or have multiple views of a single file. This capability can be quite helpful for comparing text, copying text, and moving text. An example of a screen split into three windows is shown below. ��������������������������������������������������������������Ŀ � L 1 C 1 IAW 411K *c:\file1 � � � � This window is a view of file number 1 at line number 1. � � This file is being edited with Insert, AutoIndent, and � � WordWrap modes all ON. This file has been updated. � � � � � � � � � � L 483 C 12 IAW 411K *c:\file1 � � � � This window is a view of file number 1 at line number 483. � � � � � � � � � � L 15 C 14 I 411K c:\file2 � � � � � This window is a view of file number 2. � � This file is being edited with Insert mode ON, while � The cursor then moves to the

� AutoIndent and WordWrap modes are OFF. This file has not � � been updated. � ���������������������������������������������������������������� Creating Windows To create a window, use the HorizontalWindow <Ctrl O H> command. The screen will be split into two halves, or windows, each window having its own StatusLine. The cursor will reside in the newly created window, making it the current window. If only one file is being edited, the newly created window will simply be an additional view of the same file. The editor 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 the editor 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. other windows will remain unchanged. Switching Windows When multiple windows are opened, editing will take place only in the current window (the window containing the cursor). For editing text in other windows, two commands are provided to switch from one window to another. * PrevWindow <Ctrl O P> This command moves the cursor to the window above the current window. If the current window is at the top of the screen, the cursor moves to the last window on the screen. * NextWindow <Ctrl O N> This command moves the cursor to the window below the current window. If the current window is at the bottom of the screen, the cursor moves to the first window on the screen. Changing Window Size You can change the size of any window on the screen with the commands below. * GrowWindow <Ctrl O G>, ShrinkWindow <Ctrl O S>, ResizeWindow <Esc><W><R> These commands allow you to change the size of the current window. Upon entering any of these commands, you are prompted to change the size of the window by using the cursor up and cursor down keys. * ZoomWindow <Ctrl O Z> This command causes the current window to fill the entire screen, as All

all other windows disappear. To restore the screen with all windows, simply press <Ctrl O Z> 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. * MaximizeWindow <Ctrl O M> This command causes the current window to be made as large as possible, by making all other windows as small as possible. Closing Windows There are two commands to close windows. * CloseWindow <Ctrl O C> This command closes the current window. The current window disappears and the cursor is placed in the window above the closed window, making it the new current window. When the closed window is at the top of the screen, the window below it becomes the new current window. * OneWindow <Ctrl O O> This command closes all windows except the current window. current window then fills the entire screen. The

Note that closing a window does not discard files from the editor. Synchronized Scrolling in Windows You can scroll simultaneously through multiple windows by setting Synchronized Scrolling mode ON. This causes cursor movement and scrolling activity in the current window to also occur in each of the non-current windows. * ToggleSyncScroll <Ctrl O Y> This command switches Synchronized Scrolling mode ON and OFF. When this mode is ON, the editor attempts to synchronize logical cursor movement, as well as scrolling, in all windows, based on cursor movement and scrolling activity in the current window. However, the logical cursor position and size of non-current windows may affect scrolling that occurs when the cursor reaches a window edge. Under certain conditions, movement of the cursor may cause scrolling to occur in some non-current windows before it begins in the current window. When Synchronized Scrolling mode is ON, an "S" appears on the StatusLine. FINDING AND REPLACING TEXT ���������������������������������������������������������������������� Finding Text ������������

* Find <Ctrl Q F> This command searches for a specific string of characters in the file. Upon entering the Find command, the editor prompts for the string of characters for which to search. ������������������������������������������������������������Ŀ �Search for: � � � �������������������������������������������������������������� Enter the desired string of characters and press <Enter>. The editor then prompts for the search options to use. �������������������������������������������������������������Ŀ �Options [BGLIW] (Back Global Local Ignore-case Whole-words): � � � ��������������������������������������������������������������� Enter the letter(s) corresponding to the option(s) you want and press <Enter>. The available options are: [B] = Search backward from the current cursor position. When you choose "B", the editor searches backward from the cursor position toward the beginning of the file. Otherwise, it searches from the cursor position toward the end of the file. [G] = Global search. Begins searching from the beginning of the file, or from the beginning of the marked Block if the [L] option is also selected. [L] = Local search. Limits the search to the currently marked Block. If the cursor is outside the marked Block, or the [G] option is also selected, the search starts at the beginning of the marked Block. Otherwise, the search starts at the current cursor position inside the marked Block. [I] = Ignore the case (capital or lowercase) of the search string. For example, "Hello" would match "hello" if this option is chosen. This option is set ON by default. [W] = Search for whole words only. For example, when this option is chosen, the word "sent" matches only the actual word "sent". Otherwise, any other words that contain the string (such as "sentence" or "absent") would also match. [^] = Anchor the search string to the beginning of the line (or Block). The search operation attempts to locate a matching string that begins in column 1 of a line; or, if the [L] option is also selected, it attempts to locate a matching string that begins in the first column of the Block. [$] = Anchor the search string to the end of the line (or Block). The search operation attempts to locate a matching string that ends on the last character of a line; or, if the [L] option is also selected, it attempts to locate a matching string that ends on the last character in the Block (or that ends on the last character of a line, if the line ends in the Block).

Once the Find command is executed, the cursor is placed at the first occurrence of the search string found in the text. To locate subsequent occurrences of the search string, simply enter the RepeatFind command (described below). If you want to search for a string and replace it with another string, refer to the "Replacing Text" section in this chapter. ��������������������������������������������������������������Ŀ � Tip: � � The placement of the found text is configurable. It can � � either be placed on the same relative row on which the � � cursor line initially started, or centered. Refer to the � � ToggleCenterFinds command in Chapter 3, and to the option � � "Should Find and RepeatFind center the found text" in the � � "General Options" section of Chapter 2. On the menus, � � press <Esc><S><C>. � ���������������������������������������������������������������� * RepeatFind <Ctrl L> This command reissues the last search command that was executed; that is, the last Find, FindReplace, or IncrementalSearch command. It begins searching one position beyond the current cursor position if a forward search had previously been performed, or one position before the current cursor position if a backward search had previously been performed. All search or replace options, other than [G] (Global), that were in effect for the previous execution of the operation, are in effect for RepeatFind. * IncrementalSearch <Ctrl I> This is a specialized search command. It causes the editor to begin searching for a string while you type. As you enter each new character, the editor attempts to locate a string in the text that matches the incremented search string. If you type a character that would expand the search string to a string that cannot be matched in the text, that character is not added to the search string. When you execute IncrementalSearch, the editor displays the following prompt on the StatusLine: I-Search (^N=Next ^P=Prev ^B=Beginning): Enter the string to be located. The cursor remains in the IncrementalSearch prompt until you terminate the operation by pressing <Enter> or <Esc>. As you type characters, a case-insensitive, forward search is performed, beginning at the text position where the cursor was located when you invoked IncrementalSearch. As each matching string is found, the string is highlighted in the text. When a search character is entered that does not match the next character of the currently-located text, the editor searches forward and moves to the first occurrence that does match the newly-expanded search string. If

a match including that character cannot be located, the character is rejected and the currently-located text remains highlighted. Within the IncrementalSearch prompt, you can use the following keys to perform the operations indicated: <Backspace> Deletes the last character typed within the IncrementalSearch prompt. The editor re-locates the previously-highlighted string. Searches forward for the next occurrence of the current IncrementalSearch string. Searches backward for the previous occurrence of the current IncrementalSearch string. Searches forward from the beginning of the file for the first occurrence of the current IncrementalSearch string.

<Ctrl N> <Ctrl P> <Ctrl B>

* Match <Alt F3> This is a specialized search command. It acts only on the characters ( ), { }, [ ], and < >. With the cursor placed on one of these characters, enter the Match command. The editor locates the logical matching character of the pair. This command can be useful for programming in languages where complicated expressions are grouped using these characters. In the default configuration of the editor, a useful macro for locating text has been assigned to <Alt =>. This macro will take the word at the current cursor position in the text, and execute the Find command on that word. It searches for the next occurrence of the word, using the "Default Find options" (as described under "General Options" in Chapter 2, "Customizing the Editor"). When located, the cursor is placed in the text on the first character of the word and the word is highlighted. If the cursor is not located on a word when you execute this macro, the editor executes the Find command itself, and displays the standard Find prompt. Replacing Text �������������� The editor provides the ability to search for specific strings of characters throughout your text and then replace all, some, or none of them with another string of characters. (If you want to search for strings of characters without replacing them, use the Find command.) * FindReplace <Ctrl Q A> This command searches for a specific string of characters in the current file, and optionally replaces it with another string of characters. Upon entering the FindReplace command, the editor prompts for the string of characters for which to search.

������������������������������������������������������������Ŀ �Search for: � � � �������������������������������������������������������������� Enter the desired string of characters and press <Enter>. The editor then prompts for a new string of characters (to replace the old string). ������������������������������������������������������������Ŀ �Replace with: � � � �������������������������������������������������������������� Enter the new string of characters and press <Enter>. The editor then prompts for the search options you wish to use. ������������������������������������������������������������Ŀ �Options [BGLIWN] (Back Global Local Ignore-case Whole-words � �No-prompting): � � � �������������������������������������������������������������� Enter the letter(s) corresponding to the option(s) you want and press <Enter>. The available search options are the same as those described in the previous section ("Finding Text") for the Find command, as well as the following additional replace options: [N] = Find and replace with NO prompting. If you choose "N", the editor finds and replaces every occurrence of the search string, without asking you if you want to replace each individual occurrence. [#] = Replace the indicated number of times (where "#" is an actual number). If you specify a number, the editor finds and replaces the next "#" number of occurrences of the search string, without asking you if you want to replace each occurrence. For example, if you enter "8", the next eight occurrences of the string are automatically replaced. If you select the [N] or [#] option, the editor finds and replaces every occurrence of the search string with no further user intervention. If you DO NOT select the [N] or [#] option, the editor prompts at every occurrence of the search string with: Replace (Yes/No/Only/Rest/Quit): Valid responses are: <Y>es <N>o <O>nly - Replace the search string with the new string and continue to the next occurrence. - Do not replace the search string, but continue to the next occurrence. - Replace the search string with the new string and

<R>est <Q>uit

quit. - Replace the search string with the new string and replace the rest of the occurrences with no further prompts. - Cancel the FindReplace process.

You can press <Ctrl Break> to halt a global FindReplace. The RepeatFind command reissues the previous search command (including FindReplace). Refer to RepeatFind in the previous section, "Finding Text". COPYING, MOVING, CHANGING, 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 the Block-marking commands. We will see how to manipulate Blocks both directly and through the use of intermediate storage areas known as buffers. The editor 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" the Block, either by characters, lines, or columns. The type of Block that you mark will depend on the editing situation and what you find most comfortable. * MarkLine <Alt L> This command allows you to mark a Block in whole line increments. In other words, the Block will contain complete lines only and no portions of lines. To use this command place the cursor anywhere on the first line of the text you wish to mark and press <Alt L>. (Notice that the line is immediately marked.) Now, move the cursor (the Block will "follow" the cursor) to the last line of text to be marked and press <Alt L> again. You now have a marked Block, ready for manipulation. * DropAnchor <Alt A> This command allows you to mark a Block one character at a time. In other words, the Block will contain a stream of characters (which can span over multiple lines). To use this command place the cursor over the first character of the text you wish to mark and press <Alt A>. Then begin moving the cursor toward the end of the text to be marked.

Notice that the Block "follows" the cursor position. Once the cursor is placed over the last character to be marked, press <Alt A> again. You now have a marked Block, ready for manipulation. * MarkCharacter This command works just like DropAnchor except that while marking the Block, the cursor is not included within the Block. MarkCharacter is provided as a replacement for the DropAnchor command. If you want the cursor position included in character Blocks, then continue to use DropAnchor; otherwise, replace the DropAnchor command with this command in the QCONFIG.DAT file. Refer to the "Keyboard Configuration" section of Chapter 2 for more information on changing key/command assignments. The MarkCharacter command can also be used to provide CUA-style Block marking, using the shifted cursor keys. Refer to the following section, "CUA-Style Block Marking." * MarkColumn <Alt K> This command allows you to mark one or more columns of text. To use this command place the cursor over the upper left-hand character of the text you wish to mark and press <Alt K>. Then begin moving the cursor to the right and/or downward. Notice that the Block "follows" the cursor position. Once the cursor is placed over the lower right-hand character of the Block, press <Alt K> again. You now have a marked Block, ready for manipulation. ��������������������������������������������������������������Ŀ � Tip: � � When using the MarkLine, MarkCharacter, MarkColumn, and � � DropAnchor commands, it is not necessary to mark the end � � of the Block. The editor assumes the end of the Block to � � be the current cursor position for MarkCharacter, � � MarkColumn, and DropAnchor, and to be the current cursor � � line for MarkLine. Marking the end of the Block is only � � necessary when moving or copying text within the same � � file. � ���������������������������������������������������������������� * MarkWord <Ctrl K T> This command allows you to mark the current word. To use this command, place the cursor anywhere in the word you wish to mark and press <Ctrl K T>. The entire word is immediately marked. If there is no word at the current cursor position, then no action is taken. * MarkBlockBegin <Ctrl K B>, MarkBlockEnd <Ctrl K K> This is another method of marking a Block one character at a time. To mark a Block with this command, place the cursor over the first character of the text you wish to mark and press <Ctrl K B>. Then position the cursor one character past the end of the text that is to be marked and press <Ctrl K K>. The Block is now marked and ready for manipulation. * UnmarkBlock <Alt U> Entering the UnmarkBlock command causes the currently marked Block to

be unmarked. The editor 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, the editor 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, the Block in the first file will automatically be unmarked. Also, if you mix types of Block marking (for example, by entering MarkLine followed by DropAnchor), the editor will mark the Block according to the last command entered. CUA-Style Block Marking The editor allows you to use the following CUA-style shifted cursor keys for marking character Blocks. These pre-defined keys use the MarkCharacter command to create Blocks that do not include the cursor within the Block. CUA-style Key �������������������� <Shift <Shift <Shift <Shift <Shift <Shift <Shift <Shift Cursor Cursor Cursor Cursor Home> End> PgUp> PgDn> Left> Right> Up> Down> Block-marking Operation ����������������������������������������������� Mark/extend Mark/extend Mark/extend Mark/extend Mark/extend Mark/extend Mark/extend Mark/extend Block Block Block Block Block Block Block Block and and and and and and and and move move move move move move move move left one character right one character up one line down one line to beginning of line to end of line up one page down one page

To select the CUA-style Block-marking keys, you must set CUA-Style Block Marking mode ON. (You can do this by setting the configuration option "Use CUA-style (shift cursor) block marking" to <Y>. Refer to the "Advanced Options" section of Chapter 2. You can also switch this mode ON and OFF using the ToggleCUAMarking command.) These CUA-style keys will then override any command assignments made to the same keys in QCONFIG.DAT. In addition to the CUA-style Block marking keys, you may want to configure the editor to assign the following CUA-style keys to the indicated Block commands: CUA-style Key ����������� <Shift Ins> <Shift Del> <Ctrl Ins> <Ctrl Del> Block Command / Operation ��������������������������������������������������������� Paste / paste contents of Scrap Buffer at cursor position Cut / cut marked Block to Scrap Buffer Copy / copy marked Block to Scrap Buffer DeleteBlock / delete marked Block

For these CUA-style Block command key assignments to be effective, they must be assigned in QCONFIG.DAT and burned into the editor. Unlike the CUA-style Block-marking keys, setting ON CUA-Style Block Marking mode does NOT automatically make these Block-command keys effective.

The following paragraphs describe certain effects of CUA-Style Block Marking mode. If the <Shift> key is released during marking, it must be pressed again, before any other key is pressed, in order to continue marking. If you press any key that is not a CUA-style marking keys (or that is not one of the related CUA-style Block command keys, as described above), the current Block will be unmarked. You can override this "unmarking" behavior by setting the configuration option "Should blocks remain marked after CUA marking" to <Y>. Then a marked Block will remain marked until you unmark it, or until you execute a command, such as Cut, that unmarks the Block after its operation. (Refer to the "Advanced Options" section of Chapter 2 for information on setting this option.) Once a "persistent" Block is marked, you can extend the Block by placing the cursor at either the beginning or ending position of the Block, and then pressing one of the CUA-style Block-marking keys. If you press one of the CUA-style marking keys with the cursor at any other position in the file, the current Block will be unmarked, and a new Block will be started at the cursor position. Manipulating Blocks Directly There a several ways to manipulate a marked Block in the editor. following commands act directly on a marked Block. ��������������������������������������������������������������Ŀ � Tip: � � When Copying or Moving Blocks: � � � � Blocks marked using the DropAnchor, MarkCharacter, � � MarkColumn, and MarkBlockBegin/End commands will always be � � inserted beginning at the current cursor position. � � � � Blocks marked using the MarkLine command will be inserted � � at either the line before or the line after the current � � cursor line. Refer to the "General Options" section of � � Chapter 2 for more information. � ���������������������������������������������������������������� * CopyBlock <Alt C> This command makes a copy of the marked Block and inserts it where you indicate. You can insert this copy of the Block at some other place in the same file or in another file. The original Block of text, from which you made the copy, is not affected. To use this command, first mark the Block as described above. Next, move the cursor to the position in the file where you wish to insert the marked text. (Or, if you have multiple files loaded and wish to copy text from one file to another, use the NextFile, PrevFile or EditFile commands to get a new current file and likewise position the cursor.) Now enter the CopyBlock <Alt C> command. The Block will be The

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. For an easy method to copy the same Block repeatedly, refer to the Copy and Paste commands in the following section. * CopyOverBlock <Alt Z> This command is for use with column Blocks only. It works just like CopyBlock except the Block is copied to the current cursor position by overlaying existing text and without shifting text to the right. * MoveBlock <Alt M> This command works exactly like CopyBlock with one exception: upon entering the MoveBlock <Alt M> command, the originally marked Block is deleted from the file. As with the CopyBlock command, you can move a Block to another part of the same file or from one file to another. For an easy method to delete a Block from its original position and inserting it repeatedly at other positions, refer to the Cut and Paste commands in the following section. * DeleteBlock <Alt G> This command simply deletes a marked Block of text from the file. To use this command, first mark a Block of text to be deleted, then enter the DeleteBlock command. The marked text will be deleted from the file. (Deleted Blocks will be placed in the Kill buffer. Refer to "The Kill Buffer - A Safety Net" section in this chapter for more information.) * ShiftLeft <Shift F7>, ShiftRight <Shift F8> These commands allow the User to shift text contained in a Block to the left or right. To use these commands, first mark a Block. Now enter ShiftLeft or ShiftRight. The entire marked Block of text will be shifted one column to the left or right respectively. If there is no marked Block of text or the cursor is outside of the marked Block, the current cursor line will be shifted. This command is very useful for changing indentation for portions of text or source code. * FillBlock <Ctrl K L> This command allows you to fill a marked Block with a single character. Manipulating Blocks Using Scrap Buffers The editor provides an extremely helpful device for quickly manipulating Blocks of text. This device consists of a Scrap Buffer and several commands which act on the Scrap Buffer. The Scrap Buffer is a temporary holding area for marked Blocks of text. The commands Cut, Copy, Paste, and PasteOver are used solely for placing text into the Scrap Buffer and copying text from the Scrap Buffer. When you issue a Copy or Cut command (discussed in the following

section), the marked Block is placed into the Scrap Buffer. The next time you Copy or Cut a Block into the Scrap Buffer, the previous contents of the Scrap Buffer are deleted and replaced with the new Block. You can repeatedly use the Paste and PasteOver commands as many times as needed to insert a copy of the Block held in the Scrap Buffer at multiple positions in your file or files. The Paste and PasteOver commands do not purge the contents of the Scrap Buffer. * Copy <Grey +> and Paste <Grey *> / PasteOver <Ctrl PrtSc> To copy a section of text from its present position and insert it somewhere else: 1. Mark the text using the Block marking commands. 2. Enter Copy <Grey +>. the Scrap Buffer. This places a copy of the marked text into

3. If you want to insert the text somewhere else within the same file, use the cursor movement commands to place the cursor where you wish to insert the text. 4. If you want to insert the text in another file, switch to that file using the NextFile, PrevFile, or EditFile command to access that file. Then place the cursor at the desired position. 5. Enter Paste <Grey *> to insert the text. If you have copied a column Block into the Scrap Buffer and wish to insert it by overlaying existing text then use PasteOver <Ctrl PrtSc> instead of Paste. Since Paste and PasteOver leave the contents of the Scrap Buffer intact, you can make multiple insertions in the same or different files. Simply move the cursor to the file and position where you wish to make additional insertions and enter Paste <Grey *> or PasteOver <Ctrl PrtSc>. Please note that the next time you issue a Cut or Copy command, the previous contents of the Scrap Buffer will be discarded. * Cut <Grey -> and Paste <Grey *> / PasteOver <Ctrl PrtSc> Cut and Paste/PasteOver work exactly like Copy and Paste/PasteOver except that Cut will delete the marked Block from the file. You can still make multiple insertions of the text using the Paste or PasteOver Commands. ��������������������������������������������������������������Ŀ � Tip: � � The editor 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. The editor allows you to create and name up to 99 Scratch Buffers for each editing session. These can be useful if you have several different Blocks of text that you want to insert in multiple locations. The commands StoreScrBuff <Ctrl B S>, AppendScrBuff <Ctrl B A>, and GetScrBuff <Ctrl B L> are used to place text in, and retrieve text from, a Scratch Buffer. Whenever you issue one of these commands, the editor will ask you for the name of the Scratch Buffer. If you want to use an already created scratch buffer, and do not remember the name, just press <Enter> on an empty prompt (press the DelLine key to quickly remove any text in a prompt) and a list of existing Scratch Buffers will be shown, allowing you to select the appropriate one. Finally, you can remove a Scratch Buffer, if it is no longer needed, with the DelScratchBuff <Ctrl B D> command. The contents of all Scratch Buffers are discarded when the editor is terminated. * StoreScrBuff <Ctrl B S>, AppendScrBuff <Ctrl B A> To place a Block of text into a named buffer: 1. Mark the Block. 2. If you want to create a new Scratch Buffer containing the marked Block, execute StoreScrBuff <Ctrl B S>. (This command is also used if you wish to replace the current contents of a Scratch Buffer with the marked Block.) If you want to append the marked Block to the current contents of the Scratch Buffer, execute AppendScrBuff <Ctrl B A>. 3. The editor prompts for the name of the Scratch Buffer. ���������������������������������������������������������Ŀ �Store (Append) to buffer: � � � ����������������������������������������������������������� 4. Enter a name. It is best to use a name which reflects the contents of the buffer and is easily remembered. Or press <Enter> to get a list of existing Scratch Buffers, if you cannot remember the name and want to use an existing Buffer. The Block is now stored in a Scratch Buffer under the assigned name. * GetScrBuff <Ctrl B L> To retrieve the contents of a named Scratch Buffer and insert it at the current cursor position: 1. Position the cursor where you wish the contents of the named Scratch Buffer to be inserted. 2. Enter GetScrBuff <Ctrl B L>. The editor prompts for the name of the Scratch Buffer to be retrieved. �������������������������������������������������������Ŀ �Get from buffer: �

� � ��������������������������������������������������������� 3. Enter the name of the desired Scratch Buffer, or press <Enter> to choose from a list of existing Scratch Buffers. 4. Repeat the above steps whenever you want to insert the contents of a Scratch Buffer into your text. Accessing the Microsoft Windows Clipboard The following handy commands allow you to copy or paste text between the current file and the Microsoft Windows Clipboard. * WinClipCopy This command makes a copy of the marked Block and inserts it directly into the Microsoft Windows Clipboard. * WinClipPaste This command inserts a copy of the contents of the Microsoft Windows Clipboard directly into the current file at the cursor position. Note that the OS/2 version of the editor allows you to access the OS/2 Clipboard. Examples of Block Commands This section contains examples of commonly used Block Commands. * Copying or moving a Block within the same file. 1. Position the cursor at the beginning of the Block to be copied or moved. 2. Enter DropAnchor <Alt A> to mark a stream of characters, or MarkLine <Alt L> to mark whole lines, or MarkColumn <Alt K> to mark a column of text. 3. Position the cursor at the end of the Block to be copied or moved. 4. Enter DropAnchor, MarkLine, or MarkColumn again to mark the end of the Block. 5. Move the cursor to the location where you want to insert the marked Block. 6. Enter CopyBlock <Alt C>, CopyOverBlock <Alt Z> (column Blocks only), or MoveBlock <Alt M>. 7. Enter UnmarkBlock <Alt U> to unmark the Block. The Block has now been copied or moved. * Copying or moving a Block to another file.

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

* Copying or moving a Block for multiple insertions in more than one file.

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

* Copying multiple Blocks for insertion in one or more files. If you have several Blocks that you want to insert in several different files, follow these steps: 1. Position the cursor at the beginning of the first Block. 2. Enter DropAnchor <Alt A> to mark a stream of characters, or MarkLine <Alt L> to mark whole lines, or MarkColumn <Alt K> to mark a column of text. 3. Position the cursor at the end of the first Block. 4. Enter AppendScrBuff <Ctrl B A> if you want to append to an existing Scratch Buffer. Otherwise, enter StoreScrBuff <Ctrl B S> to create or overwrite an existing Scratch Buffer. 5. The editor will prompt for the name of the buffer. Enter a name. (It is best to use a name which reflects the contents of the buffer and is easily remembered). The Block is now stored in a Scratch Buffer under the assigned name. Repeat steps 1-5 for each additional Block you want to store.

6. Switch to the "target" file using the file commands EditFile, NextFile, or PrevFile. 7. Move the cursor to the location in the file where you want to insert a Block. 8. Enter GetScrBuff <Ctrl B L>. The editor 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 the editor's array of Block commands, there are also many commands for manipulating your text which do not depend on marked Blocks. This section explains non-Block commands. Adding Text * AddLine <F2> As its name implies, this command inserts a blank line in the text. The line is added immediately below the current cursor line. The cursor is moved to the new line. The cursor column does not change. * InsertLine <Alt F2> This command inserts a blank line in the text above the cursor line. The cursor remains on the new line and the cursor column does not change. * Literal <Ctrl P> The Literal command is used to insert control characters into the text. To use this command, enter <Ctrl P> followed by a control character. The control character will be inserted into the text. For example, to insert a formfeed character (ASCII 12) in the text, enter <Ctrl P> <Ctrl L>. This command is handy for entering the control characters represented by ASCII decimal values 1 through 26. Simply enter <Ctrl P> followed by <Ctrl A> for ASCII character 1, or <Ctrl B> for ASCII character 2 and so on, up to <Ctrl Z> for ASCII character 26. ��������������������������������������������������������������Ŀ � Tip: � � An alternate and perhaps easier method of entering control � � characters or any ASCII character into your text is to � � hold down the <Alt> key and enter the decimal equivalent � � of the ASCII character using the numeric keypad. For � � example, to insert a formfeed character (ASCII 12) in the � � text, just enter <Alt 12> using the numeric keypad. � � � � If a linefeed character (ASCII 10) is entered, the editor � � will split the line at this position the next time the � � file is edited. � � �

� Another method for entering ASCII characters into the text � � is to use the AsciiChart command, described below. � ���������������������������������������������������������������� * AsciiChart <Esc><O><T> Displays a scrollable ASCII chart on the screen. When the ASCII chart is displayed, the cursor bar is located on the entry that corresponds to the character at the cursor position in the text. If the cursor is positioned in the text beyond the end of the line, the cursor bar is located on the first item in the ASCII chart (the null character). To place a display character from the ASCII chart into the text, scroll the cursor bar to the desired entry and press <Enter>. The ASCII chart is removed from the screen, and the selected character is placed in the text at the cursor position. To remove the ASCII chart from the screen without placing a character into the text, press <Esc>. * ToggleBoxDraw <Shift F1> This is a specialized command which is really a mode of operation that can be switched ON or OFF. If switched ON, the cursor movement keys (up, down, right, left) can be used to "draw" lines in the text. This can be very useful for creating graphs and tables. To switch Box Drawing mode ON, enter <Shift F1>. To switch OFF, enter <Shift F1> again. When Box Drawing mode is ON, a "B" appears on the StatusLine. * ToggleEnterMatching <Esc><O><E> This is also a specialized command which is really a mode of operation that can be switched ON or OFF. If switched ON, the editor will automatically insert into the text a corresponding ), ], }, or " character each time a (, [, {, or " character, respectively, is entered. To switch EnterMatching mode ON, enter <Esc><O><E>. To switch OFF, enter <Esc><O><E> again. Copying Text * GetPrev <Ctrl - (dash)> This command copies the character directly above the cursor onto the cursor line. To get an idea of how this command works, place the cursor at the beginning of any line which has text on the line immediately above it. Now press <Ctrl - (dash)> and hold it down. The cursor will move to the right while copying the the characters from the line above. * DupLine <F4> This command simply makes a copy of the current cursor line and inserts this copy on the line immediately below the cursor line. The cursor is placed on the new line. * Copy <Grey +>, Paste <Grey *> Refer to the "Block Commands" section in this chapter for a complete explanation of these commands. The commands are included here because, if desired, the User can configure the editor 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 <Alt J> This command will join the following line to the end of the current line. The cursor position does not change. If the cursor is positioned on or before the last non-blank character of the line, the line below will be appended immediately following the last non-blank character. If the cursor is positioned beyond the last non-blank character of the line, the line below will be appended beginning at the current cursor position. If the line below the cursor line is blank, the blank line will be deleted. * Return <Enter> Before reading the explanation of the Return command, it may be helpful to review the discussion of Insert mode in the "Modes" section in this chapter. If the editor is in Insert mode, this command performs like the SplitLine command; that is, all text on and to the right of the cursor on the cursor line will be deleted and inserted on a new line immediately below the cursor line. The cursor, however, will be placed on the new line. If the editor is not in Insert mode, this command will simply place the cursor at the beginning of the line below the cursor line. No text will be affected. If the editor is in AutoIndent mode, the cursor will be placed at the left margin instead of at the beginning of the line. ��������������������������������������������������������������Ŀ � Tip: � � The editor can be configured so the Return command does � � not split lines in Insert mode. Refer to the "Advanced � � Options" section of Chapter 2 for more information. � ���������������������������������������������������������������� * SplitLine <Alt S> This command will split the current line at the cursor position. cursor position will not change.

The

* SwapChars This command will swap the character at the cursor position with the character preceding the cursor. The cursor column position does not change. * SwapWords This command will swap the word in which the cursor is positioned with the previous word on the current line. Any "non-word" characters between the affected words are preserved. * SwapLines <Ctrl F2> or <Esc><E><P> This command will swap the current line with the line immediately following it. The cursor does not change its position relative to the screen. * Cut <Grey ->, Paste <Grey *> Refer to the "Block Commands" section in this chapter for a complete explanation of these commands. The commands are included here because, if desired, you can configure the editor so that these commands act on the current cursor line in the same manner in which they act on Blocks. For more information on how to configure this option, refer to the "Advanced Options" section of Chapter 2. * ShiftLeft <Shift F7>, ShiftRight <Shift F8> Refer to the "Block Commands" section in this chapter for a complete explanation of these commands. The commands are included here because, if there is no marked Block in the text, these commands will act on the current cursor line. Deleting And Undeleting Text * Backspace <Backspace>, DelLtWord <Ctrl Backspace> If Insert mode is ON, the Backspace command deletes the character to the left of the cursor. The text to the right of the cursor is pulled behind the cursor as it moves to the left. If the cursor is in column one and you enter Backspace, the cursor line is appended to the line immediately above. If Insert mode is OFF, the Backspace command works the same as above except the text to the right of the cursor is not pulled behind the cursor as it moves left. The DelLtWord command is a backspace for "words". It works just like the Backspace command, except that it deletes all characters from the cursor to the beginning of the previous word. * DelCh <Del>, DelRtWord <Ctrl T> DelCh will delete the character at the cursor position and pull the text to the right of the cursor, one column to the left. If the cursor position is to the right of the last non-blank character on the cursor line, the line immediately below will be appended to the cursor line. The DelRtWord command is a character delete for "words". It works

just like the DelCh command, except that it deletes all characters from the cursor to the beginning of the following word. * DelToEol <F6> This command deletes the character at the cursor position and all text to the right of the cursor on the current cursor line. The cursor position does not change. * DelLine <Alt D> This command deletes the current cursor line from the text. All text below the deleted line is shifted up one line. * UndoCursorline <Ctrl Q L> This command allows you to reverse any changes you have made to the cursor line. This can be helpful if you accidentally delete or change part of a line, or you just change your mind and want the cursor line back the way it was. This command must be issued before the cursor is moved from the current cursor line and before any file or window commands are entered. Changes made using the FindReplace command cannot be reversed with this command. * UnKill <Ctrl U> This command allows you to retrieve text that has been deleted by the DeleteBlock, DelLine, DelRtWord, or DelToEol commands. Refer to "The Kill Buffer - A Safety Net" section in this chapter for a complete explanation of the use of this command. Changing Case * Upper <Alt 1> This command changes the current character to its upper-case equivalent. If the cursor is in a Block when invoked, all characters in the Block are upper-cased. * Lower <Alt 2> This command changes the current character to its lower-case equivalent. If the cursor is in a Block when invoked, all characters in the Block are lower-cased. * Flip <Alt 3> This command flips the case of the current character. If the cursor is in a Block when invoked, all characters in the Block are flipped. Sorting The editor allows you to sort a range of lines, using a column Block as the key upon which the sort is based. In order to use the Sort feature, mark a column Block indicating the key on which to sort, and then press <Shift F3>. The Sort can be configured (either interactively or by using the configuration program, QCONFIG) to ignore or respect case, and to sort in ascending or descending order. * Sort <Shift F3> or <Esc><B><S> Sorts all the lines spanned by a column Block, using the column Block as the sort key.

* ToggleSortCaseInSensitive <Esc><B><I> Toggles sort case sensitivity ON or OFF. Set this option ON to have the Sort command ignore the case of characters when sorting; set this option OFF to have the Sort command respect upper/lower case. * ToggleSortDescending <Esc><B><N> Toggles the sort order between ascending and descending. Set this option OFF to sort in ascending order; set this option ON to sort in descending order. The Kill Buffer - A Safety Net ������������������������������ The editor 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 the editor 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. Text that has been deleted by the following commands will be placed into the Kill Buffer: DeleteBlock DelLine DelRtWord DelToEol <Alt G> <Alt D> <Ctrl T> <F6>

To understand how the Kill Buffer works and how text is recovered from the Kill Buffer, refer to the following illustration: The Kill Buffer Entry Command Number Entered Buffer Contents �����������������������������������������������������Ŀ top � 4 � DelToEol � part of this line was deleted. � �����������������������������������������������������Ĵ � 3 � DelRtWord � word (1 word deleted) � �����������������������������������������������������Ĵ � 2 � DelLine � This entire line was deleted. � �����������������������������������������������������Ĵ � 1 � DelLine � This entire line was deleted. � �����������������������������������������������������Ĵ � empty � � � �����������������������������������������������������Ĵ � empty � � � ������������������������������������������������������� bottom Each time one of the text deletion commands is used, a new entry is made in the Kill Buffer. In the above example, four deletion commands have been issued. The text from these four commands has been stored in the Kill Buffer from top to bottom. In other words, when the DelToEol command was issued (entry #4), the first three entries were pushed toward the bottom of the Kill Buffer and the newly deleted text was

entered at the top. In the example, the Kill Buffer has enough room for six entries. When a seventh entry is made, the oldest entry, or entry number one, will be discarded from the Kill Buffer. Once discarded from the Kill Buffer, that text can no longer be recovered. To recover deleted text, the UnKill <Ctrl U> command is used. Each time the UnKill command is issued the most recent entry (the "top" entry of the Kill Buffer) is retrieved and restored to the file. This entry is then deleted from the Kill Buffer, and all remaining entries move toward the top of the buffer by one position. In the example, the first time the UnKill command is issued, entry #4 will be recovered. Next, entry #3 will be recovered, and so on. Thus, recovering deleted text follows the rule of LIFO (last in, first out). The last entry of deleted text will be the first one recovered and the first entry of deleted text will be the last one recovered. Here are some additional items of which to be aware regarding the Kill Buffer and its uses. * A separate Kill Buffer is maintained for each file loaded into the editor. 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 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, the editor will save the deleted text in the Kill Buffer from the bottom up. For example, if a marked Block is 200 lines long and five lines too large for the Kill Buffer, then the top five lines of the Block will not be loaded into the Kill Buffer. * When issuing the UnKill command to recover deleted text, deleted lines will be inserted immediately before the current cursor line, and deleted words will be inserted immediately before the current cursor position. MACROS ���������������������������������������������������������������������� The editor provides a helpful facility for creating macros, allowing you to simplify and automate editing tasks and to more fully customize the editor. Macros can be created as simple Keyboard Macros, by having the editor record a series of keystrokes as they are entered from the keyboard. More versatile macros can be created by assigning a series of editing and macro commands to specific keys within the editor's Keyboard Definition file (QCONFIG.DAT). To create even more complex macros, QMac

(the external macro facility) can be used. registered version.)

(QMac is included in the

For more information about creating and using macros, refer to the file MACRO.DOC.

PRINTING ���������������������������������������������������������������������� The editor allows you to print either your entire current file or a portion of the current file. To print the entire current file, enter the PrintAll <Alt P><A> command. The entire current file is printed. To print a portion of the current file, first mark the portion of the file to be printed using the Block-marking commands. (Refer to the "Block Commands" section in this chapter.) Next, enter the PrintBlock <Alt P><B> command. Only the marked Block portion of the file is printed. Print Formatting ���������������� The editor contains various commands to make printing easier and more useful. There are commands to set the left margin, the top margin, and the bottom margin; to specify the number of lines per page; to indicate the output destination; to select single-, double-, or triple-spacing; and to indicate whether you want to print line numbers. * SetPrintLeftMargin <Alt P><L> or <Esc><P><L> This command specifies the number of blank spaces to be used as a left margin. Valid values are zero to 200. * SetPrintPageSize <Alt P><P> or <Esc><P><P> This command specifies the number of lines to be printed on each page. Valid values are zero to 200. A value of zero instructs the editor to print continuously without page breaks. * SetPrintTopMargin <Alt P><T> or <Esc><P><T> This command specifies the number of lines printed at the top of each page before the text is printed. Valid values are zero to 200. If the print page size is zero, the editor treats the document as one page and the top margin is ignored for all pages except the first printed page. * SetPrintBotMargin <Alt P><O> or <Esc><P><O> This command specifies the number of lines left blank at the bottom of each page. Valid values are zero to 200. If the print page size is zero, this command has no effect. * SetPrintDevice <Alt P><D> or <Esc><P><D> This command identifies the print output destination. Choices are PRN, LPT1, LPT2, LPT3, or any valid DOS filename (for printing to disk).

* SetPrintLineSpacing <Alt P><S> or <Esc><P><S> This command indicates the number of lines to advance for each new line of text to be printed. Valid values are 1 to 200. A value of 1 signifies single-spaced output, 2 signifies double-spaced output, etc. * TogglePrintLineNumbers <Alt P><N> or <Esc><P><N> This command determines whether line numbers are printed. Set this option ON to have file line numbers printed at the beginning of each line; set this option OFF if you do not want line numbers added to the print output. * TogglePrintPause <Alt P><U> or <Esc><P><U> This command determines whether the editor suspends printing between pages. To have the editor pause after each page is sent to the printer, set this option ON. (For this option to operate effectively, the print page size must be set to an appropriate value greater than 0. Refer to SetPrintPageSize in this section.) The editor then requires a keypress after every page is printed before continuing. This allows you to manually feed paper to the printer, one sheet at a time. Set this option OFF for the editor to automatically send each subsequent page to the printer without pausing. Formfeeds ��������� The editor automatically sends a formfeed character (ASCII 12) to the printer between each printed page. A page is determined according to the value of SetPrintPageSize (refer to the previous section). By default, the editor also sends a formfeed character when printing is complete (after the last printed page). You can configure the editor so that it does not send a final formfeed. To change the default behavior, set the configuration option "Add formfeed after printing" to <N>. (Refer to the "Printer Options" section of Chapter 2.) You can also change this option interactively for the current session only, with the following command: * TogglePrintAddFF <Alt P><R> or <Esc><P><R> This command determines whether the editor sends a formfeed character when printing is complete (after the last printed page). To have the editor send a final formfeed character to the printer, set this option ON. Set this option OFF to prevent the editor from automatically sending a final formfeed character. At times you may find it desirable to insert formfeed characters directly into your text. For example, you want the page size for your text to be 55 lines, which you have set using the SetPrintPageSize command, but there is a 15-line table in the text that should appear on a page by itself. To accomplish this, simply insert formfeed characters immediately before and after the table.

To insert a formfeed character in the text, enter the Literal <Ctrl P> command followed by a formfeed <Ctrl L> character. Alternatively, you can insert a formfeed character by holding down the <Alt> key and typing "12" on the alternate numeric keypad. (You can also use the built-in ASCII-chart feature to insert a formfeed character. Refer to the AsciiChart command in the section "Adding Text" of this chapter.) If you need to insert formfeed characters into your text repeatedly, you may want to use a macro. An example of a macro to insert formfeed characters can be found in the "Example of a Keyboard Macro" in the file MACRO.DOC. It is also possible, from within the editor, to send a formfeed character directly to the printer, causing the printer to eject a page. To do this, simply execute the PrintEject <Alt P><F> command. THE SHELL AND DOS COMMANDS ���������������������������������������������������������������������� (For the following discussion, "Dos" is an editor command, while "DOS" refers to the computer's operating system.) Two very helpful commands 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. The editor also has an option which frees up memory when executing the Shell and Dos commands. For details, see "Swapping, [JR] Shell Indicator" later in this section. * Shell <F9> This command should be used when executing multiple DOS commands. Upon executing the Shell command, control is passed to DOS. The DOS prompt appears on the screen, just as if no other programs were running. You may now enter most DOS commands. (Some exceptions are noted below.) Once you have entered all the desired DOS commands, simply type "exit" and press <Enter>, and control passes back to the editor. You are then positioned in the file exactly where you were when the Shell command was executed. * Dos <Alt F9> This command should be used when executing a single DOS command. Upon executing this command, the editor prompts with: ������������������������������������������������������������Ŀ �Execute what: � � � �������������������������������������������������������������� You may now enter almost any DOS command. (Some exceptions are noted below.) Once the DOS command has completed, pressing any key causes control to pass back to the editor. 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 the Shell or Dos command, the computer's memory allocation scheme will probably become fragmented, and as a result, the editor's available memory may become severely limited. You should save your files, terminate the editor, and then reboot the computer. Swapping, [JR] Shell Indicator ������������������������������ The Dos and Shell commands can optionally swap the editor out to disk or expanded memory leaving only a 2K kernel in memory. This allows much more memory for running memory-hungry programs (such as compilers) from within the editor. You can set this option by default using the configuration program (Advanced Options), or you can toggle it ON and OFF using the ToggleSwap command. While in a shell with swapping ON, the editor will maintain a file with a ".SWP" file extension in your root directory. It is very important that you do not delete this file while in the shell. Once in the shell, the editor will optionally append "[JR]" to the DOS prompt string, provided that: 1. You have defined the prompt environment variable. 2. There is enough space left in the environment. 3. You have set the "Change DOS PROMPT during a Shell" option to <Y> via the configuration program. (For more information, refer to the "Advanced Options" section of Chapter 2.) If you have NOT defined the prompt environment variable, then we suggest you do so. It is helpful with DOS command-line operations in general. A suggested prompt is (this should go in your AUTOEXEC.BAT file): set prompt=$p $t $g If you do have a prompt string defined, but you do not get the "[JR]" prompt in the editor's shell, add the following to your AUTOEXEC.BAT: set x=x WORD-PROCESSING COMMANDS ���������������������������������������������������������������������� The editor 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), the editor provides word-wrapping, paragraph-reformatting capabilities, and a line-centering command. The editor also contains commands for changing case and for filling a Block. Refer to the sections in this chapter on "Changing Case" and "Manipulating Blocks Directly," respectively, for more information on these two functions.

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

* CenterLine <Ctrl O T> Centers the current cursor line based on column 1 and the right margin. Use the SetRmargin <Ctrl O R> command to change the right margin (see above). With the cursor inside of a line Block, you can execute this command to center several lines at once. With the cursor inside of a column Block, you can center lines based on the left and right Block boundaries. MODES ���������������������������������������������������������������������� The editor uses modes to affect its operation. In general, an editor mode is a state during which certain commands or keystrokes behave differently. Following is an explanation of various editor modes. * Insert mode Insert mode can be switched ON and OFF by pressing the <Ins> key. When Insert mode is ON, an "I" appears on the StatusLine. The following table describes the commands and keystrokes which are affected by Insert mode. Command/ Keystroke ����������� Characters, Space Backspace

Insert ON ���������������������� Shifts text to right of cursor, one column to the right. Deletes character/word to left of cursor. Text to right of cursor shifts left one column. Splits line at cursor position. Cursor moves to next line. Tabs cursor and shifts text same number of positions.

Insert OFF ���������������������� Overwrites existing text. Deletes character/word to left of cursor. Text to right of cursor does not shift. Does not split line. Cursor moves to next line. Tabs cursor only.

Return

TabLt, TabRt

* CUA-Style Block Marking mode This mode enables CUA-style Block marking, using the shifted cursor keys. CUA-Style Block Marking mode can be switched ON and OFF using the ToggleCUAMarking command. You can also set this mode as the default mode by setting the configuration option "Use CUA-style (shift cursor) block marking" to <Y>. (Refer to the "Advanced Options" section of Chapter 2.) When switched ON, this mode forces the shifted cursor keys to mark non-inclusive character Blocks. The "CUA-Style Block Marking" section of this chapter provides additional information about this mode.

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

AutoIndent ON �������������������������� Cursor positioned below first non-blank character of previous line. When reformatting, the left margin is determined from the first non-blank character on the line immediately following the cursor line.

AutoIndent OFF ������������������������ Cursor positioned at column one. A left margin of zero is used when reformatting.

WrapPara

* C mode This mode is specifically switched ON and OFF using "General Options" section mode ON and OFF.) C mode also ON.

for "C" language programming. It is the configuration program. (Refer to the of Chapter 2 for information on switching C is only in effect when AutoIndent mode is

C mode, when switched ON, affects files with a ".c", ".cpp", ".cxx", ".h", ".hpp", or ".hxx", file extension. When the current cursor line contains a "{" and the <Enter> key is pressed, the editor issues a normal Return followed by a TabRt command. Additionally, when a "}" character is entered, the editor first issues a TabLt command and then enters the "}" character. * WordWrap mode WordWrap mode is switched ON and OFF using the ToggleWordwrap <Ctrl O W> command. When switched ON, this mode causes the cursor to advance to the next line automatically as text is entered. The cursor advances to the next line based on the right margin, which is set using the SetRmargin <Ctrl O R> command. Once the cursor reaches the right margin and a non-blank character is typed, the cursor, along with the word (i.e., any continuous string of non-blank characters) currently being typed, is advanced to the next line. The cursor does not advance to the next line if the current line does not contain at least one space. When WordWrap mode is ON, a "W" appears on the StatusLine.

* BackUp mode BackUp mode is switched ON and OFF using the ToggleBakups <Esc><O><B> command. When BackUp Mode is switched ON, the editor creates a backup copy (using the .bak file extension) for any file that is edited and saved. The backup copy of the file is an image of the file before it was last edited and saved. When BackUp mode is OFF, no backup files are created. * MacroRecord mode MacroRecord mode is switched ON and OFF using the MacroRecord <Ctrl M> command. This mode, when ON, records and assigns a series of commands and keystrokes to a designated key (or scrap area). This creates a Keyboard Macro. For a complete explanation of macros and their use, refer to the file MACRO.DOC. When MacroRecord mode is ON, an "R" appears on the StatusLine. * EnterMatching mode EnterMatching mode is switched ON and OFF using the ToggleEnterMatching <Esc><O><E> command. If switched ON, the editor automatically inserts into the text a corresponding ), ], }, or " character each time a (, [, {, or " character, respectively, is entered. * Box Drawing mode Box Drawing mode is switched ON and OFF using the ToggleBoxDraw <Shift F1> command. If switched ON, the cursor movement keys (up, down, right, left) can be used to "draw" lines in the text. This can be very useful for creating charts and tables. The ToggleBoxType command allows you to select different line drawing styles. When Box Drawing mode is ON, a "B" appears on the StatusLine. * Synchronized Scrolling mode Synchronized Scrolling mode is switched ON and OFF using the ToggleSyncScroll <Ctrl O Y> command. If switched ON, and there are multiple windows on the screen, the editor simultaneously performs cursor movement and scrolling activity in all other windows as you move the cursor or scroll the text in the current window. When Synchronized Scrolling mode is ON, an "S" appears on the StatusLine. The "Synchronized Scrolling in Windows" section of this chapter provides additional information about this mode. * Fixed Tabs mode Fixed Tabs mode is selected using the SetTabType <Esc><O><Y> command. If selected, the TabRt and TabLt commands move the cursor to the next (or previous) tabstop as defined by the value of the cursor tab width (set by the SetCtabwidth <Esc><O><C> command). * Smart Tabs mode Smart Tabs mode is selected using the SetTabType <Esc><O><Y> command. If selected, the TabRt and TabLt commands place the cursor beneath the

first character of the next (or previous) word on the first nonblank line preceding the current cursor line. * Variable Tabs mode Variable Tabs mode is selected using the SetTabType <Esc><O><Y> command. If selected, the TabRt and TabLt commands move the cursor to the next (or previous) tabstop as defined by the variable tab stops (set by the SetVarTabStops <Esc><O><V> command). Note that all of the supported tab modes may be set via the Tab type menu (<Esc><O><Y>). * Physical Tab Expansion mode Physical Tab Expansion mode is switched ON and OFF using the ToggleTabsExpand <Alt V> command. If switched ON, physical tab characters (ASCII 9) found in a file are expanded into spaces according to the Physical Tab Width set in the configuration program. (Refer to the "Tab Settings" section of Chapter 2.) If switched OFF, physical tabs are displayed on the screen and a physical tab character is placed in the text each time the TabRt command is executed. ��������������������������������������������������������������Ŀ � Tip: � � In general, Physical Tab Expansion mode should always be � � set ON. You would only want to set it OFF if you are � � editing binary or data files that contain or require � � physical tabs. � ���������������������������������������������������������������� * Tabs Out mode Tabs Out mode is switched ON and OFF using the ToggleTabsOut <Alt I> command. If switched ON, continuous spaces in a line of text are replaced with physical tabs (ASCII 9) according to the Physical Tab Width set in the configuration program. (Refer to the "Tab Settings" section of Chapter 2.) Spaces falling between single or double quotes are not replaced.

CHAPTER 2. CUSTOMIZING THE EDITOR ���������������������������������������������������������������������� The editor provides a configuration capability that allows you to customize the editor to suit your individual preferences. There are a wide range of options which may be customized, including key assignments, colors, tab settings, and printer options. Of course, customizing the editor is not a requirement. If you like the editor exactly the way it is, it is not necessary to use the configuration program. The configuration program is QCONFIG.EXE and is included on the distribution diskette, along with the other editor files. The configuration program customizes the editor by actually modifying the editor program itself - Q.EXE. INITIATING THE CONFIGURATION PROGRAM ���������������������������������������������������������������������� To initiate the configuration program, type "qconfig" from the DOS command line, and press <Enter>. The program displays a prompt to request the name of the editor program to customize. The following prompt is issued by the configuration program: Enter program name to config, <CR> for Q.EXE : Simply press <Enter>, unless you have previously renamed the editor, or if the editor is located in another directory. If you have renamed the editor, enter the appropriate filename and press <Enter>. If it is located in another directory, enter the full pathname and press <Enter>. If the file to be customized could not be located on disk, the error message "File not found" is displayed. Check the editor's filename and/or path for accuracy. If the version numbers of the editor and the configuration program are not the same, the error message "Configuration area not found" is displayed. Try reloading the editor software from the distribution disk (in particular, Q.EXE and QCONFIG.EXE). THE CONFIGURATION MENU ���������������������������������������������������������������������� The configuration program displays the following menu from which to select the desired functions for customization. ��������������������������������������������������������������Ŀ � Configuration choices. � � Choose One of the Following by pressing the indicated Key: � � � � Advanced options � � Colors/screen �

� General options � � Help install � � Keys � � Printer options � � Quit � � Save changes and quit � � Tab settings � ���������������������������������������������������������������� Following is a brief explanation of these menu items. discussed in detail later in this chapter. They are

* Advanced options Contains a variety of configurable options, including those related to video display, DOS memory, editor menus, and the mouse. * Colors/screen Allows you to change colors of various display items and to specify numerous other editing display options. * General options A miscellaneous category of options. * Help install Allows you to install your own Help Screen. * Keys Allows you to reassign editor commands to different keys. * Printer options Allows you to set options for printing text, such as page size. * Quit Terminates the program. changes. You are first prompted to save or not save

* Save changes and quit Terminates the program, unconditionally saving your changes. * Tab settings Allows you to set various tab-related options, including the physical and cursor tab widths. To make a selection from the menu, type the first letter of the desired menu item. You are prompted for a response to each option within the category. Each configuration option is displayed along with its current value. (The Keys and Help install categories, however, work a little differently and simply request a filename.) For each option displayed, you may enter a new value. If you do not wish to change the current value, simply press <Enter>. After you have reviewed all options in a category, you are returned to the main configuration menu where you can select another category. Once you have completed customizing, you may save all the changes you have made either by simply typing "S" at the main menu prompt; or by typing "Q" at the main menu prompt, and then typing "Y" at the prompt,

"Save Changes (Y/N)?". Your changes are made permanent (that is, effective the next time you execute the editor) by writing them to the editor program itself (Q.EXE or QMR.EXE). The configuration program then terminates. If you decide that you do not want to save your changes, type "Q" at the main menu prompt, then type "N" at the prompt, "Save Changes (Y/N)?". No changes are saved, and the configuration program terminates. ADVANCED OPTIONS ���������������������������������������������������������������������� This section contains a list of the Advanced Options which can be customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option. * Test for presence of enhanced keyboard (Y/N)? [N] : If your system has an enhanced (101-key) keyboard, set this option to <Y> for the editor to recognize the additional keys such as F11, F12, and the grey cursor keys. ��������������������������������������������������������������Ŀ � Tip: � � Many TSRs, including mouse drivers, do not properly � � recognize the enhanced keyboard. If you are using a TSR � � and it is not working with the editor, try setting this � � option to <N>. � ���������������������������������������������������������������� * Swap to Expanded memory or DISK on the Dos and Shell commands (Y/N)? [Y] : Select <Y> if you want the editor to swap itself out of DOS memory and to expanded memory or disk whenever the Dos or Shell commands are executed. This will leave a small 2K editor kernel in DOS memory, freeing up the rest of DOS memory for running other applications, such as compilers or spreadsheets, out of the Dos or Shell commands. * Drive and path for swapping (*=default-drive) [C:\] : If you selected <Y> for the previous option, then specify here the disk drive and path to be used for swapping. Enter an asterisk ("*") if you want the editor to default to your current drive for swapping. * Should the editor change the cursor size (Y/N)? [Y] : By default, the editor uses a small cursor when Insert mode is OFF, and a medium cursor when Insert mode is ON. Select <N> if you do not want the editor to change the cursor size. * Do you want a large flashing cursor (Y/N)? [N] : If you want to use a large flashing block cursor, set this option to <Y>. This option is great for laptop users. * Size of cursor in Insert mode [0..7] [4] : Determines the size of the cursor when Insert mode is ON. A value

of 0 indicates that no cursor indication is to be displayed. 1 to 7 indicate increasingly larger flashing cursor sizes.

Values

* Size of cursor in overwrite mode [0..7] [1] : Determines the size of the cursor when overwrite mode is ON. A value of 0 indicates that no cursor indication is to be displayed. Values 1 to 7 indicate increasingly larger flashing cursor sizes. * Get num rows on screen from BIOS data area (100% IBM PC only)(Y/N)? [N] : FOR NON EGA/VGA SYSTEMS ONLY. Set this option to <Y> if you want the editor to automatically detect the number of rows on your screen. Setting this option to <Y>, to automatically detect the number of rows on your screen, only works if you have an IBM PC-AT or 100% compatible. For example, setting this option to <Y> does NOT work on AT&T 6300s. * Number of rows on screen (NOT NEEDED with EGA/VGA) [25..255] [25] : FOR NON EGA/VGA SYSTEMS ONLY. If you set the previous option to <N>, then you must provide the number of rows on your screen here. You should set this option to 25 unless you have a special card and monitor (such as a Genius Video System) that allow you to display more than 25 rows. * Do you want the Return command to split lines in Insert mode (Y/N)? [Y] : Normally, the Return command splits the current line at the cursor when executed with Insert mode ON. This means that the portion of the line following the cursor is inserted on a new line. If Insert mode is OFF, the Return command simply places the cursor at the beginning of the next line. If you select <N> for this option, the Return command always acts as if Insert mode is OFF. Return moves the cursor to the beginning of the next line with no effect on the text. * Should Cut and Copy use current line if no block marked (Y/N)? [N] : If you enter <Y> for this option, the current cursor line is used when you execute the Cut or Copy command and no Block is marked in the current file. * Do you want the Escape command to invoke the menus (Y/N)? [Y] : By default, the Escape command displays the pull-down menu, when executed outside of the menu or any editor prompts. If you do NOT want the Escape command to do this, select <N> for this option. * Should the editor restore the starting drive/dir on program exit (Y/N)? [Y] : Set this option to <Y> if you want to return to the original DOS drive and directory on program exit regardless of which drives and directories you have accessed with the editor's directory picker or the Dos or Shell commands. * Should the editor change the DOS PROMPT during a shell (Y/N)? [N] : Set this option to <Y> if you want the following to be appended to the DOS prompt during an editor Shell: [JR]. * Should TabRt/TabLt be allowed to shift an entire block (Y/N)? [N] :

Set this option to <Y> if you want the TabRt and TabLt commands to shift entire marked Blocks when the cursor is within the marked Block and Insert mode is ON. * Date format: 1=MM-DD-YY, 2=DD-MM-YY, 3=YY-MM-DD [1] : Determines the date format used by the InsertDate command. The date string consists of a three-character abbreviation for the day of the week, followed by the numerical date of the month. The order of the elements of the date of the month can be selected from three options: select <1> for month, followed by day of the month, followed by 2-digit year; select <2> for day of the month, followed by month, followed by 2-digit year; select <3> for 2-digit year, followed by month, followed by day of the month. * Character to use to separate the elements of the date [-] : Determines the separator character used by the InsertDate command. Select the character to be used to separate the day, month, and year elements of the date. * Time format: 1=24-hour, 2=12-hour [1] : Determines the time format used by the InsertTime command. Select <1> for 24-hour time format; select <2> for 12-hour time format. * Character to use to separate the elements of the time [:] : Determines the separator character used by the InsertTime command. Select the character to be used to separate the hours and minutes (and seconds for 24-hour format) elements of the time. * Full path to supplemental files [] : Identifies the directory where the editor's supplemental files are stored. These supplemental files are: the files used by the spelling checker (in the registered version); and any loadable macro files (that is, Keyboard Macros and macros created with QMac). If you are using DOS 3 or above and you store all supplemental files in the same directory as the editor, you do not need to set this option. * Enable mouse processing (Y/N)? [Y] : Determines whether the editor recognizes use of a mouse for editing operations. If this option is set to <Y>, and a mouse driver is loaded, the mouse will be active in the editor. Set this option to <N> to disable mouse operation within the editor. * Left-handed mouse (Y/N)? [N] : Determines whether the mouse operates as a left-handed mouse. Set this option to <Y> to swap the functions of the outside buttons on the mouse for use with your left hand. Set this option to <N> for standard operation of the mouse buttons. * Mouse hold time (in 1/18th sec) [1..36] [9] : Indicates the amount of time a mouse button must be held down to distinguish between the mouse button being clicked (pressed and immediately released) versus being pressed and held. When a mouse button is clicked, a command executed from a mouse scrollbar is executed one time only. When a mouse button is pressed and held, the command is executed repeatedly until the mouse button

is released. (See "Mouse repeat-delay factor" below.) scrolling operations are repeatable.

Only the

To select the amount of time that you must hold down the mouse button before the editor begins repeating a mouse-executed command, set this option to the desired value, from 1 through 36. The time is measured in terms of machine timer ticks, in 1/18-second increments. For example: A value of 9 means that the mouse button is considered clicked if pressed and released within 1/2 second; otherwise, if the mouse button is pressed and held for longer than 1/2 second, the editor begins repeating the selected command. * Mouse repeat-delay factor [0..32767] [600] : Indicates the relative amount of time the editor is to wait between repetitions of a command when a mouse button is pressed and held. (See "Mouse hold time" above.) When a mouse button is pressed and held, a command executed from a mouse scrollbar is repeated as long as the mouse button is held down. To control the amount of time that the editor delays between each repetition of a mouse-executed command, set this option to an appropriate value, from 0 through 32767. This option is hardware dependent, and is relative to the speed of your particular machine. To slow down repetition, increase the value of this option; to speed up repetition, decrease the value. * Use CUA-style (shift cursor) block marking (Y/N)? [Y] : Determines whether CUA-Style Block Marking mode is initially ON or OFF each time the editor is executed. If this option is set to <Y>, the editor forces the following shifted cursor keys to operate as indicated (regardless of the commands asssigned to these keys in QCONFIG.DAT): CUA-style Key �������������������� <Shift <Shift <Shift <Shift <Shift <Shift <Shift <Shift Cursor Cursor Cursor Cursor Home> End> PgUp> PgDn> Left> Right> Up> Down> Block-marking Operation ����������������������������������������������� Mark/extend Mark/extend Mark/extend Mark/extend Mark/extend Mark/extend Mark/extend Mark/extend Block Block Block Block Block Block Block Block and and and and and and and and move move move move move move move move left one character right one character up one line down one line to beginning of line to end of line up one page down one page

Set this option to <N> to have the shifted cursor keys operate according to their assignments in QCONFIG.DAT. * Should blocks remain marked after CUA marking (Y/N)? [N] : Determines whether a Block marked using the CUA-style marking keys (with CUA-Style Block Marking mode ON) will remain marked after you type a non-CUA-style Block marking or command key. Set this option to <Y> for such Blocks to remain marked. Set this option to <N> if you want such Blocks to be automatically unmarked once you type a non-CUA-style Block marking or command key.

COLORS/SCREEN OPTIONS ���������������������������������������������������������������������� This section contains a list of the Screen and Screen Color Options which can be customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option. * StatusLine position: 'T' for top, 'B' for bottom [T] : Indicates whether the StatusLine is to be positioned at the top line or the bottom line of the screen. * StatusLine fill character [ ] : This character is used to "break up" the information on the editor's StatusLine. The default is the space character. For example, if the dash character is specified, the StatusLine would look like this: �������������������������������������������������������������Ŀ �L 15-- C 15---IAW-BS--411K-----*c:\semware\editor.doc--------� ��������������������������������������������������������������� * Display hex/decimal values of current character on StatusLine (Y/N)? [N] : Shows the hexadecimal and decimal values of the current character at the right-hand edge of the StatusLine. * Do you want the display boxed (Y/N)? [N] : Indicates whether the editing screen is to be completely enclosed in a box, so that each window on the screen has a border. To fully use the mouse capabilities, set this option to <Y>. This is because the mouse uses the border area to scroll text and perform many window operations. * Do you want the original screen restored upon termination (Y/N)? [Y] : Determines whether the editor is to restore the original screen upon exiting the program. Be aware that setting this option to <Y> causes the editor to require an additional 4K of memory; however, this can be very handy after long editing sessions to see what you were doing before you started. * Do you want snow checking (Y/N)? [N] : Determines whether the editor should slow down screen updating to eliminate "snow" (a sparkling appearance on the screen that results from updating the screen too quickly). If this option is set to <Y>, and the editor determines that your system has a Color/Graphics Adapter card (CGA), the editor does not write to the screen at full speed, in order to avoid "snow". If you have a CGA card that does not create snow effects, set this option to <N> so that the editor updates the screen as quickly as possible. If you have a VGA, EGA, COMPAQ, ZENITH, or other color adapter that allows full speed screen updating without "snow", then set this option to <N>. This option has no effect on monochrome and true EGA/VGA cards.

* Columns to scroll horizontally for screen lt/rt commands [1..400] [1] : Specifies the number of columns that the editor should scroll when you execute the ScreenLeft or ScreenRight commands. * Startup video mode: 0=current, 1=25lines, 2=28lines, 3=43/50lines [0] : Determines whether the editor sets an initial video mode upon startup. 0: 1: 2: 3: Use Set Set Set the the the the current monitor monitor monitor video mode to 25-line mode to 28-line mode to 43/50-line mode

(VGA only) (EGA = 43, VGA = 50)

* Startup attribute set: 0=AutoDetect, 1=Monochrome, 2=Color [0] : Determines whether the editor uses color or monochrome attributes for the screen display. If you set this option to <0>, the editor will automatically detect the monitor type (color or monochrome) and use the appropriate attributes. * Do you want to configure the mono attribute set (Y/N)? [N] : Select <Y> if you wish to specify the attributes to use for the monochrome attribute set. * Do you want to configure the color attribute set (Y/N)? [N] : Select <Y> if you wish to specify the attributes to use for the color attribute set. (This option is skipped if you select <Y> for the previous option.) If you select <Y> for either of the previous two options, the following color chart and screen display options are presented: ��������������������������������������������������������������������������������Ŀ �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 still have the options of normal, highlighted, underlined, and reverse video. If you have a color monitor, you can take advantage of a wider array of options. (The default monochrome setting is shown in the text of each prompt message below. The default color setting is shown to the right of the prompt message.)

* Attribute for Blocked Text [112]: The color used for marked Blocks.

Default Color Setting: [120]

* Attribute for Error msgs [112]: Default Color Setting: [15] The color used for warning and error messages. * Attribute for Text Area [7]: Default Color Setting: [27] The color used for normal text (the editing screen). * Attribute for StatusLine [112]: The color used for the StatusLine. * Attribute for Cursor Line [15]: The color used for the cursor line. Block is marked. * Attribute for Messages [15]: The color used for messages. Default Color Setting: [112] Default Color Setting: [30] Reverts to normal when a Default Color Setting: [15]

* Attribute for Hi-lited items [9]: Default Color Setting: [9] The color used for "found" search strings when using the Find and FindReplace commands. * Attribute for EOF line/indicator [15]: Default Color Setting: [15] The color used for the "End of File" line. * Attribute for Help Screen [112]: The color used for the Help Screen. Default Color Setting: [112]

* Attribute for Display Box Border [15]: Default Color Setting: [31] The color used for the border around the editor, if the editing screen is boxed. * Attribute for PopUp windows [15]: Default Color Setting: [112] The color used for the border around the pull-down menus and the prompt boxes. * Attribute for Menu items [7]: Default Color Setting: [112] The color used for items within sub-menus of the pull-down menu. * Attribute for Selected Menu items [112]: Default Color Setting: [32] The color used for selected items within the pull-down menus. * Attribute for Menu Quick Letter [15]: Default Color Setting: [116] The color used for the highlighted quick-key letter for each item listed on the pull-down menus. * Attribute for Selected Menu Quick Letter [15]: Default Color Setting: [36] The color used for the highlighted quick-key letter for the selected item on the pull-down menus. GENERAL OPTIONS ���������������������������������������������������������������������� This section contains a list of the General Options which can be

customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option. * Do you want the DelCh command to join lines if at EOL (Y/N)? [Y] : Affects the behavior of the DelCh command. Set this option to <N> if you want the DelCh command to be restricted so that it only works on the current line. Set this option to <Y> if you want the DelCh command to work across line breaks. This means that if you issue DelCh at the end of the line, the following line is joined to the end of the cursor line (just as if you had issued a JoinLine command). * Do you want PQuit, Exit, and File to return to EditFile prompt (Y/N)? [Y] : If only 1 file is being edited, the editor can either terminate or ask for another file to edit whenever the PQuit, Exit, or File commands are executed. To have the editor terminate, select <N>. * Do you want the editor to start in WordWrap mode (Y/N)? [N] : Set this option to <Y> if you want WordWrap mode to be ON each time the editor is started; otherwise, set it to <N>. Refer to the "Word-Processing Commands" section of Chapter 1 for more information on WordWrap mode. * Default right margin for WordWrap [1..2032] [72] : Indicates the default right margin setting to be used each time the editor is executed. Set this option to a value from 1 to 2032. Refer to the "Word-Processing Commands" section of Chapter 1 for more information. * Do you want the editor to start in Insert mode (Y/N)? [Y] : Set this option to <Y> if you want Insert mode to be ON each time the editor is started; otherwise, set it to <N>. Refer to the "Modes" section of Chapter 1 for more information on Insert mode. * Do you want the editor to start in AutoIndent mode (Y/N)? [Y] : Set this option to <Y> if you want AutoIndent mode to be ON each time the editor is started; otherwise, set it to <N>. Refer to the "Modes" section of Chapter 1 for more information on AutoIndent mode. * Do you want the editor to use sticky AutoIndent (Y/N)? [N] : Set this option to <Y> if you want autoindenting to search back more than one line, if necessary, to find a nonblank line. AutoIndent mode must be set ON for this option to work. Refer to the "Modes" section of Chapter 1 for more information on AutoIndent mode. * Load wildcarded filespecs from the command line (Y/N)? [Y] : Affects the editor's behavior when filenames are specified containing wildcard characters (* or ?), from the DOS command line. Set this option to <Y> if you want the editor to load every file that matches the wildcarded specification. (For example, if you enter "q *.doc", the editor loads all files with the extension ".doc"). Set this option to <N> if you want the editor to display a pick list of all the files which match the wildcarded specification. (You can then choose the file you want to edit by using the cursor keys to move to the desired file and then pressing <Enter>.)

* Load wildcarded filespecs from inside the editor (Y/N)? [N] : Affects the editor's behavior when filenames are specified containing wildcard characters (* or ?) within the prompt box for the EditFile command. Set this option to <Y> if you want the editor to load every file that matches the wildcarded specification. (For example, if you enter "*.doc", the editor loads all files with the extension ".doc"). Set this option to <N> if you want the editor to display a pick list of all the files which match the wildcarded specification. (You can then choose the file you want to edit by using the cursor keys to move to the desired file and then pressing <Enter>.) * Do you want the editor to start in EnterMatching mode (Y/N)? [N] : Set this option to <Y> if you want EnterMatching mode to be ON each time the editor is started; otherwise, set it to <N>. Refer to the "Modes" section of Chapter 1 for more information on EnterMatching mode. * Use CMODE for .c, .cpp, .cxx, .h, .hpp, and .hxx files (Y/N)? [Y] : Set this option to <Y> if you want C mode to be ON each time the editor is started; otherwise, set it to <N>. Refer to the "Modes" section of Chapter 1 for more information on C mode. * Default number of deleted lines to keep per file [0..300] [30] : Indicates the number of deleted lines that are saved by the editor, and can later be recalled using the UnKill command. For every file that is loaded in an editing session, this maximum number of lines is available. Enter a value from 0 to 300. (A value of 0 indicates that no deleted lines are to be saved.) * Remove trailing blanks from edited lines (Y/N)? [Y] : Determines whether the editor is to remove trailing blanks from each line of text that is edited. Set this option to <Y> if you want trailing blanks removed. (For most purposes, this setting is preferable, as it generally results in smaller files.) Set this option to <N> if you want spaces at the end of lines to be preserved. * Terminate files with a Control Z (Y/N)? [N] : Determines whether the editor is to add a Control Z to the end of a file when it is saved to disk. Set this option to <Y> if you want to have a Control Z added to the end of files; otherwise, set this option to <N>. MS/PC-DOS versions 2.0 and above do NOT require an end-of-file terminator. (The exact size of the file is stored in the directory.) However, some programs that were directly translated from their CP/M versions still require the Control Z end-of-file marker. If you have one of these programs for which you are creating text files, you should select <Y> for this option. * Do you want backups of saved files (Y/N)? [Y] : Determines whether the editor is to create a backup file (an image of the file before you did any editing) with the .bak extension each time you save a file. Set this option to <Y> to have backups created; otherwise, set this option to <N>. * Prompt for filename on open window (Y/N)? [N] :

Affects the editor's behavior when the HorizontalWindow command is executed. Set this option to <Y> to have the editor prompt for the name of the file you want to load into the new window. Set this option to <N> to have the editor load the next file in the ring into the new window. (If only one file is loaded, another window containing the same file is opened.) * Close window when a file is quit (Y/N)? [Y] : Affects the editor's behavior when more than one window is open on the screen and a command is executed that discards a file from the editor. Set this option to <Y> to have the editor close the window containing the discarded file. Set this option to <N> to have the editor load the next file in the ring into that window. * Display End Of File marker (Y/N)? [Y] : Determines whether the editor displays an indicator line at the end of the file, in the following format: <*** End of File ***> Set this option to <Y> to have the end-of-file indicator line displayed; set this option to <N> if you do not want this line displayed. * Insert line blocks ABOVE the cursor line (Y/N)? [N] : Determines whether the editor is to insert line Blocks above or below the cursor line when the Paste, CopyBlock, or MoveBlock commands are executed. Set this option to <Y> to have line Blocks inserted above the cursor line; set this option to <N> to have line Blocks inserted below the cursor line. * Do you want a beep on warning messages and missed searches (Y/N)? [Y]: Determines whether the editor sounds the bell on any warning message and when there is no match resulting from a Find or FindReplace operation. If you want the bell to sound, select <Y>; otherwise, select <N>. * Default Find options [IWBG] [I]: Indicates the default search options when using the Find command. The available default options are: "I" (Ignore case), "W" (Words only), "B" (Backwards search), and "G" (Global search). Multiple options can be specified. Note that even when these options are not selected as defaults, they can still be selected from within the editor when the Find command is executed. For more information on the Find command and the available Find options, refer to the "Finding Text" section of Chapter 1. * Default FindReplace options [IWBNG] []: Indicates the default search and replace options when using the FindReplace command. The available default options are: "I" (Ignore case), "W" (Words only), "B" (Backwards search), "N" (No prompting), and "G" (Global search). Multiple options can be specified. Note that even when these options are not selected as defaults, they can still be selected from within the editor when the FindReplace command is executed. For more information on the FindReplace

command and the available FindReplace options, refer to the "Replacing Text" section of Chapter 1. * Should Find and RepeatFind center the found text (Y/N)? [Y] Affects the editor's behavior when the Find, RepeatFind, or IncrementalSearch commands are executed. Set this option to <Y> to have the line containing the found text centered vertically within the current window. Set this option to <N> to have line containing the found text positioned on the same row as the current line. * Default file extension number 1 [.c]: Specifies the first default file extension. * Default file extension number 2 [.pas]: Specifies the second default file extension. * Default file extension number 3 [.inc]: Specifies the third default file extension. * Default file extension number 4 [.asm]: Specifies the fourth default file extension. * Default file extension number 5 [.h]: Specifies the fifth default file extension. * Default file extension number 6 [.doc]: Specifies the sixth default file extension. See explanation below. See explanation below. See explanation below. See explanation below. See explanation below. See explanation below.

Six default file extensions are provided to save keystrokes each time a filename to edit is entered. These file extensions are used when the editor is executed with a filename from the command line or when the EditFile command is entered. If the filename entered does not end with a period (and does not include the DOS wildcard characters) and that file does NOT exist as named, the editor appends the first default file extension to the name and tries to load that file. If that file exists, then the editor loads it for editing. If it does not exist, the editor repeats the process with the other default file extensions. If no matching file is found, then the editor creates a new file as originally named. For each of the six previous options, enter the desired file extension. * Default to case-insensitive sort (Y/N)? [N] : Indicates the default case-sensitivity selection when the Sort command is executed. Set this option to <Y> to have the Sort command ignore the case of characters; set this option to <N> to have the Sort command respect the upper/lower case of characters. * Default to descending-order sort (Y/N)? [N] : Indicates the default sort order when the Sort command is executed. Set the option to <Y> to sort in descending order; set this option to <N> to sort in ascending order. THE HELP SCREEN

���������������������������������������������������������������������� The editor allows you to create a customized one-page Help Screen, which may be displayed at any time from within the editor by executing the QuickHelp <F1> command. This section contains instructions for installing your own Help Screen using the configuration program. Of course, you may prefer to use the default Help Screen which is already loaded into the editor. 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 the editor to create this file) and list all of the information that should appear on the screen when the QuickHelp command is executed. We suggest that you list less frequently used commands in this file, while leaving out more familiar commands such as cursor movement and paging. 2. Run QCONFIG and select option <H> from the configuration menu. 3. At the prompt, enter the name of the Help file just created. That is all there is to it! Now when you execute QuickHelp from within the editor, your customized Help Screen is displayed. KEYBOARD CONFIGURATION ���������������������������������������������������������������������� The editor provides the extremely helpful capability of assigning editor commands (as well as strings of characters) to almost any key you prefer. This allows you to assign frequently-used commands to keys which are most convenient for your use, and even to completely reassign commands to emulate another text editor or word processor with which you are already familiar. By taking a few minutes to review this section, your future text editing may become significantly more comfortable as a result of customizing your keyboard to suit your individual preferences. The Keyboard Definition File ���������������������������� The editor 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 the editor is a Keyboard Definition file called QCONFIG.DAT which contains the default settings for the keyboard. Other files are supplied which emulate certain common word processors and editors. The READ.ME file contains a list of these other emulations. The Keyboard Definition file consists of a list of configurable keys and the commands or macros which are assigned to them. The configurable keys are on the left side of the file, with the commands or macros assigned to the keys on the right. Blank lines and lines starting with

an asterisk "*" are ignored. The QCONFIG.DAT file contains a complete list of configurable keys. Control keys are specified by a "^". ^f1 or ^F1 specifies Control F1 ^c or ^C specifies Control C Alternate keys are specified by a "@". @c or @C @PgUp specifies Alt C specifies Alt PgUp For example: For example: For example:

Shift keys are specified by a "#". #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 #f5 @f2 cursorup ^cursorleft @a ^a QuickHelp MakeCtrofScreen InsertLine CursorUp WordLeft DropAnchor WordLeft

��������������������������������������������������������������Ŀ � Tip: � � The configuration program ignores the case of the key � � name, and ignores the case of the commands and of any � � underscores that may be embedded in the commands. This � � means that PGUP, PgUp, and pgup all refer to the same key, � � and InsertLine, insert_line, and Insert_Line all refer to � � the same command. � � � � Also, the order of the keys does not matter. The � � configurable keys may be put in any order desired. � ���������������������������������������������������������������� There is also a provision for assigning commands or macros to a "two-key". A two-key consists of two distinct keystrokes, such as <Ctrl B> immediately followed by <A>. To assign a command or macro to a two-key, enter both keystrokes of the two-key in the first column (keystroke column) separated by an underline. For example, to assign the Exit command to the two-key, <Ctrl F1> <F2>, enter the following into the Keyboard Definition file: ^f1_f2 Exit a command or macro to a single key, and then initial key of a two-key sequence, you lose the example, if you assign a command to <Ctrl B>, use a two-key assignment such as <Ctrl B A>.)

(Note that if you assign use that same key as the two-key assignment. For you would not be able to

To allow you to further customize the editor, multiple commands and/or text can be assigned to any configurable key (or two-key). This is accomplished through the use of macros. For more information on creating macros and assigning them to keys, refer to "Creating Macro Programs" in the file MACRO.DOC. Creating a Keyboard Definition File ����������������������������������� To customize the keyboard using the default Keyboard Definition file, QCONFIG.DAT, no action is required. the editor is distributed with this Keyboard Definition file already installed. The following outlines steps to create and install your own Keyboard Definition file. (To customize the keyboard using one of the supplied word-processor or editor emulation Keyboard Definition files, skip to step number 6.) 1. 2. 3. Load the file QCONFIG.DAT into the editor. (From the DOS command line, type "q qconfig.dat" and press <Enter>). Rename the file using the ChangeFilename command <Alt O>. 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. Change the commands assigned to the keys to suit your particular needs. For more information on how to assign keys, refer to the previous section, "The Keyboard Definition File." Save the file and exit the editor by pressing <Alt X>. Run QCONFIG and select option <K> from the menu. 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. Your key assignments are then incorporated into the editor program, Q.EXE, and the configuration menu reappears. Press <S> to save your changes and terminate the program.

4.

5. 6. 7.

8. 9.

10. Run the editor to insure that your key assignments function as desired. PRINTER OPTIONS ���������������������������������������������������������������������� This section contains a list of the Printer Options which can be customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option.

* Default left margin for printing [0..200] [0]: Indicates the number of spaces the editor skips before printing each line. If you do not want the editor to skip any spaces at the beginning of each line, select zero. * Default page size for printing [0..200] [55]: Indicates the number of lines to be printed per page. The editor sends a formfeed character to the printer after printing this number of lines. If you do NOT want the editor to send formfeed characters (for continuous printing), select zero. * Add formfeed after printing (Y/N)? [Y] : Determines whether the editor sends a formfeed character when printing is complete. Select <Y> if you want a formfeed character to be sent at the end of the document. (This is helpful for correctly lining up the printer in preparation for the next printing operation.) Select <N> if you do not want a final formfeed character to be sent. * Default top margin for printing [0..200] [0] : Indicates the number of lines to be left blank at the top of each page during printing. * Default bottom margin for printing [0..200] [0] : Indicates the number of lines to be left blank at the bottom of each page during printing. * Include line number at beginning of each printed line (Y/N)? [N] : Determines whether the editor prints line numbers at the beginning of each line. To include line numbers in the printed output, select <Y>; otherwise, select <N>. * Default line spacing: 1=single, 2=double, etc... [1..200] Indicates the line spacing to be used when printing. [1] :

* Should printing pause between pages (Y/N)? [N] : Determines whether the editor pauses between each printed page. To have the editor pause between pages, select <Y>. (For this option to be effective, the print page size must be non-zero.) If you do not want the editor to pause between pages, select <N>. * Print Device: 0=PRN, 1=LPT1, 2=LPT2, 3=LPT3 [0] : Determines the initial print device. TAB SETTINGS ���������������������������������������������������������������������� This section contains a list of all Tab Setting Options which can be customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option. * Do you want the editor to start in Physical Tab Expansion mode (Y/N)? [Y] : Determines whether Physical Tab Expansion mode is initially ON or OFF each time the editor is executed. Set this option to <Y> if you

want Physical Tab Expansion mode to be ON each time the editor is started; otherwise, set it to <N>. Refer to the "Modes" section of Chapter 1 for more information on Physical Tab Expansion mode. * Do you want the editor to start in Tabs Out mode (Y/N)? [N] : Determines whether Tabs Out mode is initially ON or OFF each time the editor is executed. Set this option to <Y> if you want Tabs Out mode to be ON each time the editor is started; otherwise, set it to <N>. Refer to the "Modes" section of Chapter 1 for more information on Tabs Out mode. * Default physical tab width [1..12] [8]: Specifies the tab width that the editor uses when Physical Tab Expansion mode or Tabs Out mode is ON. * Default cursor tab width [1..12] [8]: Specifies the tab width that the editor uses the TabRt and TabLt commands are executed. * Default file extension number 1 for default tabs [.c]: Physical tab width for above [4]: Cursor tab width for above [4]: Specifies the first default file extension for default tabs. explanation below. * Default file extension number 2 for default tabs [.pas]: Physical tab width for above [2]: Cursor tab width for above [2]: Specifies the second default file extension for default tabs. explanation below. * Default file extension number 3 for default tabs [.inc]: Physical tab width for above [2]: Cursor tab width for above [2]: Specifies the third default file extension for default tabs. explanation below. * Default file extension number 4 for default tabs [.asm]: Physical tab width for above [8]: Cursor tab width for above [8]: Specifies the fourth default file extension for default tabs. explanation below. * Default file extension number 5 for default tabs [.h]: Physical tab width for above [4]: Cursor tab width for above [4]: Specifies the fifth default file extension for default tabs. explanation below. * Default file extension number 6 for default tabs [.doc]: Physical tab width for above [8]: Cursor tab width for above [8]: Specifies the sixth default file extension for default tabs. explanation below.

See

See

See

See

See

See

The editor allows you to set default physical and cursor tab widths for up to six different file extensions. When a file is loaded that matches one of these extensions, the indicated defaults are used.

Otherwise, the defaults set in the previous two default tab options are used. For each of the six options, enter the desired file extension and the appropriate physical and cursor tab width values. * Default tab type: 0=Fixed, 1=Smart, 2=Variable [0] : Determines the tab type to use each time the editor is executed. Select <0>, <1>, or <2>, for Fixed, Smart, or Variable Tabs, respectively. Refer to the "Modes" section of Chapter 1 for more information on the behavior of each tab type. * Default Variable Tab stop columns: [4 8 16 24 40] : Specifies the columns at which Variable Tab stops are to be set. Enter the appropriate column numbers, each separated by a single space. The last column at which you can set a Tab is column 255. maximum string of 255 characters can be specified. If you press <Enter> without entering any tabs stops, you are prompted with: Delete all Variable Tab stops (Y/N)? [N] : Select <Y> to remove all existing Variable Tab stops. leave the tab stops unchanged. Select <N> to

A

CHAPTER 3. COMMAND REFERENCE ���������������������������������������������������������������������� This chapter contains a description of each of the editor commands. Where applicable, the default key assignments are provided. Additionally, <Esc> sequences are given for those commands that can be accessed through the pull-down menus. To assign commands which do not have a default assignment or to change existing key assignments, refer to the "Keyboard Configuration" section of Chapter 2 for instructions. AddLine <F2> or <Esc><E><A> �������������������������������������������������������������������� Adds a blank line after the cursor line, placing the cursor on the newly created line. The cursor column does not change. Align �������������������������������������������������������������������� Aligns the text on the cursor line with the text on the line immediately before the cursor line and then positions the cursor on the next line. The cursor column does not change. If the cursor is on line one, or the previous line is blank, or the cursor line is blank, this command simply moves the cursor to the next line. Align searches backward up to 100 lines for a line containing text to align with. AltWordSet �������������������������������������������������������������������� Instructs the editor to recognize an expanded set of characters as "word" characters. The default word set contains the following characters: 0 through 9, upper and lower case A through Z, and the underline character. The AltWordSet command causes additional characters to be considered "word" characters. These additional characters are: ! # $ % & ` ' ( ) - . / \ @ { } ~ : ^ The AltWordSet command affects the operation of these commands: DelLtWord DelRtWord *Find *FindReplace isWord MarkWord *RepeatFind SwapWords WordLeft WordRight

* These commands are affected if the "W" (word) search option is selected. The default word set can be re-installed by executing the DefaultWordSet command. AppendScrBuff <Ctrl B A> ��������������������������������������������������������������������

Appends the currently marked Block to the end of the named Scratch Buffer. The existing contents of the named Scratch Buffer are not lost. If the named Scratch Buffer does not exist, a new Scratch Buffer is created. AsciiChart <Esc><O><T> �������������������������������������������������������������������� Displays a scrollable ASCII chart on the screen. Press <Enter> to have the selected character inserted into the text at the current cursor position. Press <Esc> to remove the ASCII chart from the screen without placing a character into the text. When the ASCII chart is initially displayed, the cursor bar is located on the entry that corresponds to the character at the cursor position in the text; or on the first item in the ASCII chart (the null character), if the cursor is positioned beyond the end of the line. Backspace <Backspace> �������������������������������������������������������������������� If Insert mode is ON: Deletes the character to the left of the cursor. The text to the right of, and including the cursor position, shifts left one position. If the cursor is in column one, the cursor line is appended to the end of the preceding line. If Insert mode is OFF: Deletes the character to the left of the cursor. The text to the right of the cursor does NOT close in or shift. If the cursor is in column one, the cursor line is still appended to the end of the previous line. BegFile <Ctrl PgUp> �������������������������������������������������������������������� Positions the cursor at column one on the first line of the current file. (If you are in the process of marking a Block using the MarkColumn command, the cursor column position does not change when you execute BegFile.) BegLine <Home> �������������������������������������������������������������������� Positions the cursor at column one of the current cursor line. BegScreen <Ctrl Home> �������������������������������������������������������������������� Positions the cursor at the top line of the current window. The cursor column does not change. CenterLine <Ctrl O T> �������������������������������������������������������������������� Centers the current cursor line based on column 1 and the right margin. Use the SetRmargin <Ctrl O R> command to change the right margin. With the cursor inside of a line Block, you can execute this command to

center several lines at once. With the cursor inside of a column Block, you can center lines based on the left and right Block boundaries. ChangeFilename <Alt O> or <Alt F><C> or <Esc><F><C> �������������������������������������������������������������������� Changes the name of the current file. The editor prompts for the new name. If the file already exists, you are given the opportunity to rename the file. The current file is marked as being a changed file. (An asterisk appears on the StatusLine preceding the filename.) Note that the file is not written (or overwritten) to disk until the renamed file is saved. CloseWindow <Ctrl O C> or <Esc><W><C> �������������������������������������������������������������������� Closes the current window, unless it is the only window which is open, in which case the command has no effect. Copy <Grey +> �������������������������������������������������������������������� Copies the marked Block into the Scrap Buffer. The Block is then unmarked. If no Block is marked, the cursor line is copied into the Scrap Buffer. The copying of the cursor line, when a Block is not marked, is configurable. Refer to the "Advanced Options" section of Chapter 2 for more information. CopyBlock <Alt C> or <Esc><B><C> �������������������������������������������������������������������� Copies the marked Block to the cursor position. If the Block is a character Block (created using the DropAnchor, MarkCharacter, or MarkBlockBegin/End commands) or a column Block (created using the MarkColumn command), the Block is inserted into the text beginning at the current cursor position. If the Block is a line Block (created using the MarkLine command), it is inserted before or after the current cursor line, depending on the configuration setting, "Insert line blocks ABOVE the cursor line" (refer to the "General Options" section of Chapter 2). The Block remains marked. Blocks may be copied from one file to another. CopyOverBlock <Alt Z> �������������������������������������������������������������������� Copies the currently marked column Block to the current cursor position by overlaying existing text and without shifting text to the right. This command only works with column Blocks. The Block remains marked. Blocks may be "copied over" from one file to another. CurrentFilename �������������������������������������������������������������������� Returns the name of the currently edited file, as if it had been typed at the keyboard. This command is useful for manipulation of files from within macros.

CursorDown <Cursor Down> �������������������������������������������������������������������� Moves the cursor downward in the file to the next line. CursorLeft <Cursor Left> �������������������������������������������������������������������� Moves the cursor one character to the left. When the cursor reaches the left edge of the screen, it stops, unless the text has been scrolled left, in which case the text scrolls right one position. CursorRight <Cursor Right> �������������������������������������������������������������������� Moves the cursor one character to the right. When the cursor reaches the right edge of the screen, the text starts scrolling left until the cursor reaches the maximum line length. CursorUp <Cursor Up> �������������������������������������������������������������������� Moves the cursor upward in the file to the previous line. Cut <Grey -> �������������������������������������������������������������������� Copies the marked Block into the Scrap Buffer. The Block is then deleted from the file being edited. If no Block is marked, the cursor line is cut into the Scrap Buffer. The cutting of the cursor line, when a Block is not marked, is configurable. Refer to the "Advanced Options" section of Chapter 2 for more information. DefaultWordSet �������������������������������������������������������������������� Re-installs the default word set. Refer to the AltWordSet command for more information about word sets. DelCh <Del> �������������������������������������������������������������������� Deletes the character at the current cursor position. The text on the line to the right of the cursor shifts left one position. If the cursor position is past the last character on the line, the next line is appended to the cursor line. The "joining" of the next line when the cursor is past the last character on the line is configurable. Refer to the "General Options" section of Chapter 2 for more information. DeleteBlock <Alt G> or <Esc><B><D> �������������������������������������������������������������������� Deletes the currently marked Block. If there is not a Block marked in the current file, this command has no effect. DelLine <Alt D> or <Ctrl Y> or <Esc><E><D> �������������������������������������������������������������������� Deletes the cursor line. The line following the cursor line becomes the

new cursor line. DelLtWord <Ctrl Backspace> �������������������������������������������������������������������� Deletes the "word" to the left of the cursor. If the cursor is in column one, the cursor line is appended to the end of the preceding line. DelRtWord <Ctrl T> �������������������������������������������������������������������� Deletes the "word" to the right of the cursor. If the cursor position is past the last character on the line, the next line is appended to the cursor line. DelScrBuff <Ctrl B D> �������������������������������������������������������������������� Deletes the requested Scratch Buffer. The editor prompts for the name of the Scratch Buffer to be deleted. Press <Enter> on a blank entry to bring up a list of all named Scratch Buffers. The appropriate buffer can be selected from this list by moving the cursor to an entry and pressing <Enter>. DelToEol <F6> or <Esc><E><E> �������������������������������������������������������������������� Deletes text on the cursor line, from the cursor position to the end of line. DirTree <Esc><F><I> �������������������������������������������������������������������� Displays a pick list of all the drives on your system, along with a directory tree for the current drive. The current drive or directory can be changed from this pick list. To switch to a different directory, move the cursor bar to the desired entry, and press <Enter>. To change to a different drive, move the cursor bar to the desired drive, and press <Enter>. The selected drive becomes the current drive, and the directory tree for that drive is displayed in the pick list. Following is an example of a directory tree pick list: ��������� Dir Tree ��������Ŀ � A: � � B: � � C: � � D: � � ����TSEJR � � � ����MAC � ������������DOC�������������� � � ����SPELL � � � ����TEMP � � � ����WORD � � ����TSEPRO �

� ����DOC � � ����MAC � � E: � ����������������������������� Dos <Alt F9> �������������������������������������������������������������������� The editor prompts for a command, which is passed to DOS for execution. After the command is executed by DOS, control is returned to the editor. If you want to execute a series of commands in DOS, you should use the Shell command, described later in this chapter. ��������������������������������������������������������������Ŀ � Tip: � � You should NOT execute any TSR (terminate and stay � � resident) programs from the editor's Dos command. This � � includes the DOS print and graph commands, and � � memory-resident programs such as Sidekick and Superkey. � ���������������������������������������������������������������� DropAnchor <Alt A> �������������������������������������������������������������������� This command is used to mark a character Block. Initially executing this command marks one end of a Block at the cursor position. As the cursor is moved, the Block "grows" with it. Executing this command again marks the other end of the Block at the cursor position. If DropAnchor is executed in a file that already contains a character Block, the Block is extended to the current cursor position. DupLine <F4> �������������������������������������������������������������������� Makes a copy of the current cursor line and inserts the copy immediately following the cursor line. The cursor is moved to the new line. EditFile <Alt E> or <Alt F><L> or <Esc><F><L> �������������������������������������������������������������������� The editor prompts for the name(s) of the additional file(s) to be edited. Wildcard characters (* or ?) are permissible, as are multiple filenames. The editor does not load multiple copies of the same file. If you issue the EditFile command using the name of a file that has already been loaded, the editor makes that file the current file. The option "Load wildcarded filespecs from inside the editor" has an effect on the behavior of this command when wildcard characters are included. (Refer to the "General Options" section of Chapter 2.) EndFile <Ctrl PgDn> �������������������������������������������������������������������� Positions the cursor on the last line of the file immediately following the last non-blank character. If the last line of the file is blank, the cursor is positioned in column one. (If you are in the process of marking a Block using the MarkColumn command, the cursor column position

does not change when you execute EndFile.) EndLine <End> �������������������������������������������������������������������� Positions the cursor immediately following the last non-blank character on the cursor line. EndPara �������������������������������������������������������������������� Positions the cursor immediately following the last nonblank character of the current paragraph. EndScreen <Ctrl End> �������������������������������������������������������������������� The cursor is positioned on the last line of the current window. The cursor column does not change. Escape <Esc> �������������������������������������������������������������������� If executed while editing, the pull-down menus are displayed. Otherwise, this command terminates any editor prompt. ExecuteScrap <Ctrl Enter> or <Esc><M><E> �������������������������������������������������������������������� Plays back the latest macro that was created using the MacroRecord command. Exit <Ctrl K D> �������������������������������������������������������������������� Conditionally discards the current file. If the file has not been modified, the file is discarded without prompting. If the file has been modified, the editor prompts with: � Save Changes? Ŀ ��Yes������������� � No � � Cancel � ������������������ Press <Y> to save and then discard the file. Press <N> to discard the file without saving any changes. Press <C> or <Esc> to halt the command and return control back to the editor, without saving or quitting the file. The editor can be configured, when only a single file is being edited and the Exit command is issued, to either terminate or prompt for another file to edit. Refer to the "General Options" section of Chapter 2 for more information. File <Ctrl K X> or <Alt F><F> or <Esc><F><F> ��������������������������������������������������������������������

Saves and then discards the current file. The editor can be configured, when only a single file is being edited and the File command is issued, to either terminate or prompt for another file to edit. Refer to the "General Options" section of Chapter 2 for more information. FillBlock <Ctrl K L> or <Esc><B><F> �������������������������������������������������������������������� Fills an entire marked Block with any ASCII character. You are prompted to enter the desired character. FillBlock is recommended for use with column and word Blocks only. When used with line or character Blocks, the indicated character fills the Block out to the maximum length of the line. Find <Ctrl Q F> or <Esc><S><F> �������������������������������������������������������������������� Searches for a specified string of characters within the current file. The User is prompted for a search string and search options. Available search options are: [B] Search backwards from the current cursor position. [G] Global search. Begin searching from the beginning of the file (or Block, if the [L] option is also selected). [L] Local search. Limit the search to the marked Block. [I] Ignore the case of the search string. [W] Search for whole words only. [^] Anchor the search string to the beginning of the line (or Block, if the [L] option is also selected). [$] Anchor the search string to the end of the line (or Block, if the [L] option is also selected). FindReplace <Ctrl Q A> or <Esc><S><R> �������������������������������������������������������������������� Searches and replaces strings within the current file. The User is prompted for a search string, a replace string, and options. Available search options are: [B] Search backwards from the current cursor position. [G] Global search and replace. Begin searching from the beginning of the file (or Block, if the [L] option is also selected). [L] Local search and replace. Limit the search to the marked Block. [I] Ignore the case of the search string. [W] Search for whole words only. [^] Anchor the search string to the beginning of the line (or Block, if the [L] option is also selected). [$] Anchor the search string to the end of the line (or Block, if the [L] option is also selected). [N] Find and replace with NO prompting. [#] Replace the indicated number of times (where "#" is an actual number). At every occurrence of the search string in the file, the User is given the following replace options (unless the [N] or [#] serach option is

specified): [Y] Replace the search string with the replace string and continue on to the next occurrence of the search string. [N] Do not make any changes but continue on to the next occurrence of the search string. [O] Replace the search string with the replace string and then terminate the FindReplace process. [R] Replace the search string with the replace string for this and the rest of the occurrences throughout the file without any further prompting. [Q] Terminate the FindReplace process. You can press <Ctrl Break> to halt a global FindReplace. FirstNonWhite �������������������������������������������������������������������� Intended as a replacement and/or supplement to the BegLine command. Places the cursor at the first non-white character on the line, or column 1 if the line does not have any non-white characters. "White" characters are tabs or spaces. A useful macro would be: Home BegLine MacroQuitTrue FirstNonWhite

(Explanation: If already at the beginning of a line, go to the first non-white character on the line; otherwise, go to the beginning of the line.) Flip <Alt 3> �������������������������������������������������������������������� Reverses the case (upper to lower and lower to upper) of all characters in a marked Block. The cursor must be within the marked Block. If the cursor is outside of the marked Block or if no Block is marked, the case of the character at the current cursor position is reversed. GetPrev <Ctrl - (dash)> �������������������������������������������������������������������� Duplicates the character immediately above the cursor at the cursor position. GetScrBuff <Ctrl B L> �������������������������������������������������������������������� Inserts the contents of the named Scratch Buffer at the cursor position. Refer to the "Block Commands" section of Chapter 1 for more information. GExit <Alt X> or <Alt Q><X> or <Esc><Q><X> �������������������������������������������������������������������� Issues the Exit command for all files that have been loaded. If no files have been modified, this command immediately terminates the editor and returns control to DOS. If any files have been modified, you are prompted with the following menu for each modified file: � Save Changes? Ŀ

��Yes������������� � No � � Cancel � ������������������ Press <Y> to save and then discard the file. Press <N> to discard the file without saving any changes. Press <C> or <Esc> to halt the command and return control back to the editor, without saving or quitting the file. For example, if you have ten files loaded and two of them have been modified, then you are prompted to save changes twice, once for each modified file. GFile <Alt F><G> or <Esc><F><G> �������������������������������������������������������������������� Instructs the editor to discard all files that have been loaded. Any files that have been modified are unconditionally saved. If no files have been changed, this command immediately terminates the editor and returns control to DOS. GotoBlockBeg <Ctrl Q B> �������������������������������������������������������������������� Positions the cursor at the beginning of the currently marked Block. If the Block is in a file other than the current file, the file containing the Block becomes the new current file. GotoBlockEnd <Ctrl Q K> �������������������������������������������������������������������� Positions the cursor at the end of the currently marked Block. If the Block is in a file other than the current file, the file containing the Block becomes the new current file. GotoColumn <Esc><S><G> �������������������������������������������������������������������� Positions the cursor at the requested column. The editor prompts for the desired column number. GotoFirstLine �������������������������������������������������������������������� Positions the cursor on the beginning line of the current file. The column position is not changed. GotoLastLine �������������������������������������������������������������������� Positions the cursor on the last line of the current file. The column position is not changed. GotoLine <Ctrl J> ��������������������������������������������������������������������

Positions the cursor at the requested line. desired line number.

The editor prompts for the

GPQuit <F3> or <Alt Q><Q> or <Esc><Q><Q> �������������������������������������������������������������������� Issues the PQuit command for all files that have been loaded. GrowWindow <Ctrl O G> or <Esc><W><R> �������������������������������������������������������������������� Changes the size of the current window, if there are multiple windows on the screen. GSave <Alt Y> �������������������������������������������������������������������� Issues the SaveFile command for all files that have been modified. HalfPgDn �������������������������������������������������������������������� Scrolls the text toward the end of the file one-half page. HalfPgUp �������������������������������������������������������������������� Scrolls the text toward the beginning of the file one-half page. HorizontalWindow <Ctrl O H> or <Esc><W><S> �������������������������������������������������������������������� Splits the screen or current window horizontally, creating a new window. IncrementalSearch <Ctrl I> or <Esc><S><I> �������������������������������������������������������������������� Searches incrementally for a string. As you type characters of a search string, a case-insensitive, forward search immediately begins, based on the characters currently in the search string. Within the IncrementalSearch prompt, the following keys are operational: <Enter> or <Esc> <Backspace> Terminates IncrementalSearch operation. Removes the last character from the current IncrementalSearch string. The editor re-locates the previous string. Searches forward for the next occurrence of the current IncrementalSearch string. Searches backward for the previous occurrence of the current IncrementalSearch string. Searches forward from the beginning of the file for the first occurrence of the current IncrementalSearch string.

<Ctrl N> <Ctrl P> <Ctrl B>

InsertDate �������������������������������������������������������������������� Inserts the system date at the current cursor position. InsertLine <Alt F2> or <Esc><E><I> �������������������������������������������������������������������� Inserts a blank line above the cursor line and positions the cursor on the newly created line. The cursor column does not change. InsertTime �������������������������������������������������������������������� Inserts the system time at the current cursor position. isBegLine �������������������������������������������������������������������� This command is intended for use only within macros. Returns TRUE if the cursor is at column 1; otherwise, FALSE is returned. isCurrChar �������������������������������������������������������������������� This command is intended for use only within macros. Used to set a conditional branch based on the value of the character at the cursor position. The format is: isCurrChar char

Where "char" is the character in literal format (surrounded by quotes, either single or double) or in ASCII value format, preceded by a pound sign (#). Examples: isCurrChar 'a' JTrue found: isCurrChar #97 JTrue found: Both of these examples jump to the label "found" if the current character is "a". isCursorInBlock �������������������������������������������������������������������� This command is intended for use only within macros. Returns TRUE if the cursor is inside a marked Block; otherwise, FALSE is returned.

isEmptyLine �������������������������������������������������������������������� This command is intended for use only within macros. Returns TRUE if the current line is empty or contains only white space; otherwise, FALSE is returned. isEndLine �������������������������������������������������������������������� This command is intended for use only within macros. Returns TRUE if the cursor is past the last non-white character on the current line; otherwise, FALSE is returned, including the case when the cursor is on an empty line. isFirstLine �������������������������������������������������������������������� This command is intended for use only within macros. Returns TRUE if the cursor is on the first line of the currently edited file; otherwise, FALSE is returned. isLastLine �������������������������������������������������������������������� This command is intended for use only within macros. Returns TRUE if the cursor is on the last line of the currently edited file; otherwise, FALSE is returned. isWord �������������������������������������������������������������������� This command is intended for use only within macros. Returns TRUE if the cursor is on a character included in the current word set; otherwise, FALSE is returned. JFalse �������������������������������������������������������������������� This command is intended for use only within macros. It is used to transfer control to the named label, if the previous command returned FALSE. JoinLine <Alt J> or <Esc><E><J> �������������������������������������������������������������������� Joins the line below the cursor line to the end of the cursor line. If the cursor is past the end of the line, then the line is joined at the cursor position. JTrue ��������������������������������������������������������������������

This command is intended for use only within macros. It is used to transfer control to the named label, if the previous command returned TRUE. Jump �������������������������������������������������������������������� This command is intended for use only within macros. It is used to unconditionally transfer control to the named label. KillFile <Ctrl K Z> �������������������������������������������������������������������� Erases the currently edited file from disk. The file remains loaded in the editor and is marked as being a changed file. (An asterisk appears on the StatusLine preceding the filename.) This command is very useful when available disk space is low. LineDown <Ctrl Cursor Down> �������������������������������������������������������������������� Scrolls the text one line at a time toward the end of the file. The cursor remains stationary on the screen. LineUp <Ctrl Cursor Up> �������������������������������������������������������������������� Scrolls the text one line at a time toward the beginning of the file. The cursor remains stationary on the screen. ListFiles <Esc><F><T> �������������������������������������������������������������������� Displays a list of the currently loaded files. To switch to another file, move the cursor to the appropriate file and press <Enter>. To keep editing the current file, press <Esc>. Literal <Ctrl P> �������������������������������������������������������������������� Causes the editor to literally interpret the keystroke that is entered immediately following this command. It is used to insert control characters into the currently edited file. For example, to insert the ASCII formfeed character (ASCII 12), you would first press <Ctrl P> then <Ctrl L>. To insert a "null" character into the file, press <Ctrl P> and then <Ctrl 2>. (Note: The "2" must be the "2" key on the alphanumeric keyboard, NOT the key on the numeric keypad.) Refer to the "Adding Text" section of Chapter 1 for more information. LocateFile <Esc><F><A> �������������������������������������������������������������������� Searches an entire drive for a specified filename. A list of all matching filenames is displayed, allowing the user to select the appropriate file to edit.

This command prompts for the filename for which to search. A complete name or an ambiguous name (with DOS wildcard characters) can be specified. By default, the current drive is searched. However, a different drive can be searched by prefacing the filename with the drive name (such as, d:foo). The default or specified drive is searched, and all matching filenames are displayed in a pick list. To select the desired file to edit, position the cursor bar on that filename in the pick list, and press <Enter>. To remove the pick list, press <Esc>. This command is also available in a "File(s) to edit:" prompt. Lower <Alt 2> �������������������������������������������������������������������� Changes all characters in a marked Block to lower case. The cursor must be within the marked Block. If the cursor is outside of the marked Block or if no Block is marked, the character at the current cursor position is changed to lower case. MacroQuit �������������������������������������������������������������������� This command is intended for use only within macros. It is used to immediately terminate a macro, thus saving a "jump past the end of the macro". MacroQuitFalse �������������������������������������������������������������������� This command is intended for use only within macros. It is used to immediately terminate a macro, if the previous command returned FALSE, thus saving a "jump past the end of the macro on FALSE". MacroQuitTrue �������������������������������������������������������������������� This command is intended for use only within macros. It is used to immediately terminate a macro, if the previous command returned TRUE, thus saving a "jump past the end of the macro on TRUE". MacroRead <Esc><M><R> �������������������������������������������������������������������� Loads the named macro file, with all macros contained therein, from disk into the editor's internal macro buffer. The macros are assigned to the keys exactly as they were originally recorded and saved. The editor prompts the user for the name of the file. MacroRecord <Ctrl M> or <Esc><M><M> �������������������������������������������������������������������� Toggles (ON and OFF) macro recording. If macro recording is OFF, this turns macro recording ON and prompts for a key to which to assign the macro. After pressing the desired key, all following keystrokes are recorded until the MacroRecord key is pressed again. After the macro

has been recorded, it can be played back by pressing the key to which the macro was assigned. Instead of assigning a macro to a specific key, it can be assigned to a "scrap" or temporary area by simple pressing <Enter> at the prompt. A macro assigned to the scrap area may be played back by entering the ExecuteScrap <Ctrl Enter> command. The scrap area is updated each time the MacroRecord command is executed. MacroWrite <Esc><M><W> �������������������������������������������������������������������� Saves all currently defined macros to a binary disk file. The editor prompts for the name of the file. MainMenu <Esc> �������������������������������������������������������������������� Activates the pull-down menu system. Many of the editor's commands can be executed via the menus. MakeBotofScreen �������������������������������������������������������������������� Scrolls the text in the window so that the cursor line becomes the bottom line of the window. MakeCtrofScreen <Shift F5> �������������������������������������������������������������������� Scrolls the text in the window so that the cursor line becomes the center line of the window. MakeTopofScreen <F5> �������������������������������������������������������������������� Scrolls the text in the window so that the cursor line becomes the top line of the window. MarkBlockBegin <Ctrl K B> or <Esc><B><B> �������������������������������������������������������������������� Marks the beginning of a character Block. The Block is not shown until the MarkBlockEnd command is executed at some position beyond the beginning position of the Block. For an alternate method of marking character Blocks, refer to the DropAnchor and MarkCharacter commands. MarkBlockEnd <Ctrl K K> or <Esc><B><E> �������������������������������������������������������������������� Marks the end of a character Block. The Block is not shown until the MarkBlockBegin command is also executed at some position before the end of the Block. For an alternate method of marking character Blocks, refer to the DropAnchor and MarkCharacter commands. MarkCharacter ��������������������������������������������������������������������

This command is used to mark a character Block. It is similar to the DropAnchor command except the cursor position is NOT included as part of the Block. This command is provided as a replacement for the DropAnchor command. If you want the cursor position included in character Blocks, then continue to use DropAnchor; otherwise, replace the DropAnchor command with this command. Note that the editor uses the MarkCharacter command to provide a set of CUA-style Block-marking keys (using the shifted cursor keys). Refer to "CUA-Style Block Marking" in Chapter 1. MarkColumn <Alt K> �������������������������������������������������������������������� This command is used to mark a column Block. Initially executing this command marks the current cursor position. As the cursor is moved, the Block "grows". Executing this command again marks the other end of the Block at the current cursor position. If MarkColumn is executed in a file that already contains a Block, the Block is extended to the current cursor position. MarkLine <Alt L> or <Esc><B><L> �������������������������������������������������������������������� This command is used to mark a line Block. Initially executing this command marks the current cursor line. As the cursor is moved, the Block "grows" with it, line by line. Executing this command again marks the other end of the Block at the current cursor line. If MarkLine is executed in a file that already contains a Block, the Block is extended to the current cursor line. MarkWord <Ctrl K T> �������������������������������������������������������������������� This command is used to mark a word Block. Executing this command marks the word at the current cursor position. If there is no word at the current cursor position, then no action is taken. Match <Alt F3> �������������������������������������������������������������������� Finds the corresponding "(", ")", "{", "}", "[", "]", "<", ">" character. This command is primarily intended for programming languages in which complicated expressions are grouped with one or more of these characters. This command is very useful for finding unmatched parentheses. MaximizeWindow <Ctrl O M> or <Esc><W><M> �������������������������������������������������������������������� Makes the current window as large as possible by making all other windows as small as possible. MouseMenu ��������������������������������������������������������������������

Pops up a menu of Block-related commands. This command provides access to a list of Block-related commands for easy selection using a mouse. When invoked, a menu similar to the following is displayed: ��������� Mouse Menu �������Ŀ ��Cut��������������������������� � Copy � � Paste � � Paste Over � � UnMark � ������������������������������Ĵ � Copy to Windows Clipboard � � Paste from Windows Clipboard � ������������������������������Ĵ � Copy Block � � Copy Over Block � � Move Block � � Delete Block � ������������������������������Ĵ � Fill Block � � Sort � ������������������������������Ĵ � Upper � � Lower � � Flip � �������������������������������� If the mouse is not used, this menu can still be accessed by assigning this command to a key. MoveBlock <Alt M> or <Esc><B><M> �������������������������������������������������������������������� Moves (copies and deletes) the currently marked Block to the cursor position. If the Block is a character Block (created using the DropAnchor, MarkCharacter, or MarkBlockBegin/End commands) or a column Block (created using the MarkColumn command), the Block is inserted into the text beginning at the current cursor position. If the Block is a line Block (created using the MarkLine command), it is inserted before or after the current cursor line, depending on the configuration setting, "Insert line blocks ABOVE the cursor line" (refer to the "General Options" section of Chapter 2). The Block remains marked. Blocks may be moved from one file to another. NewFile �������������������������������������������������������������������� Executes the Exit <Ctrl K D> command followed by the EditFile <Alt E> command. Refer to the Exit and EditFile commands in this chapter for more information. NextEqualIndent �������������������������������������������������������������������� Moves the cursor to the next line whose text starts in the same column as the current line. If the current line is blank, moves to the next blank line.

NextFile <Alt N> or <Alt F><N> or <Esc><F><N> �������������������������������������������������������������������� Makes the next file in the ring the new current file when multiple files are loaded. NextPara �������������������������������������������������������������������� Positions the cursor on the first character of the next paragraph. NextWindow <Ctrl O N> or <Esc><W><N> �������������������������������������������������������������������� Makes the window below the current window the new current window. If the current window is at the bottom of the screen, the top window on the screen becomes the current window. OneWindow <Ctrl O O> or <Esc><W><O> �������������������������������������������������������������������� Closes all windows except the current window and expands it to occupy the entire screen. PageDown <PgDn> �������������������������������������������������������������������� Scrolls the text toward the end of the file, one page-full less one line, at a time. PageUp <PgUp> �������������������������������������������������������������������� Scrolls the text toward the top of the file, one page-full less one line, at a time. Paste <Grey *> �������������������������������������������������������������������� Inserts the contents of the Scrap Buffer at the cursor position. The Scrap Buffer is loaded using the Cut or Copy commands. If the Scrap Buffer contains a character or column Block, it is inserted at the cursor position. If the Scrap Buffer contains a line Block, it is inserted before or after the cursor line depending on the configuration setting, "Insert line blocks ABOVE the cursor line". (Refer to the "General Options" section of Chapter 2.) Paste is also available within prompt boxes. PasteOver <Ctrl PrtSc> �������������������������������������������������������������������� This is a Paste command for column Blocks. It takes a column Block which has been loaded into the Scrap Buffer using the Cut or Copy commands, and places the contents at the current cursor position by overlaying existing text, without shifting text to the right.

Pause �������������������������������������������������������������������� This command is intended for use only within macros. Temporarily suspends execution of a macro until either <Enter> or <Esc> is pressed. Refer to "Macro Pause" in the file MACRO.DOC. PQuit <Ctrl K Q> or <Alt F><Q> or <Esc><F><Q> �������������������������������������������������������������������� This command initiates a protected quit. If the current file has not been modified, it is discarded. If the current file has been modified, the following prompt is issued: � Lose Changes? Ŀ ��Yes������������� � No � � Cancel � ������������������ Press <Y> to quit the current file. Press <N>, <C>, or <Esc> to cancel the command, without discarding the current file. If multiple files are being edited, this command makes the previous file in the ring the new current file. The editor 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. PrevEqualIndent �������������������������������������������������������������������� Moves the cursor to the previous line whose text starts in the same column as the current line. If the current line is blank, moves to the previous blank line. PrevFile <Ctrl K P> or <Alt F><P> or <Esc><F><P> �������������������������������������������������������������������� Makes the previous file in the ring the new current file when multiple files are loaded. PrevPara �������������������������������������������������������������������� Positions the cursor on the first character of the previous paragraph. PrevPosition <Ctrl Q P> �������������������������������������������������������������������� Positions the cursor at the previous cursor position. Very helpful when used with the GotoLine command. The GotoLine command can be used to go directly to a certain line of the file. The PrevPosition can then be used to return you to the previous cursor position.

PrevWindow <Ctrl O P> or <Esc><W><P> �������������������������������������������������������������������� Makes the window above the current window the new current window. If the current window is at the top of the screen, the bottom window on the screen becomes the current window. PrintAll <Alt P><A> or <Esc><P><A> �������������������������������������������������������������������� Prints the entire contents of the current file. PrintBlock <Alt P><B> or <Esc><P><B> �������������������������������������������������������������������� Prints the entire contents of the marked Block. The marked Block must be in the current file. PrintEject <Alt P><F> or <Esc><P><F> �������������������������������������������������������������������� Sends a formfeed character (ASCII 12) to the printer. QuickHelp <F1> or <Alt H> �������������������������������������������������������������������� Displays the Help Screen. A default Help Screen is provided with the editor; however, you may wish to design your own Help Screen. For more information, refer to "The Help Screen" section of Chapter 2. Quit �������������������������������������������������������������������� Unconditional quit. The current file is discarded regardless of any changes made to it. This command is for those who do not like software that "nags" you. USE WITH CAUTION! ReadBlock <Alt R> or <Alt F><R> or <Esc><F><R> �������������������������������������������������������������������� Inserts the named disk file at the current cursor position. RepeatCmd <Ctrl Q Q> �������������������������������������������������������������������� Repeats the last character, command, or macro entered from the keyboard up to 9,999 times. You are prompted for the number of times to repeat. Repeating automatically terminates when any command fails. For example, if you are repeating a search and get a "Not Found", repeating then stops. You can also press <Ctrl Break> at any time from the keyboard to cancel repeating. RepeatFind <Ctrl L> or <Esc><S><A> �������������������������������������������������������������������� Repeats the previous search (Find, FindReplace, IncrementalSearch) command.

ResizeWindow <Ctrl O G> or <Ctrl O S> or <Esc><W><R> �������������������������������������������������������������������� Changes the size of the current window, if there are multiple windows on the screen. RestoreSettings �������������������������������������������������������������������� This command is intended for use only within macros. Restores settings saved by the SaveSettings command. Return <Enter> �������������������������������������������������������������������� The Return command behaves differently depending on Insert mode and AutoIndent mode. If Insert mode is OFF, the cursor is positioned at the first column of the next line. If Insert mode is ON, the current cursor line is split at the cursor position and any text to the right of and including the cursor position is placed on a new line following the current line. If the cursor is past the last character on the line, then a blank line is added following the current line. The cursor is then moved to the first column of the new line. If AutoIndent is ON, spaces are inserted ahead of the cursor position to align it with the text on the previous line. If AutoIndent is OFF, the text is moved to the beginning of the next line. The Return command can be configured to split or not split lines when Insert mode is ON. Refer to the "Advanced Options" section of Chapter 2 for more information. SaveFile <Ctrl K S> or <Alt F><S> or <Esc><F><S> �������������������������������������������������������������������� Saves to disk the file currently being edited. The file remains loaded, ready for further editing. SaveSettings �������������������������������������������������������������������� This command is intended for use only within macros. Saves the current settings of: Insert, AutoIndent, WordWrap, Sound, and Screen Updating. See RestoreSettings. ScreenLeft <Alt F5> �������������������������������������������������������������������� Shifts the screen to the left, the number of columns specified in the configuration program. Refer to the "Colors/Screen Options" section of Chapter 2 for more information.

ScreenRight <Alt F6> �������������������������������������������������������������������� Shifts the screen to the Right, the number of columns specified in the configuration program. Refer to the "Colors/Screen Options" section of Chapter 2 for more information. ScrollDown <Ctrl Z> �������������������������������������������������������������������� Scrolls the text one line at a time toward the end of the file. The cursor remains on the same line of text until it reaches the top of the screen. ScrollUp <Ctrl W> �������������������������������������������������������������������� Scrolls the text one line at a time toward the beginning of the file. The cursor remains on the same line of text until it reaches the bottom of the screen. SetAutoIndentMode �������������������������������������������������������������������� This command is intended for use only within macros. Sets AutoIndent mode ON. To set AutoIndent mode OFF, do the following:

SetAutoIndentMode ToggleIndent SetBakups �������������������������������������������������������������������� This command is intended for use only within macros. Enables the automatic creation of file backups, which causes the editor to create a backup file using the ".bak" file extension whenever a modified file is saved. (Refer to ToggleBakups for more information.) SetBoxDraw �������������������������������������������������������������������� This command is intended for use only within macros. Enables Box Drawing mode. The letter "B" appears on the StatusLine when this mode is ON. (Refer to ToggleBoxDraw for more information.) SetCenterFinds �������������������������������������������������������������������� This command is intended for use only within macros. Enables Find centering, which causes the Find and FindReplace commands to center the found text vertically in the window. (Refer to ToggleCenterFinds for more information.) SetCtabwidth <Esc><O><C>

�������������������������������������������������������������������� Sets the cursor tab width. This is the width that is used when the TabRt or TabLt commands are executed and Fixed Tabs mode is in effect. SetCUAMarking �������������������������������������������������������������������� This command is intended for use only within macros. Enables CUA-Style Block Marking mode, which defines shifted cursor keys to be used to mark Blocks. (Refer to ToggleCUAMarking for more information.) SetEGA25 �������������������������������������������������������������������� Switches a monitor with an EGA or VGA card to 25-line mode. This command has no effect if the video card is not an EGA or VGA type. SetEGA43 �������������������������������������������������������������������� Switches a monitor with an EGA card to 43-line mode, or a monitor with a VGA card to 50-line mode. This command has no effect if the video card is not an EGA or VGA type. SetEnterMatching �������������������������������������������������������������������� This command is intended for use only within macros. Sets EnterMatching mode ON. information.) (Refer to ToggleEnterMatching for more

SetInsMode �������������������������������������������������������������������� This command is intended for use only within macros. Sets Insert mode ON. To set Insert mode OFF (that is, set overwrite mode ON), do the following: SetInsMode ToggleInsert SetPrintAddFF �������������������������������������������������������������������� This command is intended for use only within macros. Enables the automatic sending of a formfeed character to the printer when each print operation is complete (after the last printed page). (Refer to TogglePrintAddFF for more information.) SetPrintBotMargin <Alt P><O> or <Esc><P><O> �������������������������������������������������������������������� Sets the number of lines that are left blank at the bottom of each page during printing.

SetPrintDevice <Alt P><D> or <Esc><P><D> �������������������������������������������������������������������� Allows the setting of the default print device. Choices include PRN, LPT1 through LPT3, or any valid filename. When executed, the following menu is displayed: � Print Device Ŀ ��PRN������������ � LPT1 � � LPT2 � � LPT3 � � Disk File... � ����������������� SetPrintLeftMargin <Alt P><L> or <Esc><P><L> �������������������������������������������������������������������� Sets the number of spaces that are printed as a left margin at the beginning of each line. The default is zero. SetPrintLineSpacing <Alt P><S> or <Esc><P><S> �������������������������������������������������������������������� Allows the setting of the print line spacing, up to a value of 200. When executed, the following prompt is displayed: ����������������������������������������������������������Ŀ � Printer line spacing [1=single, 2=double, etc.]: � � � ������������������������������������������������������������ SetPrintPageSize <Alt P><P> or <Esc><P><P> �������������������������������������������������������������������� Sets the number of lines to be printed per page before sending a formfeed. A value of zero allows continuous printing (no formfeeds sent). SetPrintTopMargin <Alt P><T> or <Esc><P><T> �������������������������������������������������������������������� Sets the number of lines that are left blank at the top of each page during printing. SetPtabwidth <Esc><O><P> �������������������������������������������������������������������� Sets the Physical Tab Width. This determines the width to which physical tab characters found in files are expanded if Physical Tab Expansion is set ON. It also determines the number of spaces to be used for Tabs Out mode. Refer to the ToggleTabsExpand and ToggleTabsOut commands in this chapter for more information. SetRmargin <Ctrl O R> or <Esc><O><R> ��������������������������������������������������������������������

Sets the right margin for word-wrap and paragraph reformatting. WordWrap mode is automatically switched ON whenever the right margin is set using this command. SetScreenOff �������������������������������������������������������������������� This command is intended for use only within macros. Turns screen updating OFF. You must turn screen updating back ON before your macro prompts for input, or if there is some output from the macro that you want displayed on the screen. Note: The editor AUTOMATICALLY turns screen updating back ON when the macro is finished executing. Thus, it is not necessary to issue the SetScreenOn command at the end of the macro.

SetScreenOn �������������������������������������������������������������������� This command is intended for use only within macros. Turns screen updating ON (see SetScreenOff). SetSortCaseInsensitive �������������������������������������������������������������������� This command is intended for use only within macros. Sets the sorting operation to case-insensitive. (Refer to ToggleSortCaseInsensitive for more information.) SetSortDescending �������������������������������������������������������������������� This command is intended for use only within macros. Sets the sorting operation to descending order. ToggleSortDescending for more information.) (Refer to

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

Enables swapping to expanded memory or disk when the Shell and Dos commands are executed. (Refer to ToggleSwap for more information.) SetSyncScroll �������������������������������������������������������������������� This command is intended for use only within macros. Sets Synchronized Scrolling mode ON. more information.) (Refer to ToggleSyncScroll for

SetTabsExpand �������������������������������������������������������������������� This command is intended for use only within macros. Sets Physical Tab Expansion mode ON. more information.) (Refer to ToggleTabsExpand for

SetTabsOut �������������������������������������������������������������������� This command is intended for use only within macros. Sets Tabs Out mode ON. (Refer to ToggleTabsOut for more information.)

SetTabType <Esc><O><Y> �������������������������������������������������������������������� Determines the behavior of the tab key based on the tab type selected. Choices are Fixed, Smart, and Variable. (Refer to the "Modes" section of Chapter 1.) When executed, the following menu is displayed: ��� Tab Type ��Ŀ ��Fixed���������� � Smart � � Variable � ����������������� SetVarTabStops <Esc><O><V> �������������������������������������������������������������������� Allows the setting of the tab stops used when Variable tab type is selected. SetVGA28 �������������������������������������������������������������������� Switches a monitor with a VGA card to 28-line mode. This command has no effect if the video card is not a VGA type. SetWordWrapMode �������������������������������������������������������������������� This command is intended for use only within macros. Sets WordWrap mode ON. To set WordWrap mode OFF, do the following:

SetWordWrapMode ToggleWordWrap Shell <F9> or <Alt F><O> or <Esc><F><O> �������������������������������������������������������������������� Invokes a DOS shell. While in the shell, you can execute DOS and other commands. When you are ready to leave the shell, type "exit" and press <Enter>. This places you back in the editor, exactly where you left off. ��������������������������������������������������������������Ŀ � Tip: � � You should NOT execute any TSR (terminate and stay � � resident) programs from the editor's Shell command. This � � includes the DOS print and graph commands, and � � memory-resident programs such as Sidekick and Superkey. � ���������������������������������������������������������������� ShiftLeft <Shift F7> �������������������������������������������������������������������� Shifts the contents of the currently marked Block (or the cursor line, if the cursor is not in a marked Block) one position to the left. If, when you issue this command, the leftmost character on a line being shifted is in the first column of the Block, that character is deleted to allow the remainder of the line to shift left one position. ShiftRight <Shift F8> �������������������������������������������������������������������� Shifts the contents of the currently marked Block (or the cursor line, if the cursor does not reside in a marked Block) one position to the right. If, when you issue this command, the rightmost character on a line being shifted is in the last column of the Block, that character is deleted to allow the remainder of the line to shift right one position. ShowEntryScreen <Alt F10> �������������������������������������������������������������������� Displays the original DOS screen as it appeared upon initial execution of the editor. Press any key to return to the edit screen. To use this command, the option "Do you want the original screen restored upon termination (Y/N)?" must be set to "Y" (the default setting). This option is set via the QCONFIG program, under "Colors/screen." ShrinkWindow <Ctrl O S> or <Esc><W><R> �������������������������������������������������������������������� Changes the size of the current window, if there are multiple windows on the screen. Sort <Shift F3> ��������������������������������������������������������������������

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

SpacesToTabs <Esc><O><M> �������������������������������������������������������������������� Compresses occurrences of multiple spaces to tabs, where appropriate. Spaces within quotes (single and double) are not compressed. If the cursor is within a marked Block when this command is executed, only spaces within the Block are compressed; otherwise, this common operates on the entire file. SplitLine <Alt S> or <Esc><E><S> �������������������������������������������������������������������� Splits the current cursor line at the cursor position. Any text to the right of and including the cursor position is placed on a new line following the current line. If the cursor is past the last character on the line, then a blank line is added following the current line. The cursor position does not change. StoreScrBuff <Ctrl B S> �������������������������������������������������������������������� Copies the currently marked Block to the named Scratch Buffer. The editor prompts for the name of the Scratch Buffer. The contents of all Scratch Buffers are lost when the editor is terminated. SwapChars �������������������������������������������������������������������� Swaps the character at the cursor position with the character preceding the cursor. The cursor column position does not change. If, when this command is executed, the cursor is in column 1, or is positioned beyond the last non-blank character of the line, then no action occurs. SwapLines <Ctrl F2> or <Esc><E><P> �������������������������������������������������������������������� Swaps the current line with the line immediately following it. The cursor does not change its position relative to the screen. If the cursor is on the last line of the file when this command is executed, then no action occurs. SwapWords

�������������������������������������������������������������������� Swaps the word in which the cursor is positioned with the previous word on the current line. Any "non-word" characters between the affected words are preserved. If, when this command is executed, the cursor is not positioned on a character within a word, or if there is no previous word on the current line, then no action occurs. TabLt <Shift Tab> �������������������������������������������������������������������� Positions the cursor at the previous tab position, as defined by the tab width. If Insert mode is ON, the text to the right, including the character at the cursor position, shifts left. The editor can be configured so that if Insert mode is ON, AND the cursor is inside a marked Block, the entire Block shifts left by the current cursor tab width. For more information on this option, refer to the "Advanced Options" section of Chapter 2. TabRt <Tab> �������������������������������������������������������������������� Positions the cursor at the next tab position, as defined by the cursor tab width. If Insert mode is ON, the text to the right, including the character at the cursor position, shifts right. The editor can be configured so that if Insert mode is ON, AND the cursor is inside a marked Block, the entire Block shifts right by the current cursor tab width. For more information on this option, refer to the "Advanced Options" section of Chapter 2. TabsToSpaces <Esc><O><X> �������������������������������������������������������������������� Expands tab characters to the appropriate number of spaces. Tabs within quotes (single and double) are not expanded. If the cursor is within a marked Block when this command is executed, only tabs within the Block are expanded; otherwise, this command operates on the entire file. ToggleBakups <Esc><O><B> �������������������������������������������������������������������� Toggles (ON and OFF) file backups. If ON, the editor creates a backup file using the ".bak" file extension whenever a modified file is saved. ToggleBoxDraw <Shift F1> �������������������������������������������������������������������� Toggles (ON and OFF) Box Drawing mode. If ON, the cursor movement keys (up, down, right, left) "draw" lines in the text, both up/down and right/left. Very useful for creating charts and tables. The letter "B" appears on the StatusLine when this mode is ON. ToggleBoxType <Alt F1> �������������������������������������������������������������������� This command prompts the User to select from different line drawing styles for use with Box Drawing mode. The options are: Single, Double

Top, Double Side, Double, and Eraser. is displayed: ��� Box Style �Ŀ ��Single��������� � Double Top � � Double Side � � Double � � Eraser � �����������������

When executed, the following menu

ToggleCenterFinds <Esc><S><C> �������������������������������������������������������������������� Toggles (ON and OFF) Find centering. If ON, this causes the Find, FindReplace, and IncrementalSearch commands to center the found text vertically on the screen. If OFF, the initial row the cursor was on when the command was initiated does not change. ToggleCUAMarking �������������������������������������������������������������������� Toggles (ON and OFF) CUA-Style Block Marking mode. If ON, the shifted cursor keys can be used to mark non-inclusive character Blocks. (Refer to "CUA-Style Block Marking" in Chapter 1.) ToggleEGA43 <Ctrl F1> �������������������������������������������������������������������� Toggles an EGA monitor between 25-line and 43-line mode or a VGA monitor between 25-line and 50-line mode. This command has no effect if the video card is not an EGA or VGA type. ToggleEnterMatching <Esc><O><E> �������������������������������������������������������������������� Toggles (ON and OFF) EnterMatching mode. If ON, the double quote, parenthesis, square bracket, and curly brace keys all automatically enter the matching right-hand character when the left-hand character is entered. For example, typing the "[" key automatically enters a "]" immediately following. ToggleIndent <Ctrl Q I> or <Esc><O><A> �������������������������������������������������������������������� Toggles (ON and OFF) AutoIndent mode. If ON, the cursor is positioned at the current left margin whenever the <Enter> key is pressed. The current left margin is determined by the first non-blank character on the immediately preceding line. Paragraph reformatting and word-wrapping also use the current left margin when AutoIndent mode is ON. The letter "A" appears on the StatusLine when this mode is ON. ToggleInsert <Ins> or <Esc><O><I> ��������������������������������������������������������������������

Toggles (ON and OFF) Insert mode. If ON, text to the right of the cursor on the cursor line is shifted whenever characters, spaces, the Backspace command, the TabLt command, or the TabRt command is entered. Also, executing the Return command causes the current line to split at the cursor position. The letter "I" appears on the StatusLine when this mode is ON. TogglePrintAddFF <Esc><P><R> �������������������������������������������������������������������� Toggles (ON and OFF) the automatic sending of a formfeed character to the printer when printing is complete. If ON, the editor automatically sends a final formfeed character when printing is complete (after the last printed page). TogglePrintLineNumbers <Alt P><N> or <Esc><P><N> �������������������������������������������������������������������� Toggles (ON and OFF) the printing of line numbers. TogglePrintPause <Alt P><U> or <Esc><P><U> �������������������������������������������������������������������� Toggles (ON and OFF) pausing between pages while printing. If ON, the editor pauses and requires a key press to continue after every page is printed. This is useful with single sheet printers. When OFF, the editor prints continuously without pausing. ToggleShowCurrChar <Esc><O><H> �������������������������������������������������������������������� Toggles (ON and OFF) the display of the ASCII and Hexadecimal values of the current character on the StatusLine. When ON, the ASCII and Hex values of the current character are displayed in the far right portion of the StatusLine. If the cursor is past the end of the text on the line, <EOL> is displayed. ToggleSmartTabs <Ctrl Q T> �������������������������������������������������������������������� Toggles (ON and OFF) Smart Tabs mode. If ON, the TabRt and TabLt commands place the cursor beneath the beginning of the next (or previous) word on the first nonblank line preceding the current cursor line. ToggleSortCaseInsensitive <Esc><B><I> �������������������������������������������������������������������� Toggles (ON and OFF) case-insensitive sorting. When ON, upper and lower case letters are sorted as if they are of the same case. When OFF, upper and lower case letters are sorted strictly by their ASCII value, which places all upper case letters before the lower case letters. ToggleSortDescending <Esc><B><N> �������������������������������������������������������������������� Toggles (ON and OFF) descending sorting. When ON, sorting is performed

from highest value to lowest value (descending). When OFF, sorting is performed from lowest value to highest value (ascending). ToggleSwap <Esc><O><S> �������������������������������������������������������������������� Toggles (ON and OFF) swapping to expanded memory or disk when the Shell <F9> and Dos <Alt F9> commands are executed. (You can specify a default for swapping, using the configuration program. Refer to the "Advanced Options" section of Chapter 2 for more information.) If ON, the editor swaps itself out of DOS memory and to expanded memory or disk when a shell command is executed. This leaves a small 2K editor kernel in DOS memory, freeing up the rest of DOS memory for running other applications out of the shell such as compilers or spreadsheets. While you are in a shell, the editor maintains a file with a ".SWP" file extension in your root directory. It is very important that you do not delete this file while in the shell. ToggleSyncScroll <Ctrl O Y> or <Esc><W><Y> �������������������������������������������������������������������� Toggles (ON and OFF) Synchronized Scrolling mode in each window on the screen (when multiple windows are open). When this mode is ON, the editor attempts to synchronize logical cursor movement and scrolling in all windows, based on cursor movement and scrolling activity in the current window. The letter "S" appears on the StatusLine when this mode is ON. ToggleTabsExpand <Alt V> �������������������������������������������������������������������� Toggles (ON and OFF) Physical Tab Expansion mode. If ON, physical tab characters (ASCII 9) found in a file are expanded into spaces according to the Physical Tab Width set in the configuration program. If OFF, physical tabs are displayed on the screen and a physical tab character is placed in the text each time the TabRt command is entered. ToggleTabsOut <Alt I> �������������������������������������������������������������������� Toggles (ON and OFF) Tabs Out mode. If ON, continuous spaces in a line of text are replaced with physical tabs (ASCII 9) according to the Physical Tab Width set in the configuration program. Only spaces in edited lines are replaced with physical tabs. Spaces falling between single or double quotes are not replaced. ToggleVarTabs �������������������������������������������������������������������� Toggles (ON and OFF) Variable Tabs mode. When ON, tab stops are set to those specified by the SetVarTabStop command, or by the default set by the configuration program. When OFF, tab stops are set to a fixed tab width, as specified by the SetCTabWidth command.

ToggleVGA28 �������������������������������������������������������������������� Toggles a VGA monitor between 25-line and 28-line mode. This command has no effect if the video card is not a VGA type. ToggleWordwrap <Ctrl O W> or <Esc><O><W> �������������������������������������������������������������������� Toggles (ON and OFF) WordWrap mode. If ON, the cursor, along with the word currently being typed, automatically advances to the next line whenever a character is typed beyond the right margin. The right margin can be permanently set using the configuration program (refer to the "General Options" section of Chapter 2) or temporarily changed using the SetRmargin command. The letter "W" appears on the StatusLine when this mode is ON. UndoCursorline <Ctrl Q L> �������������������������������������������������������������������� Reverses any changes made to the current cursor line (except changes made with the FindReplace command). If the cursor has been moved from the changed line or a file or window command is executed, the changes cannot be undone. UnKill <Ctrl U> or <Esc><E><U> �������������������������������������������������������������������� Recovers the last deleted entry from the current file's Kill Buffer. Deleted Blocks and lines are inserted immediately before the current cursor line, and deleted words are inserted immediately before the current cursor position. The number of lines saved in the Kill Buffer may be set with the configuration program. Refer to the "General Options" section of Chapter 2 for more information. UnmarkBlock <Alt U> or <Esc><B><U> �������������������������������������������������������������������� Unmarks the currently marked Block. Upper <Alt 1> �������������������������������������������������������������������� Changes all characters in a marked Block to upper case. The cursor must be within the marked Block. If the cursor is outside of the marked Block or if no Block is marked, the character at the current cursor position is changed to upper case. WinClipCopy �������������������������������������������������������������������� Copies the marked Block into the Microsoft Windows Clipboard. The Block is then unmarked. This command is similar to the Copy command.

WinClipPaste �������������������������������������������������������������������� Inserts the contents of the Microsoft Windows Clipboard into the current file at the cursor position. This command is similar to the Paste command. WordLeft <Ctrl Cursor Left> �������������������������������������������������������������������� Positions the cursor at the first character of the previous word. WordRight <Ctrl Cursor Right> �������������������������������������������������������������������� Positions the cursor at the first character of the following word. WrapPara <Alt B> �������������������������������������������������������������������� Reformats text from the current cursor position until a blank line or end of file is encountered. If AutoIndent is ON, the line below the cursor line is used for the left margin. Otherwise, a left margin of zero is used. The right margin is determined by the configuration program (refer to the "General Options" section of Chapter 2), or interactively set by the SetRmargin command. WriteBlock <Alt W> or <Alt F><W> or <Esc><F><W> �������������������������������������������������������������������� Writes the currently marked Block to the named file. The editor prompts for the name of the file. A Save-As-Filename feature is possible with the WriteBlock command, allowing you to save your current file under a different name. To use this feature, execute the WriteBlock <Alt W> command with no marked Blocks in the file. the editor prompts with: ��������������������������������������������������������������Ŀ �File to write: � � � ���������������������������������������������������������������� Enter the new filename. If the filename you specify already exists, the editor prompts with: �������� Choose �������Ŀ � Overlay Existing File � � Append to File � ������������������������� Select the desired option, or press <Esc> to cancel. If there is a marked Block in the file, the WriteBlock command operates as usual, and writes the currently marked Block to the named file.

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