ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ QEdit(R) Advanced - Version 3 ³ ³ Copyright 1985-1994 SemWare Corporation. ³ ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ³ R E F E R E N C E M A N U A L ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ TABLE OF CONTENTS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Introduction Features System Requirements 1. User's Guide for QEdit Quick Start Getting Started In the Editor Getting Out Menus The StatusLine Prompts Files Creating New Files Loading Existing Files Invoking QEdit at a Specific Line Number Multiple Files: The Ring Saving Files and Exiting Read-Only Files Viewing and Getting Around in the Text Cursor Movement Moving Through a File Moving Around on the Screen Moving By Lines and Characters Using Windows Creating Windows Switching Windows Changing Window Size Closing Windows Finding and Replacing Text Finding Text Replacing Text Copying, Moving, Changing, and Deleting Text Block Commands Marking and Unmarking a Block Manipulating Blocks Directly Manipulating Blocks Using Scrap Buffer Manipulating Blocks Using Scratch Buffers Examples of Block Commands Non-Block Commands Adding Text Copying Text Moving Text Deleting And Undeleting Text Changing Case Sorting The Kill Buffer - A Safety Net Macros Printing Print Formatting Formfeeds The Shell and Dos Commands Swapping, [QE] Shell Indicator Word-Processing Commands Modes 2. Customizing QEdit Initiating the Configuration Program The Configuration Menu Advanced Options Colors/Screen Options General Options The Help Screen Keyboard Configuration The Keyboard Definition File Creating a Keyboard Definition File Printer Options Tab Settings 3. QEdit Macro Reference Keyboard Macros Creating Keyboard Macros Using Keyboard Macros Saving and Reloading Keyboard Macros Example of a Keyboard Macro Creating Macro Programs Advanced Macro Programming Macro Pause Using Paste within a Macro Repeating a Command within a Macro Conditional Logic for Macros Special-Purpose Macro Commands The Main Macro QMac Using QMac: An Overview Executing QMac Writing Macro Text Converting Macro Binary Format to Text Format Startup Macros 4. QEdit Command Reference ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³INTRODUCTION ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ This manual describes the use and operation of QEdit, a full-screen text editor for the IBM PC and compatible computers. The manual includes installation instructions, a user's guide, a chapter on customizing the editor, and reference sections for the macro language and the QEdit commands. QEdit is a text editor as opposed to a word processor. This means that most of its features are geared toward creating and maintaining program source code and other text files. However, QEdit can also be used like a word processor to write documents or letters since it includes many word-processing capabilities. QEdit was developed with these goals in mind: * FAST OPERATION - More than anything else, QEdit was designed to operate quickly, especially in these areas: - Initially loading a file for editing. - Displaying/updating the screen. - Moving through the editing window. - Searching for text. - Saving a file back to disk. * EASE OF USE - This version of QEdit includes: - Optional "pull-down" menus. - Customizable Help Screen. - Complete execution from a single file (Q.EXE). - Pop-up file directory and picker. * COMPACT PROGRAM SIZE - Every effort has been made to keep the program size as compact as possible. Even though memory is getting cheaper all the time, we do not want QEdit to require any more memory than absolutely necessary. QEdit is available in three versions: QEdit Advanced (the standard DOS version), QEdit TSR (the memory-resident DOS version), and QEdit for OS/2. All three versions offer the same rich set of features and behave in much the same manner. This manual uses QEdit Advanced as its basis for discussion of the operation and features of the editor. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³QEdit Advanced File Description ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Q.EXE QEdit. Once configured, no other files are necessary for proper operation of QEdit. QCONFIG.EXE The QEdit configuration program. This program allows you to customize QEdit. QCONFIG.DAT The default QEdit Keyboard Definition file. Used by QCONFIG.EXE (or QTCONFIG.EXE) QHELP.TXT The default QEdit Help text. Used by QCONFIG.EXE (or QTCONFIG.EXE). QMAC.EXE The QEdit macro translator. This program allows you to externally write macros. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³FEATURES ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ QEdit offers a number of powerful features for editing text, both easily and quickly. To put that power at your fingertips, version 3 of QEdit: * Is very fast! * Is highly customizable. QEdit can be easily configured the way you like. You can configure ALL of the special keys on the keyboard (Alt, Ctrl, and function keys; , , etc.), as well as the colors, screen appearance, and many other options. * Is easy to use. An optional "pull-down" menu provides ready access to QEdit's commands, and the Help Screen can be customized for your own needs. * Is compact. Even with all these features, QEdit requires less than 70K of disk space. * Utilizes all available DOS memory (up to 640K). Edit files as large as your computer's memory will allow. * Allows multi-file editing. The number of files you can edit is limited only by available memory. * Enables you to view files through up to eight horizontal, resizable "windows". You can have multiple views of the same file or view a different file in each window. * Provides up to 99 scratch buffers for cut-and-paste or template operations. You can even select a buffer from a pick-list of your current scratch buffers. * Allows you to temporarily exit to DOS (or a DOS shell) and use DOS commands from within the editor. Optionally, the editor can swap to disk or expanded memory to allow even the largest programs (such as compilers) to run from within QEdit. * Supports numerous character, line, and column Block operations. * Saves deleted words, lines, and Blocks in a deletion buffer for later recall. * Will load multiple files from the DOS command line, with or without wildcard characters. * Allows you to specify up to six default file extensions for use when loading files and determining tab settings. * Provides line-drawing capability to create diagrams and tables. * Supports enhanced (101-key) keyboards. * Supports up to 200-column and 100-line screens. * Supports EGA 43-line mode, and VGA 28-line and 50-line modes. * Offers a built-in Sort command, with options for ascending, descending, and case-insensitive sorting. * Includes options for the Find and FindReplace commands to start a search at the beginning of a file ("global" option) and/or limit a search to a marked Block ("local" option). * Provides the ability to shift entire Blocks using the tab left and right commands (TabLt and TabRt). * Allows you to fill a Block with a specified character (FillBlock command). * Offers an optional large, flashing block cursor as a configuration option. This is especially helpful for use on laptop computers. * Accommodates editing of files with a linelength of up to 1000 characters. * Provides a pop-up ASCII chart that allows you to directly insert the selected character into your text. * Includes various tab-handling options, including variable, smart, and fixed tabs. For your word-processing needs, QEdit: * Provides wordwrap and paragraph-reformat capabilities. * Includes options to change the case of characters (Flip, Lower, Upper commands). * Gives you the ability to center the text on a line (CenterLine command). * Offers various printing options, such as specification of top and bottom print margins (SetPrintBotMargin, SetPrintTopMargin commands), assignment of the print device, ability to adjust line spacing, and inclusion of line numbers. * Allows you to configure the date and time formats. * Includes an option to display the hex and decimal values of the current character on the StatusLine. To further enhance the editor's operation, QEdit's macro facility: * Allows you to create macros that will execute a series of commands and keystrokes by pressing a single key. * Offers a simple macro scripting language. * Includes the ability to load and/or execute macros from the DOS command line, as well as an option to execute an automatic startup macro. * Supports conditional logic (Jump, JTrue, JFalse commands). To assist you in your programming tasks, QEdit: * Provides "C mode", which utilizes automatic indentation for C-language programming. * Locates matching braces and parentheses, which is very useful for entering and maintaining source code. * Allows you to execute command-line compilers from within the editor, using QEdit's macro facility. * Offers a DOS command-line option (-n) for jumping to a specific line number within a file upon loading. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³SYSTEM REQUIREMENTS ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ QEdit will run on the IBM PS/2, PC/AT, PC/XT, PC, PC/Jr, and on IBM compatible computers including the Compaq, NCR, Tandy, and WYSE PCs. MINIMUM requirements are: * 128 KB of memory (although QEdit can utilize up to 640 KB if it is available) for QEdit Advanced. * PC- or MS-DOS v2.0 or greater. * One diskette drive. * Either a color or a monochrome monitor with 80-column display. * Less than 70 KB of disk space. * The editor program itself: Q.EXE. Once configured, no other files are necessary for operating QEdit. SETTING UP QEDIT ON A LAPTOP SYSTEM ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If you have a laptop computer (one with an LCD or plasma display), in addition to carrying out the procedures given in the previous sections, you should set your screen parameters before using QEdit. QEdit works best if you enter MODE BW80 at the DOS command line before running the editor. Alternatively, you can install QEdit for a black-and-white screen with the QEdit customization program, QCONFIG. Refer to Chapter 2, "Customizing QEdit." With this customization program, you should choose "1" (Monochrome) from the "Colors/screen" options, when prompted with "Startup attribute set:". ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Please note that one of the MAJOR features of QEdit is ³ ³ configurability. You can customize the colors, the keys, ³ ³ the on-screen appearance of the editor, and many other ³ ³ functions. ³ ³ ³ ³ By spending just a small amount of time reviewing Chapter ³ ³ 2 on configuration, you can benefit greatly through ³ ³ customizing the editor to your personal preferences. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³CHAPTER 1. USER'S GUIDE FOR QEDIT ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ QUICK START ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ With QEdit you can edit any text file with a few simple commands. The next three sections briefly describe the quickest way possible to load, edit, and save a file. Getting Started ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Using QEdit is simple and straightforward. To initiate QEdit, type "Q ". The Editor will respond with a prompt for the name of the file to be edited. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ File(s) to edit: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Enter the filename. The filename may include full path designation. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ At any "File to edit" prompt, you may use wildcard ³ ³ characters (* or ?) to obtain a list of matching files in ³ ³ the directory. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ You may optionally include the filename on the DOS command line in order to bypass this prompt. For example, from the DOS command line, type: "Q filename " In the Editor ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Once you are in QEdit, the cursor movement keys (Left, Right, Up, Down, Home, End, ...) allow you to move around in the text. To obtain a Help Screen, simply press . Pressing again (or any other key) returns you to the text. To obtain a menu of QEdit commands, press . You may then use the cursor movement keys to position the cursor bar over the desired command. Press to execute the command. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Within a prompt for a command, press to cancel the ³ ³ command (and the prompt). ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Getting Out ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The easiest way to get out of QEdit and save all the work you have done is to enter . MENUS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides an easy-to-use "pull-down" style menu system. The menu system is very helpful while learning to use the editor. It is also handy for executing seldom-used commands. To access the menus and execute a command: 1. Press . 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 , or type the capital letter of the desired item. 3. Execute a command. This is done in the same manner as selecting the sub-menu items. Here is an example of the pull-down style menu system. The User is about to execute the "Copy block" command. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³File Window #Block# Search Print Macro Editing Other Quit ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ mark Line ³ ³ mark cHaracter ³ ³ mark Kolumn ³ ³ mark Begin ³ ³ mark End ³ ³ Unmark ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³#Copy block########³ ³ Move block ³ ³ Delete ³ ³ copyOver ³ ³ Fill ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ Sort ³ ³ Ignore case [off] ³ ³ desceNding [off] ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ You can execute many QEdit commands using the menus. As you become more familiar with the editor, you may wish to use the , , and function key assignments, instead of the menus, to execute commands more quickly. Cross-reference listings of all QEdit commands can be found in Appendices A and B. THE STATUSLINE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ At the top of the editing screen is the StatusLine. The StatusLine constantly displays information about the file you are currently editing. The StatusLine is shown below with a description of the information displayed. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³L 15 C 15 IAW R B 411K *c:\qedit\qedit.doc 20h,32³ ÀÄijÄÄÄÄÄijÄÄÄij³³Ä³Ä³ÄÄijÄÄÄÄijÄÄÄÄÄijÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄijÄÄÄÙ ³ ³ ³³³ ³ ³ ³ ³ ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄ ³ ³ ³³³ ³ ³ ³ ³ ³ The hex and decimal value for the ³ ³ ³³³ ³ ³ ³ ³ ³ character at the cursor position, ³ ³ ³³³ ³ ³ ³ ³ ³ if this option is turned on. ³ ³ ³³³ ³ ³ ³ ³ ÀÄÄ The path and name of the file you ³ ³ ³³³ ³ ³ ³ ³ are editing ³ ³ ³³³ ³ ³ ³ ÀÄÄÄÄÄÄ *) Indicates file has been changed ³ ³ ³³³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Amount of available memory ³ ³ ³³³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ B) Indicates Box Drawing mode is ON ³ ³ ³³³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ R) Indicates Macro Recording is ON ³ ³ ³³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ W) Indicates WordWrap mode is ON ³ ³ ³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ A) Indicates AutoIndent mode is ON ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ I) Indicates Insert mode is ON ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The current cursor column number ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The current cursor line number For more information on Insert, AutoIndent, WordWrap, and Box Drawing, refer to the "Modes" section in this chapter. For more information on macro recording, refer to Chapter 3, "QEdit Macro Reference." ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The StatusLine may be configured to appear at the bottom ³ ³ of the screen. Refer to the "Colors/Screen Options" ³ ³ section of Chapter 2 for more information. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ PROMPTS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ When QEdit needs information from the user (such as the name of a file to edit, a search string, etc.), a prompt is issued. The prompt consists of a message, telling what information is requested, and an area for the user to enter their response. The following commands are available in prompts (if assigned to a key): BackSpace CursorRight EndLine Return BegLine DelCh Escape ToggleInsert CurrentFilename DelLine Paste CursorLeft DelToEol Pause Other commands are simply ignored. Note: Execute DelLine ( or ) to clear the response area of any prompt. FILES ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Creating New Files ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ There are three different ways to create new files, ready for editing. 1. From the DOS command line, enter followed by one or more new filenames. Each filename must be separated by a space. For example, typing: "Q file1 b:file2 \dir1\file3 " will create "file1" in the current directory, "file2" on disk drive B, and "file3" in the directory "dir1". ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ When specifying file names to QEdit, you may use full ³ ³ path designations if desired. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 2. From the DOS command line, type "Q ". QEdit responds with the prompt: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ File(s) to edit: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Enter one or more new filenames, each separated by a space. 3. From within the editor, execute the EditFile command. The above prompt will appear. Again, you may enter one or more new filenames, each separated by a space. Loading Existing Files ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Loading existing files works exactly like creating new files (in the previous section) with two exceptions: * The filename(s) specified must exist on disk. * The filename(s) may contain wildcard characters (*, ?). QEdit can be configured to respond to wildcarded filename entries in one of two ways: 1. Load all matching files into the editor. 2. Show all the matching filenames in a "pick" listing. You can then use the cursor keys to find the file you want and press to load it into the editor. QEdit can also be configured to use default file extensions, such as "doc" and "pas" when entering filenames. For more information on configuring these options, refer to the "General Options" section of Chapter 2. Invoking QEdit at a Specific Line Number ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ A QEdit DOS command line option (-n) allows you to specify a line number in a file on which to position the cursor when the file is loaded into QEdit. From the DOS prompt type: q -n For example, to load file1 at line number 125, from the DOS command line you would enter: q file1 -n125 Or, if you prefer: q -n125 file1 Multiple Files: The Ring ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit is a true multi-file editor. It allows as many files as will fit into memory to be loaded at the same time. All of these files can then be edited by simply switching back and forth between them without having to save and load each file individually. Switching between files is accomplished very quickly and easily. A simple explanation of how QEdit handles multiple files will help you in manipulating and editing multiple files. QEdit maintains all loaded files in a "ring". As we describe each of the commands used to manipulate the files in the ring, refer to the illustration below. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÄ¿ ÚÄÄÄÄ¿ ³ ³ ³ ³ ³####³ ³ ³ ÚÄÄÄÄÄ> ³ A ³ <ÄÄij#B##³ ³ ³ ³ ³ ³ ³####³ ³ ³ ³ ³ ÀÄÄÄÄÙ ÀÄÄÄÄÙ ³ ³ ³ v ^ v ³ ³ ÚÄÄÄÄ¿ ³ ³ ÚÄÄÄÄ¿ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ F ³ <ÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄ> ³ C ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÙ ³ ³ ÀÄÄÄÄÙ ³ ³ ^ v v ^ ³ ³ ³ ÚÄÄÄÄ¿ ÚÄÄÄÄ¿ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ> ³ E ³ <ÄÄÄÄÄÄÄÄÄÄ> ³ D ³ <ÄÄÄÄÙ ³ ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÙ ÀÄÄÄÄÙ ³ ³ The "Ring" ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ In the ring we see that six files have been loaded into the editor. You can, of course, load many more files - as many as your computer's memory will allow. Assume the file currently being edited is file "B". You may then move from one file to another in any of the following ways: * Enter the NextFile command. You will now be editing the next file in the ring, file "C". * Enter the PrevFile command. You will now be editing the previous file in the ring, file "A". * Enter the EditFile command. The editor will prompt for a filename. You may enter the name of any file in the ring. The editor will make the entered file the current one for editing. * Enter the ListFiles command. You will be shown a scrollable list of all loaded files, from which you may select a different file to edit. You may, at any time, add files to the ring or discard files from the ring. If you add a new file to the ring using the EditFile command, it will become the current file and the old current file will become the previous file. If you delete a file from the ring the previous file will become the current file. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ When loading files, be aware that QEdit will not load two ³ ³ copies of the same file. If you issue the EditFile ³ ³ command for a file already loaded, that file will become ³ ³ the new current file. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Saving Files and Exiting ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides several different ways to save files, discard files, and exit the editor. A set of five basic commands provides assorted combinations of saving, discarding, and exiting in order to suit individual preferences. We recommend selecting one or two methods with which you feel most comfortable and using them consistently. The table below summarizes these commands and their effects. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Command for Single ³Command for Multiple³ ³ ³File or Current File ³Files ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³Exit ³GExit ³ X X X(a)³ ³File ³GFile ³ X X X(a)³ ³PQuit ³GPQuit ³ X X X(a)³ ³Quit (b) ³ ³ X X ³ ³SaveFile ³GSave ³ X ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄijÄÄijÄÄijÄÄijÄÄijÄÄÄ´ ³ Edited File(s) are Saved Unconditionally ÄÄÄÙ ³ ³ ³ ³ ³ ³ User Prompted to Save Edited Files (Y/N)ÄÄÄÄÄÙ ³ ³ ³ ³ ³ User Warned That File Changes May Be LostÄÄÄÄÄÙ ³ ³ ³ ³ File(s) are Discarded From EditorÄÄÄÄÄÙ ³ ³ ³ The Editor is TerminatedÄÄÄÄÄÙ ³ ³ (a) The Exit, File, and PQuit commands can be configured to ³ ³ terminate or not terminate the editor. Refer to the ³ ³ "General Options" section of Chapter 2 for more ³ ³ information. ³ ³ (b) USE WITH CAUTION! ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Read-Only Files ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Read-Only files can be loaded and edited. However, they cannot be saved. When a Read-Only file is initially loaded, the message "File is READONLY" is displayed at the top of the screen. If you subsequently attempt to save a Read-Only file, the following message appears: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Cannot save READONLY files - Press ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ To save a Read-Only file, simply save it under a different name using the WriteBlock command (be sure there are no marked Blocks in the file), or change the filename using the ChangeFilename command and then save the file under the new name. VIEWING AND GETTING AROUND IN THE TEXT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit is quite versatile in allowing you to move around in the text. With simple keystrokes you can either move a few characters or lines at a time or move from one end of the file to another. You can go to specific lines in the file or go to each occurrence of a particular string of characters. And with QEdit's windows, you can view up to eight files at a time or have multiple views of the same file. As you will see, there are quite a few commands in QEdit for moving around in your text. If you are not already familiar with these types of commands, try them out. You will probably find some new commands that will be useful for your applications of QEdit. Cursor Movement - Moving Through a File ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides several commands which enable you to move about in a file. * BegFile , EndFile As their names imply, these commands move the cursor to the beginning or end of the current file. BegFile positions the cursor at column one on the first line of the file. EndFile positions the cursor after the last non-blank character on the last line of the file. * PageUp , PageDown PageUp scrolls the text toward the top of the file, one page-full, less one line, at a time. PageDown scrolls the text toward the end of the file, one page-full, less one line, at a time. * HalfPgUp and HalfPgDn These commands work exactly like the PageUp and PageDown commands, except that they scroll only one-half page at a time. * NextPara, PrevPara, EndPara These commands move the cursor to the start of the next, previous, or to the end of the current paragraph. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ All QEdit commands, including those without default key ³ ³ assignments, can be assigned as the user desires, to ³ ³ almost any key. Refer to the "Keyboard Configuration" ³ ³ section of Chapter 2 for more information. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ * ScrollUp , 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 , 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 Upon entering the GotoLine command, QEdit prompts with: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Goto line: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-ÄÄÙ Type a line number and press . QEdit then "jumps" the cursor to the specified line number. An easy way to move about quickly in your text is to keep track of critical positions by noting their line number, which is displayed on the StatusLine, and then using this command to "jump" to those positions. * GotoBlockBeg , GotoBlockEnd These commands move the cursor to the beginning or to the end of the currently marked Block. If the marked Block is in another file, QEdit 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 This command can be very handy. It moves you to the cursor's previous position. Although it is not of much use if you have only moved a character or two, it can be useful for larger jumps of the cursor. For example, perhaps you are in the middle of a file and want to check something at the very beginning of the file. To get to the beginning, you would simply enter BegFile . After you look at the beginning, you want to get back to where you were previously. You could use PageDown, but that could be tedious, especially if your file is large. The easiest way would be to enter PrevPosition, and with a single keystroke, you are immediately back where you started. Note: PrevPosition can only take you back to the cursor's immediately previous position. If there are intervening keystrokes that move the cursor, PrevPosition will move you back to the most recent location of the cursor. Cursor Movement - Moving Around on the Screen ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ These commands affect the cursor position within the current screen of displayed text. * BegScreen , EndScreen These commands move you to the first or last line of the screen (or current window if you have windows open). The cursor's column position does not change. * BegLine , EndLine You are probably already familiar with these commands. BegLine moves the cursor to the beginning, or column one, of the current cursor line. EndLine moves the cursor to the last non-blank character of the current cursor line. * FirstNonWhite This command is intended as a replacement for the BegLine command. It positions the cursor on the first non-white (space) character on the current line, or column 1 if the line is blank. An interesting variation is a command that toggles between the beginning of the line and the first non-white character on that line: home MacroBegin FirstNonWhite MacroQuitTrue BegLine Refer to the "Keyboard Configuration" section of Chapter 2 for more information on changing QEdit command assignments. * ScreenLeft , ScreenRight These commands scroll the entire text to the left or right one column at a time. You can change the number of columns which are shifted each time using the QEdit configuration program. Refer to the "Colors/Screen Options" section of Chapter 2 for more information. * WordLeft , WordRight These commands move the cursor to the first character of the previous or following word in the text. * MakeCtrofScreen , MakeTopofScreen , and MakeBotofScreen These three commands change the position of the cursor line on the screen (or window, if you have windows open). They can be useful if you prefer to work at the bottom or top of the screen or if you want to keep the text surrounding your cursor line in view. The MakeCtrofScreen command scrolls the text on the screen (either up or down) until the cursor line is the center line of the screen. The MakeTopofScreen command scrolls the text upward until the cursor line is the top line of the screen. The MakeBotofScreen command scrolls the text downward until the cursor line is the last line of the screen. Cursor Movement - Moving By Lines and Characters ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ These commands enable you to move in short increments through the text. * CursorLeft , CursorRight These commands move the cursor one column to the right or left on the cursor line. When you use CursorLeft, the cursor stops when it reaches the left edge of the screen, unless the text has been scrolled to the left. In that case it scrolls the text to the right one column at a time until it reaches column one. When you use CursorRight and the cursor reaches the right edge of the screen, it begins to scroll the text to the left. It stops scrolling when it reaches the maximum line length. If you prefer that cursor left/right would wrap at the beginning and end of lines, you can assign the following macros in your QCONFIG.DAT file in lieu of cursor left/right, respectively: * Left and Right cursor definitions that wrap to previous/next line * like WordStar does cursorleft MacroBegin CursorLeft * try to go left MacroQuitTrue * succeed! then we are done CursorUp * else try to go to prev line MacroQuitFalse * if fail, then at top of file. done. EndLine * jump to end of previous line. cursorright MacroBegin isEndLine * are we at end of line? JTrue down: * if so goto down CursorRight * else right one MacroQuit * Quit macro down: CursorDown * try to go to next line MacroQuitFalse * if not goto end BegLine * else goto beginning of line Refer to the "Keyboard Configuration" section of Chapter 2 for more information on changing QEdit command assignments. * CursorUp , CursorDown These commands move the cursor up or down in the file one line at a time. The cursor's column position does not change. * GotoColumn Upon entering the GotoColumn command, QEdit prompts with: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Goto column: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-ÄÄÙ Type a column number and press . QEdit then moves the cursor to the specified column number. Using Windows - Generalit… ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides the ability to view different areas of files (either multiple files or the same file) at the same time, through the use of windows. A window is a portion of the screen that allows you to view text. You can divide your screen into as many as eight horizontal windows. You can then view as many as eight different files through these windows or have multiple views of a single file. This capability can be quite helpful for comparing text, copying text, and moving text. An example of a screen split into three windows is shown below. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ L 1 C 1 IAW 411K *c:\file1 ³ ³ ³ ³ This window is a view of file number 1 at line number 1. ³ ³ This file is being edited with Insert, AutoIndent, and ³ ³ WordWrap modes all ON. This file has been updated. ³ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ L 483 C 12 IAW 411K *c:\file1 ³ ³ ³ ³ This window is a view of file number 1 at line number 483. ³ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ L 15 C 14 I 411K c:\file2 ³ ³ - ³ ³ This window is a view of file number 2. ³ ³ This file is being edited with Insert mode ON, while ³ ³ AutoIndent and WordWrap modes are OFF. This file has not ³ ³ been updated. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Using Windows - Creating Windows ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ To create a window, use the HorizontalWindow command. The screen will be split into two halves, or windows, each window having its own StatusLine. The cursor will reside in the newly created window, making it the current window. If only one file is being edited, the newly created window will simply be an additional view of the same file. QEdit will not load more than one copy of the same file. If multiple files are being edited, the newly created window will be a view of the next file in the ring. (Refer to the "Multiple Files" section in this chapter.) If desired, you can configure QEdit to prompt for the name of the file to be viewed in the new window instead of the editor automatically selecting the next file in the ring. Refer to the "General Options" section of Chapter 2 for more information. Once the screen has been split into windows, entering the HorizontalWindow command again will affect the current window. All other windows will remain unchanged. Using Windows - Switching Windows ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ When multiple windows are opened, editing will only take place in the current window (the window containing the cursor). For editing text in other windows, two commands are provided to switch from one window to another. * PrevWindow 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 This command moves the cursor to the window below the current window. If the current window is at the bottom of the screen, the cursor moves to the first window on the screen. Using Windows - Changing Window Size ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ You can change the size of any window on the screen with the commands below. * GrowWindow , ShrinkWindow , ResizeWindow These commands allow you to change the size of the current window. Upon entering any of these commands, QEdit prompts you to change the size of the window by using the cursor up and cursor down keys. * ZoomWindow This command causes the current window to fill the entire screen, as all other windows disappear. To restore the screen with all windows, simply press again. Be careful not to confuse this command with the OneWindow command (see below). OneWindow fills the screen with the current window (like ZoomWindow does), but it also closes all windows except the current one. ZoomWindow leaves the other windows intact, even though they are hidden from view. Using Windows - Closing Windows ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ There are two commands to close windows. * CloseWindow This command closes the current window. The current window disappears and the cursor is placed in the window above the closed window, making it the new current window. When the closed window is at the top of the screen, the window below the closed window becomes the new current window. * OneWindow This command closes all windows except the current window. The current window then fills the entire screen. Note that closing a window does not discard files from the editor. FINDING AND REPLACING TEXT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ- Finding Text ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Find , RepeatFind These commands search for a specific string of characters in the file. Upon entering the Find command, QEdit prompts for the string of characters for which to search. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Search for: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Enter the desired string of characters and press . QEdit then prompts for the search options to use. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Options [BGLIW] (Back Global Local Ignore-case Whole-words): ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-ÄÄÙ Enter the letter(s) corresponding to the option(s) you want and press . The available options are: [B] = Search backward from the current cursor position. When you choose "B", QEdit searches backward from the cursor position toward the beginning of the file. Otherwise, it searches from the cursor position toward the end of the file. [G] = Global search. Begins searching from the beginning of the file, or from the beginning of the marked Block if the [L] option is also selected. [L] = Local search. Limits the search to the currently marked Block. If the cursor is outside the marked Block, or the [G] option is also selected, the search starts at the beginning of the marked Block. Otherwise, the search starts at the current cursor position inside the marked Block. [I] = Ignore the case (capital or lowercase) of the search string. For example, "Hello" would match "hello" if this option is chosen. This option is set ON by default. [W] = Search for whole words only. For example, when this option is chosen, the word "sent" matches only the actual word "sent". Otherwise, any other words that contain the string (such as "sentence" or "absent") would also match. Once the Find command is executed the cursor is placed at the first occurrence of the search string found in the text. To locate subsequent occurrences of the search string, simply enter the RepeatFind command. If you want to search for a string and replace it with another string, refer to the "Replacing Text" section in this chapter. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The placement of the found text is configurable. It can ³ ³ either be placed on the same relative row on which the ³ ³ cursor line initially started, or centered. Refer to the ³ ³ ToggleCenterFinds command in Chapter 4. On the menus, ³ ³ press . ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ * Match This is a specialized search command. It acts only on the characters ( ), { }, and [ ]. With the cursor placed on one of these characters, enter the Match command. QEdit locates the logical matching character of the pair. This command can be useful for programming in languages where complicated expressions are grouped using these characters. Replacing Text ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides the ability to search for specific strings of characters throughout your text and then replace all, some, or none of them with another string of characters. (If you want to search for strings of characters without replacing them, use the Find command.) * FindReplace This command searches for a specific string of characters in the current file, and optionally, replaces it with another string of characters. Upon entering the FindReplace command, QEdit prompts for the string of characters for which to search. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Search For: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Enter the desired string of characters and press . QEdit then prompts for a new string of characters (to replace the old string). ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Replace with: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Enter the new string of characters and press . QEdit then prompts for the search options you wish to use. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Options [BGLIWN] (Back Global Local Ignore-case Whole-words³ ³No-prompting): ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ You can also enter a number in the options prompt. This ³ ³ instructs QEdit to only change the next "n" number of ³ ³ occurrences of the found string. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Enter the letter(s) corresponding to the option(s) you want and press . The available options are: [B] = Search backward from the current cursor position. If you choose "B", QEdit searches backward from the cursor position toward the beginning of the file. Otherwise, it searches from the cursor position toward the end of the file. [G] = Global search. Begins searching from the beginning of the file, or from the beginning of the marked Block if the [L] option is also selected. [L] = Local search. Limits the search to the currently marked Block. If the cursor is outside the marked Block, or the [G] option is also selected, the search starts at the beginning of the marked Block. Otherwise, the search starts at the current cursor position inside the marked Block. [I] = Ignore the case (capital or lowercase) of the search string. For example, "Hello" would match "hello" when this option is chosen. This option is set ON by default. [W] = Search for whole words only. For example, when this option is chosen, the word "sent" matches only the actual word "sent". Otherwise, any other words that contain the string (such as "sentence" or "absent") would also match. [N] = Find and replace without prompting. If you choose "N", QEdit finds and replaces every occurrence of the search string, without asking you if you want to replace each individual occurrence. If you select the "No-prompting" option, QEdit finds and replaces every occurrence of the search string with no further User intervention. If you do not select the "No-prompting" option, QEdit prompts at every occurrence of the search string with: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Replace (Yes/No/Only/Rest/Quit): ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Valid responses are: es - Replace the search string with the new string and continue to the next occurrence. o - Do not replace the search string, but continue to the next occurrence. nly - Replace the search string with the new string and quit. est - Replace the search string with the new string and replace the rest of the occurrences with no further prompts. uit - Cancel the FindReplace process. You can press to halt a global FindReplace. * RepeatFind This command reissues the previous Find or FindReplace command using the same character strings and options. COPYING, MOVING, CHANGING, AND DELETING TEXT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Block Commands - Generalit… ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ In this section, we will see how to mark and manipulate Blocks. A Block is some portion of the text file which has been specifically delineated using QEdit's Block-marking commands. We will see how to manipulate Blocks both directly and through the use of intermediate storage areas known as buffers. QEdit contains a rich set of Block commands. There are commands to mark Blocks by lines, columns, and characters. There are commands to copy, move, shift, and delete Blocks. These commands are very useful for transferring text from one file to another. There are also cut-and-paste commands, as well as commands to move Blocks to and from named Scratch Buffers. Block Commands - Marking and Unmarking a Block ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Before you can manipulate a Block, you must first "mark" the Block. There are four ways of marking a Block in QEdit. The one you choose will depend on the editing situation and what you find most comfortable. * MarkLine This command allows you to mark a Block in whole line increments. In other words, the Block will contain complete lines only and no portions of lines. To use this command place the cursor anywhere on the first line of the text you wish to mark and press . (Notice that the line is immediately marked.) Now, move the cursor (the Block will "follow" the cursor) to the last line of text to be marked and press again. You now have a marked Block, ready for manipulation. * DropAnchor This command allows you to mark a Block one character at a time. In other words, the Block will contain a stream of characters (which can span over multiple lines). To use this command place the cursor over the first character of the text you wish to mark and press . Then begin moving the cursor toward the end of the text to be marked. Notice that the Block "follows" the cursor position. Once the cursor is placed over the last character to be marked, press again. You now have a marked Block, ready for manipulation. * MarkCharacter This command works just like DropAnchor except that while marking the Block, the cursor is not included within the Block. MarkCharacter is provided as a replacement for the DropAnchor command. If you want the cursor position included in character Blocks, then continue to use DropAnchor; otherwise, replace the DropAnchor command with this command in the QCONFIG.DAT file. Refer to the "Keyboard Configuration" section of Chapter 2 for more information on changing QEdit command assignments. * MarkColumn This command allows you to mark one or more columns of text. To use this command place the cursor over the upper left-hand character of the text you wish to mark and press . Then begin moving the cursor to the right and/or downward. Notice that the Block "follows" the cursor position. Once the cursor is placed over the lower right-hand character of the Block, press again. You now have a marked Block, ready for manipulation. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ When using the MarkLine, MarkCharacter, MarkColumn, and ³ ³ DropAnchor commands, it is not necessary to mark the end ³ ³ of the Block. QEdit will assume the end of the Block to ³ ³ be the current cursor position for DropAnchor, ³ ³ MarkCharacter, and MarkColumn and the current cursor line ³ ³ for MarkLine. Marking the end of the Block is only ³ ³ necessary when moving or copying text within the same ³ ³ file. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ * MarkWord 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 . The entire word is immediately marked. If there is no word at the current cursor position, then no action is taken. * MarkBlockBegin , MarkBlockEnd This is another method of marking a Block one character at a time. To mark a Block with this command, place the cursor over the first character of the text you wish to mark and press . Then position the cursor one character past the end of the text that is to be marked and press . The Block is now marked and ready for manipulation. * UnmarkBlock Entering the UnmarkBlock command causes the currently marked Block to be unmarked. QEdit allows you to mark one Block at a time. If you mark a Block and then go elsewhere in the file and attempt to mark another Block, QEdit will simply extend the first Block by including all the text between the original Block and the current cursor position. If you mark a Block in one file and then go to another file and mark a Block, QEdit will automatically unmark the Block in the first file. Also, if you mix types of Block marking, by entering MarkLine followed by DropAnchor or vice-versa, QEdit will mark the Block according to the last command entered. Block Commands - Manipulating Blocks Directly ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides several ways to manipulate a marked Block. The following commands act directly on a marked Block. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ When Copying or Moving Blocks: ³ ³ Blocks marked using the DropAnchor, MarkCharacter, ³ ³ MarkColumn, and MarkBlockBegin/End commands will always ³ ³ be inserted beginning at the current cursor position. ³ ³ Blocks marked using the MarkLine command will be inserted ³ ³ at either the line before or the line after the current ³ ³ cursor line. Refer to the "General Options" section of ³ ³ Chapter 2 for more information. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ * CopyBlock 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 command. The Block will be inserted at the new position. You may notice, after you use CopyBlock, that the newly inserted Block of text is now marked and the original Block is unmarked. To unmark the copied Block, enter the UnmarkBlock command. QEdit provides an easy method for copying the same Block repeatedly. Refer to the Copy and Paste commands in the following section for more information. * CopyOverBlock This command is for use with column Blocks only. It works just like CopyBlock except the Block is copied to the current cursor position by overlaying existing text and without shifting text to the right. * MoveBlock This command works exactly like CopyBlock with one exception: upon entering the MoveBlock command, the originally marked Block is deleted from the file. As with the CopyBlock command, you can move a Block to another part of the same file or from one file to another. QEdit provides an easy method for deleting a Block from its original position and inserting it repeatedly at other positions. Refer to the Cut and Paste commands in the following section for more information. * DeleteBlock This command simply deletes a marked Block of text from the file. To use this command, first mark a Block of text to be deleted, then enter the DeleteBlock command. The marked text will be deleted from the file. (Deleted Blocks will be placed in the Kill buffer. Refer to "The Kill Buffer - A Safety Net" section in this chapter for more information.) * ShiftLeft , ShiftRight These commands allow the User to shift text contained in a Block to the left or right. To use these commands, first mark a Block. Now enter ShiftLeft or ShiftRight. The entire marked Block of text will be shifted one column to the left or right respectively. If there is no marked Block of text or the cursor is outside of the marked Block, the current cursor line will be shifted. This command is very useful for changing indentation for portions of text or source code. * FillBlock This command allows you to fill a marked Block with a single character. Block Commands - Manipulating Blocks Using Scrap Buffers ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides an extremely helpful device for quickly manipulating Blocks of text. This device consists of a Scrap Buffer and several QEdit commands which act on the Scrap Buffer. The Scrap Buffer is a temporary holding area for marked Blocks of text. The commands Cut, Copy, Paste, and PasteOver are used solely for placing text into the Scrap Buffer and copying text from the Scrap Buffer. When you issue a Copy or Cut command (discussed in the following section), the marked Block is placed into the Scrap Buffer. The next time you Copy or Cut a Block into the Scrap Buffer, the previous contents of the Scrap Buffer are deleted and replaced with the new Block. You can repeatedly use the Paste and PasteOver commands as many times as needed to insert a copy of the Block held in the Scrap Buffer at multiple positions in your file or files. The Paste and PasteOver commands do not purge the contents of the Scrap Buffer. * Copy and Paste or PasteOver To copy a section of text from its present position and insert it somewhere else: 1. Mark the text using the Block marking commands. 2. Enter Copy . This places a copy of the marked text into the Scrap Buffer. 3. If you want to insert the text somewhere else within the same file, use the cursor movement commands to place the cursor where you wish to insert the text. 4. If you want to insert the text in another file, switch to that file using the NextFile, PrevFile, or EditFile command to access that file. Then place the cursor at the desired position. 5. Enter Paste to insert the text. If you have copied a column Block into the Scrap Buffer and wish to insert it by overlaying existing text then use PasteOver instead of Paste. Since Paste and PasteOver leave the contents of the Scrap Buffer intact, you can make multiple insertions in the same or different files. Simply move the cursor to the file and position where you wish to make additional insertions and enter Paste or PasteOver . Please note that the next time you issue a Cut or Copy command, the previous contents of the Scrap Buffer will be discarded. * Cut and Paste or PasteOver Cut and Paste/PasteOver work exactly like Copy and Paste/PasteOver except that Cut will delete the marked Block from the file. You can still make multiple insertions of the text using the Paste or PasteOver Commands. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ QEdit can be configured to have the Cut and Copy commands ³ ³ act on the current cursor line if no Block is marked. ³ ³ Refer to the "Advanced Options" section of Chapter 2 for ³ ³ more information. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Block Commands - Manipulating Blocks Using Scratch Buffers ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ A Scratch Buffer is a special type of buffer to which you assign a name. QEdit allows you to create and name up to 99 Scratch Buffers for each editing session. These can be useful if you have several different Blocks of text that you want to insert in multiple locations. The commands StoreScrbuff , AppendScrbuff , and GetScrbuff are used to place text in, and retrieve text from, a Scratch Buffer. Whenever you issue one of these commands, QEdit will ask you for the name of the Scratch Buffer. If you want to use an already created scratch buffer, and do not remember the name, just press 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 command. The contents of all Scratch Buffers are discarded when the editor is terminated. * StoreScrbuff , AppendScrbuff To place a Block of text into a named buffer: 1. Mark the Block. 2. If you want to create a new Scratch Buffer containing the marked Block, execute StoreScrbuff . (This command is also used if you wish to replace the current contents of a Scratch Buffer with the marked Block.) If you want to append the marked Block to the current contents of the Scratch Buffer, execute AppendScrbuff . 3. QEdit prompts for the name of the Scratch Buffer. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Store (Append) to buffer: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 4. Enter a name. It is best to use a name which reflects the contents of the buffer and is easily remembered. Or press 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 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 . QEdit prompts for the name of the Scratch Buffer to be retrieved. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-ÄÄ¿ ³Get from buffer: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 3. Enter the name of the desired Scratch Buffer, or press to choose from a list of existing Scratch Buffers. 4. Repeat the above steps whenever you want to insert the contents of a Scratch Buffer into your text. Block Commands - Examples of Block Commands ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This section contains examples of commonly used Block Commands. * Copying or moving a Block within the same file. 1. Position the cursor at the beginning of the Block to be copied or moved. 2. Enter DropAnchor to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn to mark a column of text. 3. Position the cursor at the end of the Block to be copied or moved. 4. Enter DropAnchor, MarkLine, or MarkColumn again to mark the end of the Block. 5. Move the cursor to the location where you want to insert the marked Block. 6. Enter CopyBlock , CopyOverBlock (column Blocks only), or MoveBlock . 7. Enter UnmarkBlock to unmark the Block. The Block has now been copied or moved. * Copying or moving a Block to another file. 1. Position the cursor at the beginning of the Block to be copied or moved. 2. Enter DropAnchor to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn to mark a column of text. 3. Position the cursor at the end of the Block to be copied or moved. 4. Switch to the "target" file using the file commands EditFile, NextFile, or PrevFile. 5. Move the cursor to the location in the file where you want to insert the marked Block. 6. Enter CopyBlock , CopyOverBlock (column Blocks only), or MoveBlock . 7. Enter UnmarkBlock to unmark the Block. The Block has now been copied or moved. * Copying or moving a Block for multiple insertions in the same file. If you want to insert the same Block at several positions within a file, follow these steps: 1. Position the cursor at the beginning of the Block to be copied or moved. 2. Enter DropAnchor to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn to mark a column of text. 3. Position the cursor at the end of the Block to be copied or moved. 4. If you want to leave the Block in its original position and insert copies of it at other locations, then enter Copy . If you want to delete the Block from its original position and insert copies of it at other locations, then enter Cut . The Block is now stored in the Scrap Buffer. 5. Move the cursor to the location in the file where you want to insert the Block. 6. Enter Paste or PasteOver (column Blocks only). The Block is now inserted. Repeat steps 5 and 6 for each additional insertion. * Copying or moving a Block for multiple insertions in more than one file. If you want to insert the same Block at several positions in more than one file, follow these steps: 1. Position the cursor at the beginning of the Block to be copied or moved. 2. Enter DropAnchor to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn to mark a column of text. 3. Position the cursor at the end of the Block to be copied or moved. 4. If you want to leave the Block in its original position and insert copies of it at other locations, then enter Copy . If you want to delete the Block from its original position and insert copies of it at other locations, then enter Cut . The Block is now stored in the Scrap Buffer. 5. Switch to the "target" file using the file commands EditFile, NextFile, or PrevFile. 6. Move the cursor to the location in the file where you want to insert the Block. 7. Enter Paste or PasteOver (column Blocks only). The Block is now inserted. Repeat steps 5-7 for each additional insertion. * Copying multiple Blocks for insertion in one or more files. If you have several Blocks that you want to insert in several different files, follow these steps: 1. Position the cursor at the beginning of the first Block. 2. Enter DropAnchor to mark a stream of characters, or MarkLine to mark whole lines, or MarkColumn to mark a column of text. 3. Position the cursor at the end of the first Block. 4. Enter AppendScrbuff if you want to append to an existing Scratch Buffer. Otherwise, enter StoreScrbuff to create or overwrite an existing Scratch Buffer. 5. QEdit will prompt for the name of the buffer. Enter a name. (It is best to use a name which reflects the contents of the buffer and is easily remembered). The Block is now stored in a Scratch Buffer under the assigned name. Repeat steps 1-5 for each additional Block you want to store. 6. Switch to the "target" file using the file commands EditFile, NextFile, or PrevFile. 7. Move the cursor to the location in the file where you want to insert a Block. 8. Enter GetScrbuff . QEdit will prompt for the name of the Scratch Buffer. Enter the name of the desired Scratch Buffer for insertion. Repeat steps 6 through 8 for each insertion of a stored Block. Non-Block Commands ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ In addition to QEdit's array of Block commands, there are also many commands for manipulating your text which do not depend on marked Blocks. This section explains non-Block commands. Non-Block Commands Adding Text ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * AddLine As its name implies, this command inserts a blank line in the text. The line is added immediately below the current cursor line. The cursor is moved to the new line. The cursor column does not change. * InsertLine This command inserts a blank line in the text above the cursor line. The cursor remains on the new line and the cursor column does not change. * Literal The Literal command is used to insert control characters into the text. To use this command, enter followed by a control character. The control character will be inserted into the text. For example, to insert a formfeed character (ASCII 12) in the text, enter . This command is handy for entering the control characters represented by ASCII decimal values 1 through 26. Simply enter followed by for ASCII character 1, or for ASCII character 2 and so on, up to for ASCII character 26. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ An alternate and perhaps easier method of entering ³ ³ control characters or any ASCII character into your text ³ ³ is to hold down the key and enter the decimal ³ ³ equivalent of the ASCII character using the numeric ³ ³ keypad. For example, to insert a formfeed character ³ ³ (ASCII 12) in the text, just enter using the ³ ³ numeric keypad. ³ ³ If a linefeed character (ASCII 10) is entered, QEdit will ³ ³ split the line at this position the next time the file is ³ ³ edited. ³ ³ Another method for entering ASCII characters into the ³ ³ text is to use the AsciiChart command, described below. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ * AsciiChart Displays a scrollable ASCII chart on the screen. Press to have the selected character inserted into the text at the current cursor position. * ToggleBoxDraw This is a specialized command which is really a mode of operation that can be switched ON or OFF. If switched ON, the cursor movement keys (up, down, right, left) can be used to "draw" lines in the text. This can be very useful for creating graphs and tables. To switch Box Drawing mode ON, enter . To switch OFF, enter again. * ToggleEnterMatching This is also a specialized command which is really a mode of operation that can be switched ON or OFF. If switched ON, QEdit will automatically insert into the text a corresponding ), ], or " character each time a (, [, or " character, respectively, is entered. To switch EnterMatching mode ON, enter . To switch OFF, enter again. Non-Block Commands Copying Text ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * GetPrev This command copies the character directly above the cursor onto the cursor line. To get an idea of how this command works, place the cursor at the beginning of any line which has text on the line immediately above it. Now press and hold it down. The cursor will move to the right while copying the the characters from the line above. * DupLine This command simply makes a copy of the current cursor line and inserts this copy on the line immediately below the cursor line. The cursor is placed on the new line. * Copy , Paste Refer to the "Block Commands" section in this chapter for a complete explanation of these commands. The commands are included here because, if desired, the User can configure QEdit so that these commands act on the current cursor line in the same manner in which they act on Blocks. For more information on how to configure this option, refer to the "Advanced Options" section of Chapter 2. Non-Block Commands Moving Text ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Align This command lines up the left-most character of the cursor line with the left-most character of the line above it. This allows you to align portions of text which require a common left margin. This command also moves the cursor down one line; thus, large portions of text can be aligned very quickly by entering this command and holding the command key down. * JoinLine This command will join the following line to the end of the current line. The cursor position does not change. If the cursor is positioned on or before the last non-blank character of the line, the line below will be appended immediately following the last non-blank character. If the cursor is positioned beyond the last non-blank character of the line, the line below will be appended beginning at the current cursor position. If the line below the cursor line is blank, the blank line will be deleted. * SplitLine This command will split the current line at the cursor position. The cursor position will not change. * Return Before reading the explanation of the Return command, it may be helpful to review the discussion of Insert mode in the "Modes" section in this chapter. If the editor is in Insert mode, this command performs like the SplitLine command; that is, all text on and to the right of the cursor on the cursor line will be deleted and inserted on a new line immediately below the cursor line. The cursor, however, will be placed on the new line. If the editor is not in Insert mode, this command will simply place the cursor at the beginning of the line below the cursor line. No text will be affected. If the editor is in AutoIndent mode, the cursor will be placed at the left margin instead of at the beginning of the line. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ QEdit can be configured so that the Return command does ³ ³ not split lines in Insert mode. Refer to the "Advanced ³ ³ Options" section of Chapter 2 for more information. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ * Cut , Paste Refer to the "Block Commands" section in this chapter for a complete explanation of these commands. The commands are included here because, if desired, the User can configure QEdit so that these commands act on the current cursor line in the same manner in which they act on Blocks. For more information on how to configure this option, refer to the "Advanced Options" section of Chapter 2. * ShiftLeft , ShiftRight Refer to the "Block Commands" section in this chapter for a complete explanation of these commands. The commands are included here because, if there is no marked Block in the text, these commands will act on the current cursor line. Non-Block Commands Deleting And Undeleting Text ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Backspace , DelLtWord If Insert mode is ON, the Backspace command deletes the character to the left of the cursor. The text to the right of the cursor is pulled behind the cursor as it moves to the left. If the cursor is in column one and you enter Backspace, the cursor line is appended to the line immediately above. If Insert mode is OFF, the Backspace command works the same as above except the text to the right of the cursor is not pulled behind the cursor as it moves left. The DelLtWord command is a backspace for "words". It works just like the Backspace command, except that it deletes all characters from the cursor to the beginning of the previous word. * DelCh , DelRtWord DelCh will delete the character at the cursor position and pull the text to the right of the cursor, one column to the left. If the cursor position is to the right of the last non-blank character on the cursor line, the line immediately below will be appended to the cursor line. The DelRtWord command is a character delete for "words". It works just like the DelCh command, except that it deletes all characters from the cursor to the beginning of the following word. * DelToEol This command deletes the character at the cursor position and all text to the right of the cursor on the current cursor line. The cursor position does not change. * DelLine This command deletes the current cursor line from the text. All text below the deleted line is shifted up one line. * UndoCursorline This command allows you to reverse any changes you have made to the cursor line. This can be helpful if you accidentally delete or change part of a line, or you just change your mind and want the cursor line back the way it was. This command must be issued before the cursor is moved from the current cursor line and before any file or window commands are entered. Changes made using the FindReplace command cannot be reversed with this command. * UnKill This command allows you to retrieve text that has been deleted by the DeleteBlock, DelLine, DelRtWord, or DelToEol commands. Refer to "The Kill Buffer - A Safety Net" section in this chapter for a complete explanation of the use of this command. Non-Block Commands Changing Case ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Upper 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 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 This command flips the case of the current character. If the cursor is in a Block when invoked, all characters in the Block are flipped. Non-Block Commands Sorting ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit allows you to sort a range of lines, using a column Block as the key upon which the sort is based. In order to use the Sort feature, mark a column Block indicating the key on which to sort, and then press . The Sort can be configured (either interactively or by using the configuration program, QCONFIG) to ignore or respect case, and to sort in ascending or descending order. Sorts all the lines spanned by a column Block, using the column Block as the sort key. * ToggleSortCaseInSensitive 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 Toggles the sort order between ascending and descending. Set this option OFF to sort in ascending order; set this option ON to sort in descending order. The Kill Buffer - A Safety Net ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit maintains a temporary storage area for deleted text. This provides the User a safeguard against incorrectly or inadvertently deleting text. This recovery mechanism is automatically in effect when QEdit is running. No action is required from the User until there is a need to recover deleted text. The temporary storage area is called the Kill Buffer. QEdit will place into the Kill Buffer text which has been deleted by these commands: DeleteBlock DelLine DelRtWord DelToEol To understand how the Kill Buffer works and how text is recovered from the Kill Buffer, refer to the illustration below. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The Kill Buffer ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Entry Command Number Entered Buffer Contents top ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ 4 ³ DelToEol ³ part of this line was deleted. ³ ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 3 ³ DelRtWord ³ 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 command is used. Each time the UnKill command is issued the most recent entry (the "top" entry of the Kill Buffer) is retrieved and restored to the file. This entry is then deleted from the Kill Buffer, and all remaining entries move toward the top of the buffer by one position. In the example, the first time the UnKill command is issued, entry #4 will be recovered. Next, entry #3 will be recovered, and so on. Thus, recovering deleted text follows the rule of LIFO (last in, first out). The last entry of deleted text will be the first one recovered and the first entry of deleted text will be the last one recovered. Here are some additional items of which to be aware regarding the Kill Buffer and its uses. * A separate Kill Buffer is maintained for each file loaded into QEdit. The Kill Buffer for each file exists only as long as the file is loaded. * The default size of the Kill Buffer is 30 entries. This may be changed using the QEdit configuration program. Refer to the "General Options" section of Chapter 2 for more information. * The text deleted using the DelLine, DelRtWord, and DelToEol commands will take up one entry in the Kill Buffer each time the commands are executed. The text deleted using the DeleteBlock command will take up as many entries as there are lines in the Block. It is important to note that regardless of how large the Kill Buffer is configured to be, it may be possible to mark and delete a Block in the file which is larger than the buffer. If this situation arises, QEdit will save the deleted text in the Kill Buffer from the bottom up. For example, if a marked Block is 200 lines long and five lines too large for the Kill Buffer, then the top five lines of the Block will not be loaded into the Kill Buffer. * When issuing the UnKill command to recover deleted text, deleted lines will be inserted immediately before the current cursor line, and deleted words will be inserted immediately before the current cursor position. MACROS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides a helpful facility for creating macros, allowing you to simplify and automate editing tasks and to more fully customize the editor. Macros can be created as simple Keyboard Macros, by having the editor record a series of keystrokes as they are entered from the keyboard. More versatile macros can be created by assigning a series of editing and macro commands to specific keys within QEdit's Keyboard Definition file (QCONFIG.DAT). To create even more complex macros, QMac (QEdit's external macro facility) can be used. For more information about creating and using macros within QEdit, refer to Chapter 3, "QEdit Macro Reference." PRINTING ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit allows you to print either your entire current file or a portion of the current file. To print the entire current file, enter the PrintAll 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 command. Only the marked Block portion of the file is printed. Print Formatting ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit contains various commands to make printing easier and more useful. There are commands to set the left margin, the top margin, and the bottom margin; to specify the number of lines per page; to indicate the output destination; to select single-, double-, or triple-spacing; and to indicate whether you want to print line numbers. * SetPrintLeftMargin or

This command specifies the number of blank spaces to be used as a left margin. Valid values are zero to 200. * SetPrintPageSize

or

This command specifies the number of lines to be printed on each page. Valid values are zero to 200. A value of zero instructs QEdit to print continuously without page breaks. * SetPrintTopMargin or

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 or

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 or

This command identifies the print output destination. Choices are PRN, LPT1, LPT2, LPT3, or any valid DOS filename (for printing to disk). * SetPrintLineSpacing or

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 or

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 or

or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Makes the window above the current window the new current window. If the current window is at the top of the screen, the bottom window on the screen becomes the current window. PrintAll or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Prints the entire contents of the current file. PrintBlock or

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

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sends a formfeed character (ASCII 12) to the printer. QuickHelp or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Displays the Help Screen. A default Help Screen is provided with QEdit; however, you may wish to design your own Help Screen. For more information, refer to "The Help Screen" section of Chapter 2. Quit ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Unconditional quit. The current file is discarded regardless of any changes made to it. This command is for those who do not like software that "nags" you. USE WITH CAUTION! ReadBlock or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Inserts the named disk file at the current cursor position. RepeatCmd ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Repeats the last character, command, or macro entered from the keyboard up to 9,999 times. You are prompted for the number of times to repeat. Repeating automatically terminates when any command fails. For example, if you are repeating a search and get a "Not Found", repeating then stops. You can also enter at any time from the keyboard to cancel repeating. RepeatFind or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Repeats the previous Find or FindReplace command. ResizeWindow or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Shifts the screen to the left, the number of columns specified in the configuration program. Refer to the "Colors/Screen Options" section of Chapter 2 for more information. ScreenRight ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Shifts the screen to the Right, the number of columns specified in the configuration program. Refer to the "Colors/Screen Options" section of Chapter 2 for more information. ScrollDown ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text one line at a time toward the end of the file. The cursor remains on the same line of text until it reaches the top of the screen. ScrollUp ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text one line at a time toward the beginning of the file. The cursor remains on the same line of text until it reaches the bottom of the screen. SetAutoIndentMode ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Sets AutoIndent mode ON. To set AutoIndent mode OFF, do the following: SetAutoIndentMode ToggleIndent SetCtabwidth ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sets the cursor tab width. This is the width that is used when the TabRt or TabLt commands are executed and Fixed Tabs mode is in effect. SetEGA25 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Switches a monitor with an EGA or VGA card to 25-line mode. This command has no effect if the video card is not an EGA or VGA type. SetEGA43 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Switches a monitor with an EGA card to 43-line mode, or a monitor with a VGA card to 50-line mode. This command has no effect if the video card is not an EGA or VGA type. SetInsMode ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Sets Insert mode ON. To set Insert mode OFF (that is, set overwrite mode ON), do the following: SetInsMode ToggleInsert SetPrintBotMargin or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sets the number of lines that are left blank at the bottom of each page during printing. SetPrintDevice or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Allows the setting of the default print device. Choices include PRN, LPT1 through LPT3, or any valid DOS filename. When executed, the following menu is displayed: ÚÄPrint DeviceÄÄ¿ ³#Prn###########³ ³ lpt1 ³ ³ lpt2 ³ ³ lpt3 ³ ³ disk File... ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ SetPrintLeftMargin or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sets the number of spaces that are printed as a left margin at the beginning of each line. The default is zero. SetPrintLineSpacing or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Allows the setting of the print line spacing, up to a value of 200. 1 = single-space, 2 = double-space, 3 = triple-space, etc. SetPrintPageSize

or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sets the number of lines that are left blank at the top of each page during printing. SetPtabwidth

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sets the Physical Tab Width. This determines the width to which physical tab characters found in files are expanded if Physical Tab Expansion is set ON. It also determines the number of spaces to be used for Tabs Out mode. Refer to the ToggleTabsExpand and ToggleTabsOut commands in this chapter for more information. SetRmargin or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sets the right margin for word-wrap and paragraph reformatting. WordWrap mode is automatically switched ON whenever the right margin is set using this command. SetScreenOff ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Turns screen updating OFF. You must turn screen updating back ON before your macro prompts for input, or if there is some output from the macro that you want displayed on the screen. NOTE: QEdit AUTOMATICALLY turns screen updating back ON when the macro is finished executing. Thus, it is not necessary to issue the SetScreenOn command at the end of the macro. SetScreenOn ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Turns screen updating ON (see SetScreenOff). SetSoundOff ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Disables the tone sounded by the editor on failed searches. SetSoundOn ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Enables the tone sounded by the editor on failed searches. SetTabType ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Allows the setting of the tab stops used when Variable tab type is selected. SetWordWrapMode ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Sets WordWrap mode ON. To set WordWrap mode OFF, do the following: SetWordWrapMode ToggleWordWrap Shell or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Invokes a DOS shell. While in the shell, you can execute DOS and other commands. When you are ready to leave the shell, type "exit" and press . This places you back in QEdit, exactly where you left off. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ You should NOT execute any TSR (terminate and stay ³ ³ resident) programs from QEdit's Shell command. This ³ ³ includes the DOS print and graph commands, and memory ³ ³ resident programs such as Sidekick and Superkey. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ShiftLeft ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Shifts the contents of the currently marked Block (or the cursor line, if the cursor is not in a marked Block) one position to the left. If you issue this command when the leftmost character(s) of the line(s) being shifted is in column 1, that character(s) is deleted to allow the remainder of the line to shift left one position. ShiftRight ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Shifts the contents of the currently marked Block (or the cursor line, if the cursor does not reside in a marked Block) one position to the right. If you issue this command when the rightmost character(s) of the line(s) being shifted is in column 1000, that character(s) is deleted to allow the remainder of the line to shift right one position. ShowEntryScreen ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Displays the original DOS screen as it appeared upon initial execution of the editor. Press any key to return to the edit screen. To use this command, the option "Do you want the original screen restored upon termination (Y/N)?" must be set to "Y" (the standard setting). This option is set via the QCONFIG program, under "Colors/screen." ShrinkWindow or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Changes the size of the current window, if there are multiple windows on the screen. Sort ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sorts a range of lines. The sort key is determined by a marked column Block. The lines spanned by the column Block determines the range of lines to be sorted. For more information about column Blocks, refer to the MarkColumn command in this chapter. Whether the lines are sorted in ascending or descending order is determined by the ToggleSortDescending command. Ignoring or respecting differences in case is determined by the ToggleSortCaseInSensitive command. (The initial state of both of these toggles can be set via the configuration program. Refer to the "General Options" section of Chapter 2.) The Sort command can only be used with a single, nonzoomed window on the screen. SpacesToTabs ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Splits the current cursor line at the cursor position. Any text to the right of and including the cursor position is placed on a new line following the current line. If the cursor is past the last character on the line, then a blank line is added following the current line. The cursor position does not change. StoreScrbuff ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Copies the currently marked Block to the named Scratch Buffer. The editor prompts for the name of the Scratch Buffer. The contents of all Scratch Buffers are lost when the editor is terminated. TabLt ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at the previous tab position, as defined by the tab width. If Insert mode is ON, the text to the right, including the character at the cursor position, shifts left. QEdit can be configured so that if Insert mode is ON, AND the cursor is inside a marked Block, the entire Block shifts left by the current cursor tab width. For more information on this option, refer to the "Advanced Options" section of Chapter 2. TabRt ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at the next tab position, as defined by the cursor tab width. If Insert mode is ON, the text to the right, including the character at the cursor position, shifts right. QEdit can be configured so that if Insert mode is ON, AND the cursor is inside a marked Block, the entire Block shifts right by the current cursor tab width. For more information on this option, refer to the "Advanced Options" section of Chapter 2. TabsToSpaces ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles (ON and OFF) file backups. If ON, QEdit creates a backup file using the ".bak" file extension whenever a modified file is saved. ToggleBoxDraw ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command prompts the User to select from different line drawing styles for use with Box Drawing mode. The options are: Single, Double Top, Double Side, Double, and Eraser. ToggleCenterFinds ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles (ON and OFF) Find centering. If ON, this causes the Find and FindReplace commands to center the found text vertically on the screen. If OFF, the initial row the cursor was on when the command was initiated does not change. ToggleEGA43 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles an EGA monitor between 25-line and 43-line mode or a VGA monitor between 25-line and 50-line mode. This command has no effect if the video card is not an EGA or VGA type. ToggleEnterMatching ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles (ON and OFF) EnterMatching mode. If ON, the double quote, parenthesis, and square bracket keys all automatically enter the matching right-hand character when the left-hand character is entered. For example, typing the "[" key automatically enters a "]" immediately following. ToggleIndent or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles (ON and OFF) AutoIndent mode. If ON, the cursor is positioned at the current left margin whenever the key is pressed. The current left margin is determined by the first non-blank character on the immediately preceding line. Paragraph reformatting and word-wrapping also use the current left margin when AutoIndent mode is ON. The letter "A" appears on the StatusLine when this mode is ON. ToggleInsert or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles (ON and OFF) Insert mode. If ON, text to the right of the cursor on the cursor line is shifted whenever characters, spaces, the Backspace command, the TabLt command, or the TabRt command is entered. Also, executing the Return command causes the current line to split at the cursor position. The letter "I" appears on the StatusLine when this mode is ON. TogglePrintLineNumbers or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles (ON and OFF) the printing of line numbers. TogglePrintPause or

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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, is displayed. ToggleSmartTabs ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles (ON and OFF) swapping to expanded memory or disk when the Shell and Dos commands are executed. (You can specify a default for swapping, using the configuration program. Refer to the "Advanced Options" section of Chapter 2 for more information.) If ON, QEdit swaps itself out of DOS memory and to expanded memory or disk when a shell command is executed. This leaves a small 2K kernel of QEdit in DOS memory, freeing up the rest of DOS memory for running other applications out of the shell such as compilers or spreadsheets. While you are in a shell, QEdit maintains a file with a ".SWP" file extension in your root directory. It is very important that you do not delete this file while in the shell. ToggleTabsExpand ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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. ToggleWordwrap or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Unmarks the currently marked Block. Upper ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Changes all characters in a marked Block to upper case. The cursor must be within the marked Block. If the cursor is outside of the marked Block or if no Block is marked, the character at the current cursor position is changed to upper case. WordLeft ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at the first character of the previous word. WordRight ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at the first character of the following word. WrapPara ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reformats text from the current cursor position until a blank line or end of file is encountered. If AutoIndent is ON, the line below the cursor line is used for the left margin. Otherwise, a left margin of zero is used. The right margin is determined by the configuration program (refer to the "General Options" section of Chapter 2), or interactively set by the SetRmargin command. WriteBlock or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 command with no marked Blocks in the file. QEdit prompts with: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³File to write: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Enter the new filename. If the filename you specify already exists, QEdit prompts with: ÚÄÄÄÄÄÄÄÄChooseÄÄÄÄÄÄÄÄÄ¿ ³ Overlay existing file ³ ³ Append to file ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Select the desired option, or press 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 or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles Zoom mode ON and OFF. If there are multiple windows on the screen, entering the ZoomWindow command causes the current window to fill the entire screen. Press ZoomWindow again to restore the other windows to the screen. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ QEdit(R) Advanced - Version 3 ³ ³ Copyright 1985-1994 SemWare Corporation. ³ ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ³ H E L P M E . D O C ³ ³ QEdit common questions and answers: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ KEYBOARD ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QUESTION: I try to use the "*","-", and "+" key on my numeric keypad and it doesn't seem to work. ANSWER: By default QEdit has the Paste, Cut, and Copy commands assigned to these keys. They are referred to as the "grey*", "grey-", and "grey+" keys. If you want to use these keys at "Face-value", then unassign them in your keyboard definition file. See the printed manual for a listing of these keys. QUESTION: I have a NorthGate keyboard that has an additional "*" key, but it doesn't seem to work. ANSWER: This extra "*" key is the same as the "grey*" key. Please see the previous Question and Answer. QUESTION: I can't get the F11 and F12 keys to work. ANSWER: The F11 and F12 keys are present on "Enhanced Keyboards", also known as the 101-key keyboards. By default, QEdit has enhanced keyboard testing turned off. Run Qconfig.exe, select Advanced options, and answer Yes to "Test for presence of enhanced keyboard (Y/N)? ". Be sure that you Save your changes when you quit Qconfig.exe. As long as you have an "Enhanced Keyboard" and also a Rom Bios that recognizes the Enhanced keyboard, you will be able to use these additional keys. For a list of the "Enhanced Keyboard" keys, see the printed manual. QUESTION: My TSR will not pop up over QEdit, why? ANSWER: Some TSR's will not pop-up when Enhanced keyboard calls are being made. Run Qconfig.exe, select Advanced options, and answer NO to "Test for presence of enhanced keyboard (Y/N)? ". Be sure that you Save your changes when you quit Qconfig.exe. This should allow your TSR to pop-up. If you have Enhanced Keyboard testing turned off, you will not be able to access commands that you have assigned to the F11, F12, and other enhanced keys. For a list of the Enhanced keyboard keys, see the printed manual. QUESTION: My Tab key doesn't seem to work right. What is wrong? ANSWER: It's possible that you have ToggleSmartTabs ON. Make sure that ToggleSmartTabs is OFF. Please see the printed manual for a description of the ToggleSmartTabs command. TEXT ENTRY AND MANIPULATION: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QUESTION: How can I enter _ANY_ ASCII character in QEdit? ANSWER: Any ASCII character having a decimal value of 0-255 can be entered into a text file while in QEdit using one of the following methods: ASCII 1-255: Press and hold the key. Now, using the numeric keypad (this is the keypad that is usually located on the right hand side of the keyboard), type the decimal value of the Ascii character that you want. Now release the key and you should have the character placed in your text. (If you have a problem entering an ASCII 240, see the discussion in this section.) ASCII 0: To enter the NULL character (Ascii 0) into your text, first use QEdit's literal command (our default ) and then press . You will get the NULL character placed in your text (it will look like a space). For more information on the Alt numeric keypad see the QEdit tip on page 1-26 of the printed manual. For more information on the Literal command see the printed manual. QUESTION: How can I change a lower case character to an Upper case one or Vice-versa? ANSWER: QEdit has 3 case changing commands. They are Upper, Lower, and Flip. These commands can be used to force uppercase, lowercase, or togglecase at the cursor position OR on all characters in a marked block (if the cursor is within the marked block). QUESTION: How can I enter page breaks into my text? ANSWER: You can enter a Form-feed character into your text by using the Literal command (our default ) followed by . You can also use the Alt-numeric keypad method (described previously). Hold the key and type 12 on the numeric keypad, then release the key. QUESTION: I am writing batch files and QEdit puts a carriage return/line feed on the last line of a file. How can I keep from getting the double Dos prompt when my batch file is done? ANSWER: QEdit writes a carriage return/line feed pair at the end of each line whenever a file is saved. If you don't want the carriage return/line feed on the last line of a batch file to be "SEEN" by Dos, then enter a Ctrl Z as the last character on the last line. Dos will stop processing the batch file when the ctrl Z is reached so you won't get the double prompt. QUESTION: How do I enter a NULL character into my text? ANSWER: Use QEdit's Literal command (our default ) immediately followed by . This will place a NULL (ASCII 0) character in your text. Please see the discussion of the Literal command in this section. QUESTION: How can I draw boxes in QEdit? ANSWER: Use the ToggleBoxDraw command (our default ). When box drawing mode is on, a "B" will be present in the Status line. You can now use the cursor keys to draw boxes in your text. To turn box drawing off, issue the ToggleBoxDraw command again. The "B" will be gone from the status line. You can also select several Box Styles, plus an eraser mode, by using the ToggleBoxType command (our default ). QUESTION: I try to enter an ASCII 240 using the Alt numeric keypad and my system seems to hang. What can I do? ANSWER: There is a "Known" problem with some versions of the Phoenix Bios that occurs when an ASCII 240 is being generated from the numeric keypad and "Enhanced Keyboard" calls are being made. Internally, the bios code enters an infinite loop. To break out of this loop, Press and you will again have control of your keyboard. *NOTE: will NOT get you out of the loop, you must use . If you have enhanced keyboard testing turned off in QEdit, you will not have this problem. As a side note, DOS 4.0 and above also make enhanced keyboard calls and the above discussion applies there as well. QUESTION: How can I change all the Tab characters in a file to spaces? ANSWER: Use the TabsToSpaces command () FINDING TEXT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QUESTION: How can I limit a "FIND" or "SEARCH and REPLACE" operation to a specified area? ANSWER: The "L" option was added as a way for the user to limit a search operation to within a marked block area. When prompted for options, just include "L" with the other options. QUESTION: How can I do a Find and place the found item on the center of the screen. ANSWER: Set the "Center Finds" option on () CURSOR MOVEMENT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QUESTION: When I use the cursor key in QEdit to move to the right or left, the cursor stays on the same line when I come to the beginning or end of the line. How can I have the cursor move to the start of the next line when I reach the end of the current line OR move to the end of the previous line when I reach the beginning of the current line? ANSWER: Assign the following macro in your Qconfig.dat file: cursorleft MacroBegin CursorLeft JTrue end: CursorUp JFalse end: EndLine end: cursorright MacroBegin IsEndLine JTrue down: CursorRight Jump end: down: CursorDown JFalse end: BegLine end: QUESTION: When I am inserting text on a line, wordwrap does not seem to work. ANSWER: In order for wordwrap to operate, the cursor has to exceed the right margin that has been set. Once the right margin has been exceeded and you type a non-wordset character, the line will wrap. PRINTER ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QUESTION: How can I enter Printer control codes in QEdit? ANSWER: Please see the TEXT ENTRY AND MANIPULATION section. You will need to know the ASCII values of the control characters. These values will be mentioned in your printer manual. QUESTION: I print a file that I have in QEdit, but the Box drawing characters do not print on my printout. ANSWER: Check your printer manual and make sure that you have the printer set up to utilize the Character Graphics Set. QUESTION: How can I have QEdit print to LPT2 or Com1? ANSWER: Set the appropriate print device via the QCONFIG program, or set it interactively via the Print pulldown menu. QUESTION: How can I get double spaced lines on my printout? ANSWER: You can use the "print left margin" setting to obtain double and triple spaced text in most cases. If you have your printer set up so that it prints 80 characters on a line, then set the "print left margin" in QEdit to 80. This will cause QEdit to send 80 spaces before printing each line, so effectively get double spaced lines. If you want triple spacing, then make the setting 160. QUESTION: I have QEdit sending formfeeds to the printer, but am getting parts of a page AND some blank pages on my printout. ANSWER: Make sure that your text does not have some long lines that are being wrapped by the printer. If your printer wraps at 80 characters on a line, make sure that your file does not have lines longer than 80 characters. CONFIGURATION ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QUESTION: I make some changes to QEdit using Qconfig.exe and they do not take effect. ANSWER: Make sure that you are using the copy of QEdit that you just configured. If you are not in the current directory where your newly configured copy of QEdit is, then check your path to see if you are getting a different copy of QEdit. Be sure to look for batch files as well as EXE's and COM's that share the same primary name. I.E. Look for Q.exe, Q.com, Q.bat along your path. QEDIT COMMANDS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QUESTION: When I use the CenterLine command, my text is not centered on the screen. ANSWER: The centerline command uses column 1 and the right margin that you have set as the basis for centering text. If you want the text centered on the screen, assuming that your screen is 80 columns wide, you can set your right margin to 80 and then issue the centerline command. If you don't want to change your right margin, you can use column block marking to mark your left and right hand margins, then issue the centerline command. QUESTION: How do I get the Sort command to work? ANSWER: In order to use the Sort command, you must be in a single, nonzoomed window. You must use the MarkColumn command to mark the range of lines to sort, and the width of the field to sort on as the key. If you use any other type of blocking, the sort command will not work. QEDIT COMMAND LINE OPTIONS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QUESTION: How can I have QEdit run a macro on start-up? ANSWER: The "-Emacroname" or "/Emacroname" command line switch, will execute the first macro in macroname. Be sure to specify a path to macroname if it is not in the current directory. E.G. Q ABC -Ec:\path\mymacro.mac will load file ABC and execute the first macro in c:\path\mymacro.mac. Please note that this switch does not load macroname. If you also want to load macroname, then use the -L or /L option described in this section. QUESTION: How can I have QEdit pre-load a macro set? ANSWER: The "-Lmacroname" or "/Lmacroname" command line switch, will load macroname. Be sure to specify a path to macroname if it is not in the current directory. E.G. Q ABC -Lc:\path\mymacro.mac will load file ABC and load the macrofile c:\path\mymacro.mac. QUESTION: I used to be able to have QEdit load a file and then go to a certain line number, but now it does not work. ANSWER: In versions of QEdit prior to version 2.1, going to a specified line on startup was a configuration program option. This has been replaced with a command line switch of the format -nLINE# or /nLINE#. I.E. To load file ABC and immediately go to line# 35 type: Q ABC -n35 QUESTION: How can I have QEdit come up in 43/50 line mode? ANSWER: Set the appropriate option via the QCONFIG program. See the Colors/Screen section. QUESTION: How do I use a QEdit command that is not tied to a key? ANSWER: If you would like to have the command available at all times, just assign the command to a key in your keyboard definition file. Once you have modified your keyboard file, be sure to run the Qconfig.exe program. Select the Keys option, supply the name of your Keyboard file, then save your changes and quit the program. You may use all the QEdit commands when creating macros. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ QEdit(R) Advanced - Version 3 ³ ³ Copyright 1985-1994 SemWare Corporation. ³ ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ³ Q T I P S . D O C ³ ³ A compilation of QEdit Tips from the SemWare Technical Support Staff ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ The InsertDate Command in QEdit 2.15 & 3.00 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ In QEdit 2.15 when you used the InsertDate command, the output contained the full year: Tue 11-02-1993 However, in QEdit 3.00 the output of InsertDate does not contain the first part of the year: Tue 11-02-93 To have QEdit 3.00 insert the "19" part of the year, use the following macro: MacroBegin SaveSettings * Save Settings of Insert, WordWrap, etc. SetScreenOff * Turn off screen updates InsertDate * Insert the Date SetInsMode * Set Insert ON CursorLeft 2 * Move Back to the beginning of the year "19" * Insert the 19 part of the year CursorRight 2 * Move to the end of the year RestoreSettings * Restore our original condition This macro can be bound to any available key in your QCONFIG.DAT file. Converting QEdit 2.x Macros to 3.0 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The binary macro files compiled with QMAC from QEdit 2.15 and earlier are not completely compatible with QEdit 3.00. However, there is a painless process to convert your macros from 2.15 to 3.00. To follow this process you will need to determine if you have text file versions of your macros. If you don't, you will need to follow this process: (1) Copy all of your binary macro files (*.MAC) to a temporary directory. (2) Copy the QMAC program (QMAC.EXE) from your QEdit 2.15 directory to your temporary directory. (3) For each of the *.MAC files, run QMAC to convert them to text files. For example: C:\QETMP>QMAC .MAC .Q /A- /T Where is the file to convert. This process creates the text file versions of your macros. The files will have the same name as the original macros, but with a ".Q" extension. This process is for everyone, it will convert your QEdit 2.15 macros into QEdit 3.0 macros: (1) Copy all of text macro files (for those who followed the first process: the *.Q files in the temporary directory) to your QEdit 3.0 directory. (2) For each of the text macro files, run the QMAC program (from QEdit 3.0) to convert them to binary files. For example: C:\QE3>QMAC .MAC .Q /A- /B That's it! You have now successfully re-compiled your macros for QEdit 3.0. Multi-Line Macro Format ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ In QEdit 3.0 you can have multi-line macros in your QCONFIG.DAT file. This new capability gives QEdit much more power over previous versions. When upgrading from QEdit 2.15 (or earlier) there are a couple of conventions that must be followed when formatting your QCONFIG.DAT file: (1) The key must appear in the first column of the command assignment or macro. (2) When writing macros, all succeeding lines must be indented one or more columns. The reason for these conventions is to allow QEdit to differentiate between commands and keys. Consider this example, which does _not_ follow the new conventions: * This comment starts in column one. * CursorDown CursorDown BegLine CursorUp CursorUp BegLine Before QEdit 3.0, the first word on each line would have been interpreted as a key automatically. However, with multi-line macros it is no longer clear exactly what the user intended here. These lines could be seen as either two individual key assignments, or as a single macro. (Granted, it would be a silly macro -- one step forward and two steps back!) Here is an example of a few key assignments that follow the new format: * This comment starts in column one. * ^k_h MacroBegin * Fancy Home Macro BegLine isCurrChar ' ' MacroQuitFalse FirstNonWhite CursorDown CursorDown * Down / BegLine BegLine CursorUp CursorUp BegLine * Up / BegLine Startup Macros ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit has the capability of loading and/or executing your compiled macro files on startup through the use of command line parameters. The macro files being used must be in binary format created using the MacroWrite command command or QMAC (QEdit's macro translator). To _load_ a macro from the command line enter "-l" or "/l" (a dash or slash and the letter "l") followed immediately by a macro filename. The maximum size of a loadable macro file is 2k. The format for loading a macro follows: q -l To _execute_ a macro from the command line enter "-e" or "/e" followed immediately by a macro filename. The maximum size of an executed macro is 500 bytes. The format for executing a macro on startup follows: q -e When using the execute ("-e or /e") option, the first macro in the macrofile is executed. The macro is then executed only after the file to be edited has been loaded. The macro file is executed once and not loaded into the editor. A filename must be supplied to QEdit to make use of the command line parameters. Both the load and execute macro parameters may be used at the same time. The order that they are specified on the command line is not important. The format for executing a macro and loading a macrofile on startup follows: q -e -l To illustrate the above, suppose you want to edit a file called WORK.TMP and at the same time, from the command line, load the macro file called FIRST.MAC and execute the macro file called SECOND.MAC. From the command line you would enter: q work.tmp -lfirst.mac -esecond.mac QMac: The Basic's ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QMac is a translator of QEdit macro files. It translates QEdit macros from the binary file in which QEdit saves macros to a text file which allows easy macro editing, and translates such text files back into a QEdit binary file. This allows you to "record" a macro using QEdit; fine-tune it by editing the text representation of the macro; and then translate the edited version and reload it into QEdit for replay. QMac allows appending to or overwriting existing files, making it easy to add new macros to existing files. QMac's text file format allows comments, permitting documentation of the macros within their "source file". To see a summary of QMac's operations, type "QMAC ?" at the DOS prompt and press Return. All of the command line switches are optional and are only necessary to control QMac's operation in special ways. Here is quick run-through of what you can do with QMac, including recording a macro, saving it to disk, and converting it with QMac. The keystrokes mentioned below assume you are using the default QCONFIG.DAT supplied with QEdit; if you have re-installed your keyboard using QCONFIG, please modify as needed. Recording a Macro: ~~~~~~~~~~~~~~~~~ 1. From inside QEdit, select MacroRecord. (Either hit or select "Macro record" from the "Macro" menu in the pull-down menu system, by pressing ). 2. At the prompt that says "Assign to what key:" press a key to redefine. We will use 3. Press Find , type "the" and press Return, and type "IW" and press Return again. (This is just an example of what you can do, you could of course record any legal series of QEdit keystrokes here.) 4. Select MacroRecord again to end the macro, like step 1 above. 5. Now, you can press to search for the word "the" in your text in just one step. Saving the Macro: ~~~~~~~~~~~~~~~~ 6. Let's write this macro to disk in a file that QMac can use. Select MacroWrite from the pull down menus, by pressing then . 7. Give it a filename of "FIND.MAC", and press Return to save this macro on disk. Converting the Macro to Text: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8. Press Dos to send a command to MS-DOS. Type: QMAC FIND.MAC FIND.TXT /A- /T to convert FIND.MAC to a text form in the file FIND.TXT. Press Return. (The /T selects text output). 9. Press EditFile to load this file into QEdit. Type "FIND.TXT" to load the text file you just created with QMac. Press Return. You should see something like this on the screen: * * Converted by QMAC from: C:\FIND.MAC * ^f10 MacroBegin Find "the" Return "IW" Return Which is, of course, a text representation of the keystrokes you just recorded. 10. You can now edit your macro if need be. Let's change the word "the" to "and", and save the file back to disk by pressing File . Converting the Macro from Text back to Binary: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11. Press Dos to send a another command to MS-DOS. This time, type: QMAC FIND.MAC FIND.TXT /A- /B to convert FIND.TXT back to its BINARY form, FIND.MAC. (NOTE that we use /B to tell QMac to make the binary file from the text file we just edited). Press Return. QMac Additional Notes: ~~~~~~~~~~~~~~~~~~~~~ QMac will create whichever of the two files (binary or text) that did not exist already: If the text macros already exist, it will convert them to binary. Or if the binary macros already exist, it will convert them to text. However, if both files exist, you must supply one of the optional switches to determine the direction. The switch /B tells QMac to create a Binary file, while /T tells it to create a text file. If the output file already exists, you must also supply a /A+ or /A- switch to tell QMac whether to "append" to the existing file. With /A+ it will append, /A- tells QMac to overwrite the existing file. Anywhere an asterisk ("*") appears on a line, outside of a quoted string, the rest of the line is treated as a "comment" and is ignored by QMac. You can use this to include notes to yourself about how your macros work, or what they are supposed to do. Comments are not included in the binary macro file that QEdit loads, so there is no penalty for including them in your text macro files. A macro can continue onto more than one line, simply indent the second and subsequent lines of the macro one or more spaces. The macro continues until QMac runs out of text or encounters another key at the beginning of a subsequent line. Lines in your text macro files can be up to 512 characters long. QEdit in 43/50 Line Mode on Startup ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If you want to have QEdit start-up in 43/50 line mode, you can select the "Startup video mode" option under Colors/Screen in the QCONFIG program. Using this option, you can force QEdit to come up in 28 or 43/50 line mode. Saving Files and Exiting ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides several different ways to save files, discard files, and exit the editor. A set of five basic commands provides various combinations of saving, discarding, and exiting in order to suit individual preferences. We recommend selecting one or two methods with which you feel most comfortable and use them consistently. Below is a description of the basic commands for both single and multiple files along with our default key combinations. 1) SaveFile - save the currently edited file to disk. The file remains loaded into the editor for further editing. GSave - Like the SaveFile command but it issues the SaveFile command for all the files that have been modified. 2) File - Unconditionally saves and then discards the current file. It then either goes to the next file in the QEdit file ring or the file to edit prompt. GFile - Like the File command but it instructs the editor to save all files that have been modified and then discards all the files that are loaded and exits. 3) Exit - Conditionally discards the currently edited file. If the file has not been modified, the file is discarded without prompting and the editor is exited. If the file has been modified, the editor will prompt "Save Changes (Y/N)?" Selecting will save and discard the file, then exit. Selecting will discard the file without saving any changes and exit. GExit - Like the Exit command but it issues the Exit command for all loaded files. If no files have been modified, it will immediately exit the editor. If any files have been modified, the "Save Changes (Y/N)?" prompt will be displayed for each modified file. 4) PQuit - A protected quit that will warn the user of a modified file before discarding the file. If the file has not been modified, it is discarded without prompting. If the file has been modified, the editor will prompt "Lose Changes (Y/N)?" Selecting will discard the current file without saving changes and then either go to the next file in the QEdit file ring or the file to edit prompt. Selecting will return you to the file to resume editing. GPQuit - Like the PQuit command but it issues the PQuit command for all loaded files. If no files have been modified, it will immediately exit the editor. If any files have been modified, the "Lose Changes (Y/N)?" prompt will be displayed for each modified file and then the editor is exited. 5) Quit - An unconditional quit. The current file is discarded regardless of any changes made to it. NOTE: Use this command with caution! The Quit command is not assigned to a default keystroke. The Exit, File, PQuit commands can be configured to terminate or not terminate the editor and ask for another file to edit. This option can be customized using the configuration program QCONFIG.EXE. Run QCONFIG.EXE, select G)eneral Options, and return till you get to the option that reads: Do you want the PQuit, Exit and File commands to return to "EditFile" prompt (Y/N)? [Y] The default configuration is set to and will return you to the EditFile prompt upon executing the PQuit, Exit, and File commands or go to the next file in the QEdit file ring. If set to , it will terminate QEdit upon executing the above commands. The SaveFile and Quit commands are not affected by this setting. A Few Recommendations: ~~~~~~~~~~~~~~~~~~~~~ * If you know what you are doing and want to get in and out of the editor quickly, use the GFile command. * If you want to make one more final check before you exit the editor, use the GExit. * PQuit/GPQuit and Exit/GExit are not intended to be used at the same time, but to give the user opposing approaches to saving files and exiting the editor. Types of Block Marking and Unmarking ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ A block is a portion of a text file which has been defined by using QEdit's Block marking commands. QEdit has a rich set of Block commands. These commands mark Blocks by lines, columns, and characters. To define a block, you must first "mark" or outline a Block. There are four Block types in QEdit: line, column, inclusive character blocks, and non-inclusive character blocks. The one you choose will depend on the editing situation and what you feel most comfortable using. Below is a description of the commands along with our default key combinations. MarkLine - will mark only complete lines and no portions of lines. To use this command, place the cursor anywhere on the first line of the text you want to mark and press . Now move the cursor to the last line of text you wish to be marked and press again. DropAnchor - will mark a Block one character at a time. The Block will contain a stream of characters and can span over multiple lines. To use this command, place the cursor over the first character of text you wish to mark and press . Now move the cursor toward the end of text to be marked. (Notice that the Block "follows" the cursor position.) Once the cursor is placed over the last character to be marked, press again. MarkCharacter - will work just like DropAnchor except that while the Block is being marked, the cursor is _not_ included within the Block. MarkCharacter is not assigned to a default keystroke. MarkColumn - will mark one or more columns of text. To use this command, place the cursor over the upper left-hand character of the text you wish to mark and press . Now move the cursor to the right and/or downward toward the end of text to be marked. (Notice that the Block "follows" the cursor position.) Once the cursor is placed over the lower right-hand character of the Block, press again. MarkBlockBegin and MarkBlockEnd - will mark one character at a time. These commands do _not_ show the block until MarkBlockEnd is executed. To use this command, place the cursor over the first character of the text you wish to mark and press . Now position the cursor one character past the end of the text that is to be marked and press . MarkWord - will mark a single word. To use this command, place the cursor at the first character of the word you wish to mark and press . (If no word is at the current cursor position, then no action is taken.) UnMarkBlock - will cause the currently marked Block to be unmarked. A few side notes: ~~~~~~~~~~~~~~~~ * QEdit allows you to mark one Block at a time. * If you mix Block types, QEdit will mark the Block according to the last command entered. * MarkCharacter is provided as a replacement for the DropAnchor command. If you want the cursor position included in the character Blocks, then continue to use DropAnchor; otherwise, replace the DropAnchor command with MarkCharacter in the QCONFIG.DAT file. * When using MarkLine, MarkCharacter, MarkColumn, and DropAnchor commands, it is not necessary to mark the end of the Block. QEdit will assume the end of the Block to be the current cursor position and/or line depending on the command being used. Marking the end of the Block is only necessary when moving or copying text within the same file. Manipulating Marked Blocks (Part A).. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides several ways to manipulate a marked Block. Manipulation can be done directly, using the scrap buffer (Clipboard), or using the scratch buffers. Following is a description of each of QEdit's block manipulation commands along with our default key combinations. Manipulating Directly ~~~~~~~~~~~~~~~~~~~~~ The following commands allow you to manipulate a marked Block directly. CopyBlock - will make a copy of the marked Block and insert it where you decide. This can be either in another place in the same file, or in another file. To use this command, mark the Block and move the cursor to the position where you wish to insert the marked text. Now press and notice the Block will be inserted at the new position. To unmark the copied Block, enter the UnmarkBlock command. CopyOverBlock - will work just like the CopyBlock command except the Block is copied to the current cursor position by overlaying the existing text. The command can _only_ be used with column Blocks. The Block will be inserted without shifting the text to the right. MoveBlock - will work just like the CopyBlock command except that upon entering the MoveBlock command, the original marked Block is deleted from the file. DeleteBlock - will delete a marked Block of text from the file. To use this command, mark the Block of text to be deleted, then enter the DeleteBlock command. ShiftLeft and ShiftRight - will shift the text contained in a marked Block one column to the left or right. To use these commands, mark the Block and enter the ShiftLeft or ShiftRight command. If there is not a marked Block or the cursor is outside of the Block, the current cursor line will be shifted. Manipulating Using the Scrap Buffer (Clipboard) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Scrap Buffer is a temporary holding area for marked Blocks of text. The commands Cut, Copy, Paste, and PasteOver are solely responsible for manipulating text to and from the Scrap Buffer. Cut - will copy the marked Block into the Scrap Buffer. The Block is then deleted from the file being edited. If no Block is marked, the cursor line is cut into the Scrap Buffer. Copy - will copy the marked Block into the Scrap Buffer and then unmark the Block. If no Block is marked, the cursor line is copied into the Scrap Buffer. Paste - will insert the contents of the Scrap Buffer to the current cursor position. If the Scrap Buffer contains a character or column Block, it is inserted at the cursor position. If the Scrap Buffer contains a line Block, it is inserted before or after the cursor line depending on the configuration setting. PasteOver - will work like the Paste command, but for column Blocks. It takes a column Block which has been loaded into the Scrap Buffer using the Cut or Copy commands and places it at the current cursor position by overlaying the existing text and without shifting text to the right. When you issue a Copy or Cut command, the marked Block is placed in the Scrap Buffer. The next time you Copy or Cut a Block into the Scrap Buffer, the previous contents of the Scrap Buffer are deleted and replaced with the new Block. You can use the Paste and PasteOver commands as many times as needed to insert a copy of the Block held in the Scrap Buffer at multiple positions in your file or files. The Paste and PasteOver commands will not purge the contents of the Scrap Buffer. The Cut and Copy commands can be configured to act on the current cursor line if no Block is marked. This option can be customized using the configuration program QCONFIG.EXE. Run QCONFIG.EXE, select A)dvanced options, and return till you get to the option that reads: Should Cut and Copy use the current line if no block marked (Y/N)? [N] The default configuration is set to and will result in no action if the Cut and Copy commands are used outside of a block. If set to , QEdit will take use the current cursor line if the Cut and Copy commands are issued. Manipulating Using the Scratch Buffer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A Scratch Buffer is a special type of buffer to which you assign a name. QEdit allows you to create and name up to 99 Scratch Buffers for each editing session. These can be useful if you have several different Blocks of text that you want to insert in multiple locations. The commands StoreScrbuff, AppendScrbuff, and GetScrbuff are used to place text in, and retrieve text from, a Scratch Buffer. Whenever you issue one of these commands, QEdit will ask you for the name of the Scratch Buffer. The contents of all Scratch Buffers are discarded when the editor is terminated. StoreScrbuff - will copy the marked Block to the named Scratch Buffer. The editor will prompt for the name of the Scratch Buffer. AppendScrbuff - will append the marked Block to the end of the named Scratch Buffer. The existing contents of the named Scratch Buffers are _not_ lost. If the named Scratch Buffer does not exist, a new Scratch Buffer will be created. GetScrbuff - will insert the contents of the named Scratch Buffer at the cursor position. Manipulating Marked Blocks (Part B).. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides several other ways to manipulate a marked Block. Manipulation of Marked Blocks can be done by using the Upper, Lower, Flip, Sort, Fill, Print, and WriteBlock commands. Following is a description of each of QEdit's block manipulation commands along with our default key combinations. Upper - will change all characters in a marked block to upper case. Lower - will change all characters in a marked block to lower case. Flip - will reverse the case (upper to lower and lower to upper) of all characters in a marked block. The Upper, Lower, and Flip commands must be used within the marked block. If the cursor is outside of the marked block or if no block is marked, the character at the current cursor position is changed to upper case. Sort - will sort a range of lines in ascending order. The sort key is determined by a marked column block. The length of the column block determines the range of lines to be sorted. This command can _only_ be used with a single, nonzoomed window on the screen. FillBlock - will fill an entire block with any ASCII character. FillBlock is recommended for use with column and word blocks only because it will fill other type blocks with characters beyond column 80. PrintBlock - will print the entire contents of the marked Block. The marked Block must be in the current file. WriteBlock - will write the marked Block to the named file. The editor will prompt for the name of the file. This feature will also allow you to save your current file under a different name. To do so, press with no marked blocks in the file. QEdit will prompt you for a filename. If the filename already exists, QEdit will prompt you with "Overlay existing file" and "Append to file." Select the option you desire or press escape to abort. If there is a marked block in the file, the WriteBlock command will, as before, write the current marked block to the named file. QEdit's Keyboard Configuration ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Are you tired of signing your names to all those messages you write in QEdit? Would you like to change the help screen to the F10 key like it was in your "other" editor? This is where QEdit's flexible keyboard configuration is extremely helpful. It will provide you with the ability to assign editor commands and macros to almost any key you prefer. Below you will find an explanation of QEdit's keyboard definition file (QCONFIG.DAT) and how to modify it to meet _your_ needs. What is QCONFIG.DAT? ~~~~~~~~~~~~~~~~~~~~ It is QEdit's keyboard definition file which contains the default settings for the keyboard. This file contains a list of all the keys to which commands may be assigned. The configurable keys are on the left side of the file with the commands or macros assigned to the keys on the right. Blank lines and lines starting with an asterisk "*" are ignored. The control, alternate, and shift keys are used within QCONFIG.DAT to assign to commands. The following are some examples of each. - Control keys are specified with a "^". (i.e. - ^F1 means Control F1 and ^PgUp means Control Page Up) - Alternate keys are specified with a "@". (i.e. - @F1 means Alternate F1 and @PgUp means Alternate Page Up) - Shift keys are specified with a "#". (i.e. - #F1 means Shift F1) The case of the commands, as well as underscores in command names, are ignored by the configuration program (QCONFIG.EXE). This means that CursorDown, cursor_down, and Cursor_Down all refer to the same command. What are twokeys? ~~~~~~~~~~~~~~~~~ A twokey is a keystroke sequence assigned to two distinct keystrokes. This allows for more key assignment possibilities. To assign a command to a twokey, enter both of the keystrokes of the twokey in the first column separated by an underline. The key here is that the commands must be separated by a '_'. For example, to assign the Exit command to the twokey, , enter the following into your keyboard definition file: ^F1_F2 Exit Any QEdit command can be assigned to a twokey, including macros. How can I modify MY QEdit keys? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Any QEdit user can modify his/her keys to suit their needs. It is easy and simple. Just follow the steps below to modify your QCONFIG.DAT file. 1. Edit QCONFIG.DAT (i.e. - q QCONFIG.DAT). 2. Make the appropriate changes to your QCONFIG.DAT file. (i.e. - change the definitions of @0 and ^F2 to be: @0 InsertDate ^F2 MacroBegin "Matthew Giles" Return "SemWare Technical Support" Remember that the first line of a command assignment must start in column 1. Command assignments can wrap or continue for multiple lines, as long as each succeeding line starts in a column greater than 1. Also remember that text should be enclosed in single or double quotes. 3. Save your QCONFIG.DAT file. 4. Run QCONFIG.EXE, enter program name and select K)eys 5. Enter keyboard definition name 6. Select S)ave options and quit You have now installed your new keyboard definitions into QEdit. Next time the editor is loaded your new keys will be in effect. What if I liked the keys assignments on my "other" editor? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are many keyboard definition files written by QEdit users and staff that will allow you to customize your editor to run like another editor. You may find these additional keyboard definition files on the SemWare Support BBS. To install and/or edit the other keyboard definition file, follow the steps above with the addition of entering the new filename when it prompts you for the keyboard definition filename. QEdit TSR's Benefits ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Have you ever been in a program and wanted to simply jot a note to yourself? Have you ever had the need to take a quick look at a document, but the program you were in had no shell option? Then, QEdit TSR, the memory resident version of QEdit, is for you! As a memory-resident version of QEdit Advanced, QEdit TSR (Terminate and Stay Resident) resides in the background, giving you the power of QEdit with a single keystroke, but without having to exit the file you're working in. Unlike more familiar TSR programs, QEdit TSR utilizes a unique swapping feature to provide the benefits of a TSR without draining precious memory. QEdit TSR uses less than 9k memory, and when popped up swaps your current applications out of memory and into extended/ expanded memory or to disk. In this configuration, you can edit files up to 400k in size. QEdit TSR contains all of the QEdit v2.15 commands plus four additional commands. These are described below along with the default key combination for each. GrabScreen - reads in the contents of the screen, as it appeared when you popped up QEdit TSR as a marked block at your current cursor position, and inserts it into the current file as a marked block. The GrabScreen command behaves as if you were using the QEdit Advanced ReadBlock command. GoBack - returns you to your DOS application, in the exact configuration as when you left it. The GoBack command can be customized to prompt you to save edited files. This is done by using QTCONFIG, QEdit TSR's configuration program. Purge

- purges QEdit TSR from memory after first prompting the user to save any changed files. TsrPaste - "pastes" a marked block into the foreground application. TsrPaste does not have a default keyboard assignment. To use this command, follow these steps: 1) When the foreground application is waiting for input, pop up QEdit TSR. 2) Within QEdit TSR, mark a block of text and stuff it into the keyboard buffer with the [TsrPaste] command (available as the last item on the "Quit" pulldown menu). 3) Quit QEdit TSR and return to the foreground application by issuing the [GoBack] command, and the text will be immediately pasted into the foreground application. Notes: Each line that is pasted, including single lines, has a carriage return appended to it. Although QEdit TSR has all the features QEdit Advanced is famous for, most users want a non-TSR editor as well. For this reason, QEdit TSR currently comes bundled with a separate copy of QEdit Advanced. Registered users may purchase only the TSR software at a discount over the full TSR package price. Please call us at 404-641-9002 M-F 9a-5p EST for details! QEdit's Line/Box Drawing ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Do you want to spice up your memos? Do you want to draw boxes around text to emphasize it? Then QEdit's Line/Box drawing feature is for YOU! Give emphasis to your documents without the need to use a drawing program. It's simple and easy to use! QEdit contains two line drawing commands. These are described below along with the default key combination for each. ToggleBoxDraw - this mode of operation can be switched ON or OFF. In the ON position, the cursor movement keys (up, down, right, and left) can be used to "draw" lines in the text. To switch Line/Box Drawing mode ON, enter . To switch it OFF, enter again. ToggleBoxType - this command prompts the user to select from various line drawing styles for use in the Line/Box Drawing mode. The selectable options are: single, double top, double side, double, and eraser. The status line indicates when the line/box drawing mode is on. The letter 'B' is displayed on the status line whenever line/box drawing mode is selected. To print the lines/boxes you have drawn in your text file, first set your printer to use the IBM graphics character set. Then use any of QEdit's printing options. QEdit's Conditional Logic for Macros ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Have you ever wanted to test to see if the cursor is at the beginning of the line? Have you ever wanted to perform a task only if you find what you are searching for in a macro? QEdit brings you all the power of looping and branching in it's conditional logic commands. There are three commands in QEdit for use within macros: Jump, JTrue, and JFalse. Placing one of these commands following another QEdit command in a macro allows for branching or looping during macro execution. All QEdit commands set an internal result code to either "true" for successful execution, or "false" for unsuccessful execution or if no action occurs. The Jump command makes an unconditional jump. The JTrue command makes a jump only when a result code of "true" is returned. Likewise, the JFalse makes a jump only for a result code of "false". Labels can be defined for branching, in the format "label:". The maximum label length is 15 characters. beginning of the line, and assigned to the f10 key: f10 MacroBegin begin: CursorLeft JFalse done: DelCh Jump begin: done: Little known QEdit Commands ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Have you ever wanted to adjust some of your settings temporarily? Have you wanted to turn off the sound while performing a repeated find command? Have you wanted to find the decimal code for a character? QEdit Advanced lets you accomplish these tasks and more! These additional general and advanced macro commands increase the power of QEdit. The following is a list of the commands added to QEdit in version 2.15 with a brief description of each, plus several examples. General Commands: ~~~~~~~~~~~~~~~~ AsciiChart - Displays a scrollable ASCII chart on the screen. ListFiles - Displays a list of the currently loaded files. To switch to another file, move the cursor to the appropriate file and press . To resume editing the current file, press . FirstNonWhite - Intended as a replacement and/or supplement to the BegLine command. Places the cursor at the first non-white character on the line, or column 1 if the line doesn't have any non-white characters. "White" characters are tabs or spaces. A useful macro would be: Home MacroBegin BegLine JTrue done: FirstNonWhite done: (Explanation: If already at the start of a line, go to the first non-white character on the line; otherwise, if not already at the start of a line, go to the start of the line.) Advanced Macro Commands: ~~~~~~~~~~~~~~~~~~~~~~~ The following commands, intended primarily for QEdit macro writers, are designed to simplify the writing of certain kinds of macros. This group of macro commands forces the indicated mode or setting. If the setting is already in that condition, they set QEdit's result code to TRUE; otherwise, they set it to FALSE. In some cases, a macro can behave differently based on the currently set QEdit modes. The following three commands give some control in establishing the proper environment so that your macro will always work as intended. SetInsMode - Sets Insert mode on. To set Insert mode "off" (that is, set overwrite mode "on"), do the following: SetInsMode ToggleInsert SetAutoIndentMode - Sets AutoIndent mode "on". To set AutoIndent mode off, do the following: SetAutoIndentMode ToggleIndent SetWordWrapMode - Sets WordWrap mode "on". To set WordWrap mode off, do the following: SetWordWrapMode ToggleWordWrap The Find command sounds a tone when the search string cannot be found. This can be irritating in the case of a long-running macro that may possibly execute hundreds of finds that fail. The following commands allow you to selectively turn the sound "on" and "off". SetSoundOn - Sets sound "on". SetSoundOff - Sets sound "off". Most macros execute dozens of QEdit commands, sometimes hundreds of times. This can cause the screen to flash rapidly as the macro runs. Not only is this disconcerting to watch, it actually decreases the speed of some macros. The following commands allow you to temporarily suspend or resume screen updating, while a macro is running. SetScreenOn - Turns screen updating "on". SetScreenOff - Turns screen updating "off". You must turn screen updating back on before your macro prompts for input, or if there is some output from the macro that you want displayed on the screen. NOTE: QEdit will AUTOMATICALLY turn screen updating back on when the macro has finished executing. Thus, it is not necessary to issue the SetScreenOn command at the end of the macro. Many times, it would be nice for a macro to force a few settings, do its assigned task, and then restore the original settings. The following commands allow you to do just that. Note that each time SaveSettings is executed, the previous settings saved with SaveSettings are overwritten. SaveSettings - Saves the current settings of: Insert, AutoIndent, WordWrap, Sound, and Screen Updating. RestoreSettings - Restores the saved settings listed above. The following commands set QEdit's result code to TRUE or FALSE based on the condition being tested. These commands make certain types of macro tests easier and more reliable. isBegLine - Returns TRUE if the cursor is at column 1; otherwise, FALSE is returned. isEndLine - Returns TRUE if the cursor is past the last non-white character on the current line; otherwise, FALSE is returned, including the case when the cursor is on an empty line. isEmptyLine - Returns TRUE if the current line is empty or contains only white space; otherwise, FALSE is returned. isLastLine - Returns TRUE if the cursor is on the last line of the currently edited file; otherwise, FALSE is returned. isFirstLine - Returns TRUE if the cursor is on the first line of the currently edited file; otherwise, FALSE is returned. isCursorInBlock - Returns TRUE if the cursor is inside a marked block; otherwise, FALSE is returned. To demonstrate how these concepts tie together, consider the following simple macro to delete all the blank lines in a marked block. The cursor should be at the beginning of the block when the macro is invoked. ^f9 MacroBegin SetScreenOff * turn off screen for speed begin: isCursorInBlock jFalse done: * exit if not in block isEmptyLine jFalse next: * skip if not empty line isLastLine jTrue last: * special handling for last * line DelLine jump begin: * delete empty lines next: CursorDown jTrue begin: * try next line jump done: * last: DelLine * delete the last line done: * that's all, folks! Replacing a CR with a CR/LF ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Have you ever loaded a file and gotten the message "long line splits"? Have you ever had a database file that just had a carriage return at the end of line of text? We have developed a small macro that allows you to replace a visible carriage return (CR) with a carriage return/line feed (CR/LF). The DOS standard specifies that a CR/LF be appended to each line of text in an ASCII text file. Some databases, as well as the Macintosh, only use carriage returns at the end of their lines of text in files. The following macro can be used when you see the carriage return (it will appear as a musical note) in your text. The macro will replace the carriage return (ASCII 13) with a carriage return/line feed (ASCII 13/10). MacroBegin SetScreenOff Find #13 Return 'i' Return top: Delch SplitLine CursorDown JoinLine BegLine RepeatFind JTrue top NOTE: is the key to which you should tie this macro. In addition, the macro must all be on one line in your QCONFIG.DAT file. Once you have added the macro to your keyboard, run QCONFIG.EXE to install the changes. To use QCONFIG.EXE, run it, press return to accept Q.EXE, press K for keys, press return to accept QCONFIG.DAT, then press S to save your changes. Eliminating all tabs in your file ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Have you ever wanted to get rid of _all_ the tabs (ASCII 9) that are in your text file? It gets pretty frustrating trying to figure out how to do this, right? This is a question that the SemWare Technical Support Staff is often asked. In response, in QEdit 3.0, the TabsToSpaces command has been added. From the reference manual: TabsToSpaces ------------------------------------------------------------ Expands tab characters to the appropriate number of spaces. Tabs within quotes (single and double) are not expanded. If the cursor is within a marked Block when this command is executed, only tabs within the Block are expanded; otherwise, this command operates on the entire file. Drawing Boxes in Text ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Have you ever wanted to box in parts of a text file for emphasis, or to spice up messages with fancy boxes? We have developed a simple one-key step for boxing in your text with QEdit. QEdit has a versatile line/box drawing capability. But since most of us like to make text editing as simple as possible, we took QEdit's box drawing feature and incorporated it into two different versions of a macro. Each version takes a _column block_, _marked word_, or _character block_ that the user marks and draws a box around the text. Then, depending on which version is used, it reinserts the boxed text into your file in one of two ways: "insert" or "overwrite." Give one of the versions of the macro a try and see how it gives your text files an exciting new look! This version of the macro will box the text and re-insert it _without_ overwriting other text in the file. MacroBegin SetScreenOff EditFile "nul" Return Quit GotoBlockEnd AddLine GotoBlockBeg InsertLine Cut EditFile Return GotoColumn '2' Return Paste InsertLine GotoBlockEnd ToggleBoxDraw upagainr: CursorUp JTrue upagainr leftagaint: CursorLeft JTrue leftagaint GotoBlockEnd CursorDown leftagainb: CursorLeft JTrue leftagainb upagainl: CursorUp JTrue upagainl CursorRight ToggleBoxDraw UnMarkBlock BegFile MarkColumn EndFile CursorLeft Copy Quit Paste UnMarkBlock This version of the macro will box the text and re-insert it into the file while overwriting text surrounding the block with the new box. MacroBegin SetScreenOff EditFile "nul" Return Quit GotoBlockBeg Cut Paste FillBlock " " Return CursorUp CursorLeft EditFile Return GotoColumn '2' Return Paste InsertLine GotoBlockEnd ToggleBoxDraw upagainr: CursorUp JTrue upagainr leftagaint: CursorLeft JTrue leftagaint GotoBlockEnd CursorDown leftagainb: CursorLeft JTrue leftagainb upagainl: CursorUp JTrue upagainl CursorRight ToggleBoxDraw UnMarkBlock BegFile MarkColumn EndFile CursorLeft Cut Quit PasteOver UnMarkBlock NOTE: is the key to which you should tie each macro. Once you have added the macro to your QCONFIG.DAT file, run QCONFIG.EXE to install the changes. To use QCONFIG.EXE, run it, press return to accept Q.EXE, press K for keys, press return to accept QCONFIG.DAT, then press S to save your changes. Loading a Filelist into QEdit ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Do you often work with the same group of files? Does it take you awhile to load these files? If so, you are like many others who use the same files quite often and who spend a lot of time loading them into the editor. Now you can use the flexibility of QEdit to load _all_ those files with a single keystroke. To use the following macro to load your list of files, first create a file (ie - FILELIST). Then list each one of the files you need to load (including it's path) on separate lines. Finally, save that file for future use (note that you may have several lists of files for different needs). In the future you can just load your filelist into the editor and run the macro. Notice that since you have not actually viewed the files yet, they will not be loaded until you move to them the first time . This will permit the user to take care of any "Press Escape" prompts. The end result will be to load each of the files in the filelist into the editor in the order that they were listed and to remove the FILELIST from the current file ring. MacroBegin SetScreenOff EndFile REPEAT: UnMarkBlock MarkLine Copy EditFile CurrentFilename " " Paste Return CursorUp JTrue REPEAT: Quit NextFile NOTE: is the key to which you should tie this macro. Once you have added the macro to your QCONFIG.DAT file, run QCONFIG.EXE to install the changes. To use QCONFIG.EXE, run it, press return to accept Q.EXE, press K for keys, press return to accept QCONFIG.DAT, then press S to save your changes. Macro Table is Full ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Are you running out of macro space in QEdit? Does QEdit respond with a MACRO TABLE FULL error when installing your keys? Then, it looks like you need more space for QEdit macros. Although the configuration area for key definitions is fixed in the editor, there still is a solution. Setting up external macro files are a good way to add macros to the editor when the macro table is full. The configuration area for key definitions holds approximately 2000 bytes of information. When that space is full, you will receive an error message: 'macro table full at line #:'. One solution is to go into your keyboard definition file (normally QCONFIG.DAT) and delete macros that are no longer needed. Alternatively you can move several of your larger macros to an external macro file and compile it with QMAC, QEdit's external macro compiler. Each of these external macro files can be up to 4k in size and you can generate as many such files as needed. Thus, users have access to an unlimited amount of macro space through the use of external macro files. For example, create a macro file named MYMACS.MAC that has several of your larger macros included in it. Next create a batch file, such as Q.BAT, to run QEdit, and load your macros. To eliminate confusion about where you execute Q.BAT, rename Q.EXE to QEDIT.EXE. The batch file will then be similar to the following: qedit %1 %2 %3 %4 %5 %6 %7 %8 %9 -lc:\qedit\mymacs.mac The batch file loads QEdit, loads up to nine files on the command line, and loads the external macro file. Modifications to the 'c:\qedit\mymacs.mac' section of the batch file may be needed, depending on the name of your macro file and it's location on your system. The end result is a keyboard definition file with more space available, plus an easy way to load the deleted macros in an external macro file. All this with still just the touch of one keystroke! Printing to LPT1 and LPT2 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Have you ever wanted to print to another printer port in QEdit? Do you have two printers and want to toggle between them? As shipped, QEdit's printer routines output all data to PRN, which usually points to LPT1. A number of users have expressed a need to print to LPT2, or to toggle between LPT1 and LPT2. In response, in QEdit 3.0, you can select the device to print to, PRN, LPT1, LPT2, LPT3, or even a disk file. This printer output device can be set permanently via QCONFIG, or temporarily inside QEdit via the Print pulldown menu.

This command determines whether the editor suspends printing between pages. To have QEdit pause after each page is sent to the printer, set this option ON. (For this option to operate effectively, the print page size must be set to an appropriate value greater than 0. Refer to SetPrintPageSize in this section.) The editor then requires a keypress after every page is printed before continuing. This allows you to manually feed paper to the printer, one sheet at a time. Set this option OFF for the editor to automatically send each subsequent page to the printer without pausing. Formfeeds ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit automatically sends a formfeed character (ASCII 12) to the printer at the end of each page. A page is determined according to the value of SetPrintPageSize (refer to the previous section). At times you may find it desirable to insert formfeed characters directly into your text. For example, you want the page size for your text to be 55 lines, which you have set using the SetPrintPageSize command, but there is a 15-line table in the text that should appear on a page by itself. To accomplish this, simply insert formfeed characters immediately before and after the table. To insert a formfeed character in the text, enter the Literal command followed by a formfeed character. Alternatively, you can insert a formfeed character by holding down the key and typing "12" on the alternate numeric keypad. (You can also use the built-in ASCII-chart feature to insert a formfeed character. Refer to the AsciiChart command in the section "Adding Text" of this chapter.) If you need to insert formfeed characters into your text repeatedly, you may want to use a macro. An example of a macro to insert formfeed characters can be found in the "Example of a Keyboard Macro" section of Chapter 3. It is also possible, from within QEdit, to send a formfeed character directly to the printer, causing the printer to eject a page. To do this, simply execute the PrintEject command. THE SHELL AND DOS COMMANDS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ (For the following discussion, "Dos" is a QEdit command, while "DOS" refers to the computer's operating system.) QEdit provides two very helpful commands that allow you to interact with DOS from within the editor. The commands, Shell and Dos, allow you to perform most functions that you would normally execute from the DOS command line, then return you to your original position in the editor. QEdit also has an option which frees up memory when executing the Shell and Dos commands. For details, see "Swapping, [QE] Shell Indicator" later in this section. * Shell 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 , and control passes back to QEdit. You are then positioned in the file exactly where you were when the Shell command was executed. * Dos This command should be used when executing a single DOS command. Upon executing this command, QEdit prompts with: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Execute what: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ You may now enter almost any DOS command. (Some exceptions are noted below.) Once the DOS command has completed, pressing any key causes control to pass back to QEdit. You should not execute any TSR programs (programs that terminate but remain resident in your computer) from the Shell or Dos commands. For example, the DOS PRINT and GRAPHICS commands are TSR programs. If you mistakenly execute a TSR program from QEdit's Shell or Dos command, the computer's memory allocation scheme will probably become fragmented, and as a result, QEdit's available memory may become severely limited. You should save your files, terminate QEdit, and then reboot the computer. Swapping, [QE] Shell Indicator ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The QEdit Dos and Shell commands can optionally swap QEdit out to disk or expanded memory leaving only a 2K kernel in memory. This allows much more memory for running memory-hungry programs (such as compilers) from within QEdit. You can set this option by default using the configuration program (Advanced Options), or you can toggle it ON and OFF using the ToggleSwap command. While in a shell with swapping ON, QEdit will maintain a file with a ".SWP" file extension in your root directory. It is very important that you do not delete this file while in the shell. Once in the shell, QEdit will optionally append "[QE]" to the DOS prompt string, provided that: 1) You have defined the prompt environment variable. 2) There is enough space left in the environment. 3) You have set the "Change DOS PROMPT during a Shell" option to [Y]es via the configuration program. (For more information, refer to the "Advanced Options" section of Chapter 2.) If you have NOT defined the prompt environment variable, then we suggest you do so. It is helpful with DOS command line operations in general. A suggested prompt is (this should go in your AUTOEXEC.BAT file): set prompt=$p $t $g If you do have a prompt string defined, but you do not get the "[QE]" prompt in the QEdit shell, add the following to your AUTOEXEC.BAT: set x=x WORD-PROCESSING COMMANDS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit has all the features you need to do basic word processing. In addition to the commands which enable you to view and edit your text (discussed in previous sections), QEdit provides word-wrapping, paragraph-reformatting capabilities, and a line-centering command. QEdit also contains commands for changing case and for filling a Block. Refer to the sections in this chapter on "Changing Case" and "Manipulating Blocks Directly," respectively, for more information on these two functions. * The Right Margin To benefit from the word-wrap and paragraph-reformatting features of QEdit, an appropriate right margin must first be set. The default setting is column 72. This may be changed using the configuration program. (Refer to the "General Options" section of Chapter 2 for instructions on how to change the right margin setting.) The value of the right margin is used each time the editor is initiated. QEdit provides the ability to change the right margin setting temporarily while the editor is running without affecting the permanent setting. To change the right margin setting temporarily, execute the SetRmargin command. QEdit prompts with: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Right margin [1..1000]: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-ÄÄÙ Enter the desired column number for the right margin. The new setting is in effect until the SetRmargin command is executed again or the next time the editor is initiated. WordWrap mode (see below) is automatically switched ON whenever the right margin is set using this command. * WordWrap WordWrap is a QEdit mode which can be switched ON and OFF using the ToggleWordwrap 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 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 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 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 Centers the current cursor line based on column 1 and the right margin. Use the SetRmargin command to change the right margin (see above). With the cursor inside of a line Block, you can execute this command to center several lines at once. With the cursor inside of a column Block, you can center lines based on the left and right Block boundaries. MODES ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit uses modes to affect the operation of the editor. In general, a QEdit mode is a state during which certain commands or keystrokes behave differently. Following is an explanation of the QEdit modes. * Insert mode Insert mode can be switched ON and OFF by pressing the key. When Insert mode is ON, an "I" appears on the StatusLine. The following table describes the commands and keystrokes which are affected by Insert mode. Command/ Keystroke Insert ON Insert OFF ÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Characters, Shifts text to right Overwrites existing Space of cursor, one column text. to the right. Backspace Deletes character/word Deletes character/word to left of cursor. Text to left of cursor. Text to right of cursor to right of cursor does shifts left one column. not shift. Return Splits line at cursor Does not split line. position. Cursor moves Cursor moves to next to next line. line. TabLt, Tabs cursor and shifts Tabs cursor only. TabRt text same number of positions. * AutoIndent mode AutoIndent mode is switched ON and OFF using the ToggleIndent command. This mode, when ON, positions the cursor at the current left margin (This is not the same as the print left margin.) whenever the key is pressed. The current left margin is determined by the first non-blank character on the immediately preceding line. When AutoIndent mode is ON, an "A" appears on the StatusLine. The following table describes the commands and keystrokes which are affected by AutoIndent mode. Command/ Keystroke AutoIndent ON AutoIndent OFF ÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Return Cursor positioned below Cursor positioned at first non-blank character column one. of previous line. WrapPara When reformatting, the left A left margin of zero is margin is determined from used when reformatting. the first non-blank character on the line immediately following the cursor line. * C mode This mode is specifically for "C" language programming. It is switched ON and OFF using the configuration program. (Refer to the "General Options" section of Chapter 2 for information on switching C mode ON and OFF.) C mode is only in effect when AutoIndent mode is also ON. C mode, when switched ON, affects files with a ".c", ".cpp", ".cxx", ".h", ".hpp", or ".hxx", file extension. When the current cursor line contains a "{" and the key is pressed, QEdit issues a normal Return followed by a TabRt command. Additionally, when a "}" character is entered, QEdit first issues a TabLt command and then enters the "}" character. * WordWrap mode WordWrap mode is switched ON and OFF using the ToggleWordwrap command. When switched ON, this mode 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 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 command. When BackUp Mode is switched ON, QEdit creates a backup copy (using the .bak file extension) for any file that is edited and saved. The backup copy of the file is an image of the file before it was last edited and saved. When BackUp mode is OFF, no backup files are created. * MacroRecord mode MacroRecord mode is switched ON and OFF using the MacroRecord command. This mode, when ON, records and assigns a series of commands and keystrokes to a designated key (or scrap area). This creates a Keyboard Macro. For a complete explanation of macros and their use, refer to Chapter 3, "QEdit Macro Reference." When MacroRecord mode is ON, an "R" appears on the StatusLine. * EnterMatching mode EnterMatching mode is switched ON and OFF using the ToggleEnterMatching command. If switched ON, QEdit automatically inserts into the text a corresponding ), ], or " character each time a (, [, or " character, respectively, is entered. * Box Drawing mode Box Drawing mode is switched ON and OFF using the ToggleBoxDraw command. If switched ON, the cursor movement keys (up, down, right, left) can be used to "draw" lines in the text. This can be very useful for creating charts and tables. The ToggleBoxType command allows you to select different line drawing styles. When Box Drawing mode is ON, a "B" appears on the StatusLine. * Fixed Tabs mode Fixed Tabs mode is selected using the SetTabType 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 command). * Smart Tabs mode Smart Tabs mode is selected using the SetTabType 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 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 command). Note that all of the supported tab modes may be set via the Tab type menu (). * Physical Tab Expansion mode Physical Tab Expansion mode is switched ON and OFF using the ToggleTabsExpand command. If switched ON, physical tab characters (ASCII 9) found in a file are expanded into spaces according to the Physical Tab Width set in the configuration program. (Refer to the "Tab Settings" section of Chapter 2.) If switched OFF, physical tabs are displayed on the screen and a physical tab character is placed in the text each time the TabRt command is executed. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ In general, Physical Tab Expansion mode should always be ³ ³ set ON. You would only want to set it OFF if you are ³ ³ editing binary or data files that contain or require ³ ³ physical tabs. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ * Tabs Out mode Tabs Out mode is switched ON and OFF using the ToggleTabsOut command. If switched ON, continuous spaces in a line of text are replaced with physical tabs (ASCII 9) according to the Physical Tab Width set in the configuration program. (Refer to the "Tab Settings" section of Chapter 2.) Spaces falling between single or double quotes are not replaced. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³CHAPTER 2. CUSTOMIZING QEDIT ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ QEdit provides a configuration capability that allows the User to customize the editor to suit individual preferences. There are a wide range of options which may be customized including key assignments, colors, tab settings, and printer options. Of course, customizing QEdit is not a requirement. If you like the editor exactly the way it is, it is not necessary to use the configuration program. The configuration program is QCONFIG.EXE and is included on the distribution diskette, along with the other QEdit files. The configuration program customizes QEdit by actually modifying the editor program itself - Q.EXE. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Before running the configuration program, make a backup ³ ³ copy of the original QEdit distribution disk. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ INITIATING THE CONFIGURATION PROGRAM ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ To initiate the configuration program, type "qconfig" from the DOS command line, and press . The program displays a prompt to request the name of the editor program to customize. Following is the prompt that is issued by the configuration program for QEdit Advanced. Configuration program for: QEdit Advanced v3.0 Enter program name to config, for Q.EXE : Simply press , unless you have previously renamed the editor, or if the editor is located in another directory. If you have renamed the editor, enter the appropriate filename and press . If it is located in another directory, enter the full pathname and press . If the file to be customized could not be located on disk, the error message "File not found" is displayed. Check the editor's filename and/or path for accuracy. If the version numbers of the editor and the configuration program are not the same, the error message "Configuration area not found" is displayed. Try reloading the QEdit software from the distribution disk (in particular, Q.EXE and QCONFIG.EXE). THE CONFIGURATION MENU ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The configuration program displays the following menu from which to select the desired functions for customization. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-ÄÄ¿ ³ Configuration choices. ³ ³ Choose One of the Following by pressing the indicated Key: ³ ³ Advanced options ³ ³ Colors/screen ³ ³ General options ³ ³ Help install ³ ³ Keys ³ ³ Printer options ³ ³ Quit ³ ³ Save changes and quit ³ ³ Tab settings ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Following is a brief explanation of these menu items. They are discussed in detail later in this chapter. * Advanced options Contains a variety of configurable options, including those related to video display, DOS memory, and editor menus. * Colors/screen Allows you to change colors of various display items and to specify numerous other editing display options. * General options A miscellaneous category of options. * Help install Allows you to install your own Help Screen. * Keys Allows you to reassign editor commands to different keys. * Printer options Allows you to set options for printing text, such as page size. * Quit Terminates the program. You are first prompted to save or not save changes. * Save changes and quit Terminates the program, unconditionally saving your changes. * Tab settings Allows you to set various tab-related options, including the physical and cursor tab widths. To make a selection from the menu, type the first letter of the desired menu item. You are prompted for a response to each option within the category. Each configuration option is displayed along with its current value. (The Keys and Help install categories, however, work a little differently and simply request a filename.) For each option displayed, you may enter a new value. If you do not wish to change the current value, simply press . After you have reviewed all options in a category, you are returned to the main configuration menu where you can select another category. Once you have completed customizing, you may save all the changes you have made either by simply typing "S" at the main menu prompt; or by typing "Q" at the main menu prompt, and then typing "Y" at the prompt, "Save Changes (Y/N)?". Your changes are made permanent (that is, effective the next time you execute the editor) by writing them to the editor program itself (Q.EXE). The configuration program then terminates. If you decide that you do not want to save your changes, type "Q" at the main menu prompt, then type "N" at the prompt, "Save Changes (Y/N)?". No changes are saved, and the configuration program terminates. ADVANCED OPTIONS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This section contains a list of the Advanced Options which can be customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option. * Test for presence of enhanced keyboard (Y/N)? [N] : If your system has an enhanced (101-key) keyboard, set this option to for QEdit to recognize the additional keys such as F11, F12, and the grey cursor keys. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Many TSRs, including mouse drivers, do not properly ³ ³ recognize the enhanced keyboard. If you are using a TSR ³ ³ and it is not working with QEdit, try setting this option ³ ³ to . ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ * Swap to Expanded memory or DISK on the Dos and Shell commands (Y/N)? [Y] : Select if you want QEdit to swap itself out of DOS memory and to expanded memory or disk whenever the Dos or Shell commands are executed. This will leave a small 2K kernel of QEdit in DOS memory, freeing up the rest of DOS memory for running other applications, such as compilers or spreadsheets, out of the Dos or Shell commands. * Drive for disk swapping on the Dos/Shell commands *=default-drive [A..Z] [C] : If you selected for the previous option, then specify here the disk drive designation to be used for swapping. Enter an asterisk ("*") if you want QEdit to default to your current drive for swapping. * Should QEdit change the cursor size (Y/N)? [Y] : By default, QEdit uses a small cursor when Insert mode is OFF and a medium cursor when Insert mode is ON. Select if you do not want QEdit to change the cursor size. * Do you want a large flashing cursor (Y/N)? [N] : If you want to use a large flashing block cursor, set this option to . This option is great for laptop users. * Size of cursor in Insert mode [0..7] [4] : Determines the size of the cursor when Insert mode is ON. A value of 0 indicates that no cursor indication is to be displayed. Values 1 to 7 indicate increasingly larger flashing cursor sizes. * Size of cursor in overwrite mode [0..7] [1] : Determines the size of the cursor when overwrite mode is ON. A value of 0 indicates that no cursor indication is to be displayed. Values 1 to 7 indicate increasingly larger flashing cursor sizes. * Get num rows on screen from BIOS data area (100% IBM PC only)(Y/N)? [N] : FOR NON EGA/VGA SYSTEMS ONLY. Set this option to if you want QEdit to automatically detect the number of rows on your screen. Setting this option to , 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 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 , 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 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 for this option, the current cursor line is used when you execute the Cut or Copy command and no Block is marked in the current file. * Do you want the Escape command to invoke the menus (Y/N)? [Y] : By default, the Escape command displays the pull-down menu, when executed outside of the menu or any QEdit prompts. If you do NOT want the Escape command to do this, select for this option. * Should the editor restore the starting drive/dir on program exit (Y/N)? [Y] : Set this option to if you want to return to the original DOS drive and directory on program exit regardless of which drives and directories you have accessed with the QEdit directory picker or the Dos or Shell commands. * Should the editor change the DOS PROMPT during a shell (Y/N)? [N] : Set this option to if you want the following to be appended to the DOS prompt during a QEdit Shell: [QE]. * Should TabRt/TabLt be allowed to shift an entire block (Y/N)? [N] : Set this option to if you want the TabRt and TabLt commands to shift entire marked Blocks when the cursor is within the marked Block. * Date format: 1=MM-DD-YY, 2=DD-MM-YY, 3=YY-MM-DD [1] : Determines the date format used by the InsertDate command. The date string consists of a three-character abbreviation for the day of the week, followed by the numerical date of the month. The order of the elements of the date of the month can be selected from three options: select <1> for month, followed by day of the month, followed by 2-digit year; select <2> for day of the month, followed by month, followed by 2-digit year; select <3> for 2-digit year, followed by month, followed by day of the month. * Character to use to separate the elements of the date [-] : Determines the separator character used by the InsertDate command. Select the character to be used to separate the day, month, and year elements of the date. * Time format: 1=24-hour, 2=12-hour [1] : Determines the time format used by the InsertTime command. Select <1> for 24-hour time format; select <2> for 12-hour time format. * Character to use to separate the elements of the time [:] : Determines the separator character used by the InsertTime command. Select the character to be used to separate the hours and minutes (and seconds for 24-hour format) elements of the time. COLORS/SCREEN OPTIONS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This section contains a list of the Screen and Screen Color Options which can be customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option. * StatusLine position: "T" for top, "B" for bottom [T] : Indicates whether the StatusLine is to be positioned at the top line or the bottom line of the screen. * StatusLine fill character [ ] : This character is used to "break up" the information on the editor's StatusLine. The default is the space character. For example, if the dash character is specified, the StatusLine would look like this: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³L 15ÄÄ C 15ÄÄÄÄIÄÄRÄBÄÄ411KÄÄÄÄÄ*c:\qedit\qedit.docÄÄÄÄÄÄÄÄÄÄij ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ * Display hex/decimal values of current character on StatusLine (Y/N)? [N] : Shows the hexadecimal and decimal values of the current character at the right-hand edge of the StatusLine. * Do you want the display "boxed" (Y/N)? [N] : Indicates whether the editing screen is to be completely enclosed in a box. * Do you want the original screen restored upon termination (Y/N)? [Y] : Determines whether QEdit is to restore the original screen upon exiting the program. Be aware that setting this option to causes the editor to require an additional 4K of memory; however, this can be very handy after long editing sessions to see what you were doing before you started. * Do you want "snow" checking (Y/N)? [N] : Determines whether QEdit should slow down screen updating to eliminate "snow" (a sparkling appearance on the screen that results from updating the screen too quickly). If this option is set to , and QEdit determines that your system has a Color/Graphics Adapter card (CGA), the editor does not write to the screen at full speed, in order to avoid "snow". If you have a CGA card that does not create snow effects, set this option to so that QEdit updates the screen as quickly as possible. If you have a VGA, EGA, COMPAQ, ZENITH, or other color adapter that allows full speed screen updating without "snow", then set this option to . This option has no effect on monochrome and true EGA/VGA cards. * Number of columns to scroll horizontally for screen lt/rt commands [1..400] [1] : Specifies the number of columns that QEdit should scroll when you execute the ScreenLeft or ScreenRight commands. * Startup video mode: 0=current, 1=25lines, 2=28lines, 3=43/50lines [0] : Determines whether QEdit sets an initial video mode upon startup. 0: Use the current video mode 1: Set the monitor to 25-line mode 2: Set the monitor to 28-line mode (VGA only) 3: Set the monitor to 43/50-line mode (EGA = 43, VGA = 50) * Startup attribute set: 0=AutoDetect, 1=Monochrome, 2=Color [0] : Determines whether QEdit uses color or monochrome attributes for the screen display. * Do you want to configure the mono attribute set (Y/N)? [N] : Select 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 if you wish to specify the attributes to use for the color attribute set. (This option is skipped if you select for the previous option.) Enter a number, in response to each option, based on the color in which the number appears on the chart. If you have a monochrome screen, many of the values in the chart will appear to be the same color. However, you still have the options of normal, highlighted, underlined, and reverse video. If you have a color monitor, you can take advantage of a wider array of options. (The default monochrome setting is shown in the text of each prompt message below. The default color setting is shown to the right of the prompt message.) * Attribute for Blocked Text [112]: Default Color Setting: [120] The color used for marked Blocks. * Attribute for Error msgs [112]: Default Color Setting: [15] The color used for warning and error messages. * Attribute for Text Area [7]: Default Color Setting: [27] The color used for normal text (the editing screen). * Attribute for StatusLine [112]: Default Color Setting: [112] The color used for the StatusLine. * Attribute for Cursor Line [15]: Default Color Setting: [30] The color used for the cursor line. Reverts to normal when a Block is marked. * Attribute for Messages [15]: Default Color Setting: [15] The color used for QEdit messages. * Attribute for Hi-lited items [9]: Default Color Setting: [9] The color used for "found" search strings when using the Find and FindReplace commands. * Attribute for EOF line/indicator [15]: Default Color Setting: [15] The color used for the "End of File" line. * Attribute for Help Screen [112]: Default Color Setting: [112] The color used for the Help Screen. * Attribute for display Box Border [15]: Default Color Setting: [31] The color used for the border around the editor, if the editing screen is boxed. * Attribute for PopUp windows [15]: Default Color Setting: [112] The color used for the border around the pull-down menus and the prompt boxes. * Attribute for Menu items [15]: Default Color Setting: [112] The color used for items within sub-menus of the pull-down menu. * Attribute for Selected Menu items [112]: Default Color Setting: [32] The color used for selected items within the pull-down menus. GENERAL OPTIONS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This section contains a list of the General Options which can be customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option. * Do you want the DelCh command to join lines if at EOL (Y/N)? [Y] : Affects the behavior of the DelCh command. Set this option to if you want the DelCh command to be restricted so that it only works on the current line. Set this option to if you want the DelCh command to work across line breaks. This means that if you issue DelCh at the end of the line, the following line is joined to the end of the cursor line (just as if you had issued a JoinLine command). * Do you want PQuit, Exit, and File to return to EditFile prompt (Y/N)? [Y] : If only 1 file is being edited, QEdit can either terminate or ask for another file to edit whenever the PQuit, Exit, or File commands are executed. To have QEdit terminate, select . * Do you want the editor to start in WordWrap mode (Y/N)? [N] : Determines whether WordWrap mode is initially ON or OFF each time QEdit is executed. Set this option to if you want WordWrap mode to be ON each time QEdit is started; otherwise, set it to . Refer to the "Word-Processing Commands" section of Chapter 1 for more information on WordWrap mode. * Default right margin for WordWrap [1..1000] [72] : Indicates the default right margin setting to be used each time QEdit is executed. Set this option to a value from 1 to 1000. Refer to the "Word-Processing Commands" section of Chapter 1 for more information. * Do you want the editor to start in Insert mode (Y/N)? [Y] : Determines whether Insert mode is initially ON or OFF each time QEdit is executed. Set this option to if you want Insert mode to be ON each time QEdit is started; otherwise, set it to . Refer to the "Modes" section of Chapter 1 for more information on Insert mode. * Do you want the editor to start in AutoIndent mode (Y/N)? [Y] : Determines whether AutoIndent mode is initially ON or OFF each time QEdit is executed. Set this option to if you want AutoIndent mode to be ON each time QEdit is started; otherwise, set it to . Refer to the "Modes" section of Chapter 1 for more information on AutoIndent mode. * Do you want the editor to use "sticky" AutoIndent (Y/N)? [N] : Determines whether QEdit searches more than one line backward for a nonblank line to use for autoindenting. Set this option to if you want autoindenting to search back more than one line, if necessary, to find a nonblank line. AutoIndent mode must be set ON for this option to work. Refer to the "Modes" section of Chapter 1 for more information on AutoIndent mode. * Load wildcarded filespecs from the command line (Y/N)? [Y] : Affects QEdit's behavior when filenames are specified containing wildcard characters (* or ?), from the DOS command line. Set this option to if you want QEdit to load every file that matches the wildcarded specification. (For example, if you enter "q *.doc", QEdit loads all files with the extension ".doc"). Set this option to if you want QEdit to display a pull-down menu list of all the files which match the wildcarded specification. (You can then choose the file you want to edit by using the cursor keys to move to the desired file and then pressing .) * Load wildcarded filespecs from inside the editor (Y/N)? [N] : Affects QEdit's behavior when filenames are specified containing wildcard characters (* or ?) within the prompt box for the EditFile command. Set this option to if you want QEdit to load every file that matches the wildcarded specification. (For example, if you enter "*.doc", QEdit loads all files with the extension ".doc"). Set this option to if you want QEdit to display a pull-down menu list of all the files which match the wildcarded specification. (You can then choose the file you want to edit by using the cursor keys to move to the desired file and then pressing .) * Do you want the editor to start in EnterMatching mode (Y/N)? [N] : Determines whether EnterMatching mode is initially ON or OFF each time QEdit is executed. Set this option to if you want EnterMatching mode to be ON each time QEdit is started; otherwise, set it to . Refer to the "Modes" section of Chapter 1 for more information on EnterMatching mode. * Use CMODE for .c, .cpp, .cxx, .h, .hpp, and .hxx files (Y/N)? [Y] : Determines whether C mode is initially ON or OFF each time QEdit is executed. Set this option to if you want C mode to be ON each time QEdit is started; otherwise, set it to . Refer to the "Modes" section of Chapter 1 for more information on C mode. * Default number of deleted lines to keep per file [0..300] [30] : Indicates the number of deleted lines that are saved by QEdit, and can later be recalled using the UnKill command. For every file that is loaded in an editing session, this maximum number of lines is available. Enter a value from 0 to 300. (A value of 0 indicates that no deleted lines are to be saved.) * Remove trailing blanks from edited lines (Y/N)? [Y] : Determines whether QEdit is to remove trailing blanks from each line of text that is edited. Set this option to if you want trailing blanks removed. (For most purposes, this setting is preferable, as it generally results in smaller files.) Set this option to if you want spaces at the end of lines to be preserved. * Terminate files with a Control Z (Y/N)? [N] : Determines whether QEdit is to add a Control Z to the end of a file when it is saved to disk. Set this option to if you want to have a Control Z added to the end of files; otherwise, set this option to . 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 for this option. * Do you want "backups" of saved files (Y/N)? [Y] : Determines whether QEdit is to create a backup file (an image of the file before you did any editing) with the .bak extension each time you save a file. Set this option to to have backups created; otherwise, set this option to . * Prompt for filename on open window (Y/N)? [N] : Affects QEdit's behavior when the HorizontalWindow command is executed. Set this option to to have QEdit prompt for the name of the file you want to load into the new window. Set this option to to have QEdit load the next file in the ring into the new window. (If only one file is loaded, another window containing the same file is opened.) * Close window when a file is quit (Y/N)? [Y] : Affects QEdit's behavior when more than one window is open on the screen and a command is executed that discards a file from the editor. Set this option to to have QEdit close the window containing the discarded file. Set this option to to have QEdit load the next file in the ring into that window. * Display End Of File marker (Y/N)? [Y] : Determines whether QEdit displays an indicator line at the end of the file, in the following format: <*** End of File ***> Set this option to to have the end-of-file indicator line displayed; set this option to if you do not want this line displayed. * Insert line blocks ABOVE the cursor line (Y/N)? [N] : Determines whether QEdit is to insert line Blocks above or below the cursor line when the Paste, CopyBlock, or MoveBlock commands are executed. Set this option to to have line blocks inserted above the cursor line; set this option to to have line blocks inserted below the cursor line. * Do you want a beep on warning messages and missed searches (Y/N)? [Y]: Determines whether QEdit sounds the bell on any QEdit warning message and when there is no match resulting from a Find or FindReplace operation. If you want the bell to sound, select ; otherwise, select . * Default Find options [IWBG] [I]: Indicates the default search options when using the Find command. The available default options are: "I" (Ignore case), "W" (Words only), "B" (Backwards search), and G (Global search). Multiple options can be specified. Note that even when these options are not selected as defaults, they can still be selected from within the editor when the Find command is executed. For more information on the Find command and the available Find options, refer to the "Finding Text" section of Chapter 1. * Default FindReplace options [IWBNG] []: Indicates the default search and replace options when using the FindReplace command. The available default options are: "I" (Ignore case), "W" (Words only), "B" (Backwards search), "N" (No prompting), and G (Global search). Multiple options can be specified. Note that even when these options are not selected as defaults, they can still be selected from within the editor when the FindReplace command is executed. For more information on the FindReplace command and the available FindReplace options, refer to the "Replacing Text" section of Chapter 1. * Should Find and Repeat_Find center the found text (Y/N)? [Y] Affects QEdit's behavior when the Find and RepeatFind commands are executed. Set this option to to have the line containing the found text centered vertically within the current window. Set this option to to have line containing the found text positioned on the same row as the current line. * Default file extension number 1 [.c]: Specifies the first default file extension. See explanation below. * Default file extension number 2 [.pas]: Specifies the second default file extension. See explanation below. * Default file extension number 3 [.inc]: Specifies the third default file extension. See explanation below. * Default file extension number 4 [.asm]: Specifies the fourth default file extension. See explanation below. * Default file extension number 5 [.h]: Specifies the fifth default file extension. See explanation below. * Default file extension number 6 [.doc]: Specifies the sixth default file extension. See explanation below. Six default file extensions are provided to save keystrokes each time a filename to edit is entered. These file extensions are used when QEdit is executed with a filename from the command line or when the EditFile command is entered. If the filename entered does not end with a period (and does not include the DOS wildcard characters) and that file does NOT exist as named, QEdit appends the first default file extension to the name and tries to load that file. If that file exists, then QEdit loads it for editing. If it does not exist, QEdit repeats the process with the other default file extensions. If no matching file is found, then QEdit creates a new file as originally named. For each of the six previous options, enter the desired file extension. * Default to case-insensitive sort (Y/N)? [N] : Indicates the default case-sensitivity selection when the Sort command is executed. Set this option to to have the Sort command ignore the case of characters; set this option to 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 to sort in descending order; set this option to to sort in ascending order. THE HELP SCREEN ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit allows you to create a customized one-page Help Screen, which may be displayed at any time from within the editor by executing the QuickHelp command. This section contains instructions for installing your own Help Screen using the configuration program. Of course, you may prefer to use the default Help Screen which is already loaded into QEdit. In that case no action is required. However, if you want to design and use your own Help Screen, simply follow these steps: 1. Create an 80 x 25 (80 columns by 25 lines) text file (you can use QEdit to create this file) and list all of the information that should appear on the screen when the QuickHelp command is executed. We suggest that you list less frequently used commands in this file, while leaving out more familiar commands such as cursor movement and paging. 2. Run QCONFIG and select option from the configuration menu. 3. At the prompt, enter the name of the Help file just created. That is all there is to it! Now when you execute QuickHelp from within QEdit, your customized Help Screen is displayed. KEYBOARD CONFIGURATION ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit provides the extremely helpful capability of assigning editor commands (as well as strings of characters) to almost any key you prefer. This allows you to assign frequently-used commands to keys which are most convenient for your use, and even to completely reassign commands to emulate another text editor or word processor with which you are already familiar. By taking a few minutes to review this section, your future text editing may become significantly more comfortable as a result of customizing your keyboard to suit your individual preferences. The Keyboard Definition File ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit uses the Keyboard Definition file to customize the keyboard. This file contains a list of all the keys to which commands may be assigned. Supplied with QEdit is a Keyboard Definition file called QCONFIG.DAT which contains the default settings for the keyboard. Other files are supplied which emulate certain common word processors and editors. The READ.ME file contains a list of these other emulations. The Keyboard Definition file consists of a list of configurable keys and the commands or macros which are assigned to them. The configurable keys are on the left side of the file, with the commands or macros assigned to the keys on the right. Blank lines and lines starting with an asterisk "*" are ignored. The QCONFIG.DAT file, as well as Appendix C, contains a complete list of configurable keys. Control keys are specified by a "^". For example: ^f1 or ^F1 specifies Control F1 ^c or ^C specifies Control C Alternate keys are specified by a "@". For example: @c or @C specifies Alt C @PgUp specifies Alt PgUp Shift keys are specified by a "#". For example: #f1 or #F1 specifies Shift F1 The format of a line in the Keyboard Definition file is simply the keystroke followed by the command. For example: f1 QuickHelp #f5 MakeCtrofScreen @f2 InsertLine cursorup CursorUp ^cursorleft WordLeft @a DropAnchor ^a WordLeft ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ The configuration program ignores the case of the key ³ ³ name, and ignores the case of the commands and of any ³ ³ underscores that may be embedded in the commands. This ³ ³ means that PGUP, PgUp, and pgup all refer to the same ³ ³ key, and InsertLine, insert_line, and Insert_Line all ³ ³ refer to the same command. ³ ³ ³ ³ Also, the order of the keys does not matter. The ³ ³ configurable keys may be put in any order desired. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ There is also a provision for assigning commands or macros to a "twokey". A twokey consists of two distinct keystrokes, such as immediately followed by . To assign a command or macro to a twokey, enter both keystrokes of the twokey in the first column (keystroke column) separated by an underline. For example, to assign the Exit command to the twokey, , enter the following into the Keyboard Definition file: ^f1_f2 Exit (Note that if you assign a command or macro to a single key, and then use that same key as the initial key of a twokey sequence, you lose the twokey assignment. For example, if you assign a command to , you would not be able to use a twokey assignment such as .) To allow you to further customize the editor, multiple commands and/or text can be assigned to any configurable key (or twokey). This is accomplished through the use of macros. For more information on creating macros and assigning them to keys, refer to the "Creating Macro Programs" section of Chapter 3, "QEdit Macro Reference." Creating a Keyboard Definition File ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ To customize the keyboard using the default Keyboard Definition file, QCONFIG.DAT, no action is required. QEdit is distributed with this Keyboard Definition file already installed. The following outlines steps to create and install your own Keyboard Definition file. (To customize the keyboard using one of the supplied word-processor or editor emulation Keyboard Definition files, skip to step number 6.) 1. Load the file QCONFIG.DAT into QEdit. (From the DOS command line, type "q qconfig.dat" and press ). 2. Rename the file using the ChangeFilename command . 3. Browse through the file using the Cursor Up and Down keys. Notice that the left side of the file contains a list of all configurable keys. To the right of each key is the command or macro currently assigned to the key. Some keys have no commands assigned. 4. Change the commands assigned to the keys to suit your particular needs. For more information on how to assign keys, refer to the previous section, "The Keyboard Definition File." 5. Save the file and exit QEdit by pressing . 6. Run QCONFIG and select option from the menu. 7. You will be prompted for the name of the Keyboard Definition file. Enter the name of the Keyboard Definition file you wish to load. If you are creating your own file, enter the new name chosen in step 2. 8. Your key assignments are then incorporated into the editor program, Q.EXE, and the configuration menu reappears. 9. Press to save your changes and terminate the program. 10. Run the editor to insure that your key assignments function as desired. PRINTER OPTIONS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This section contains a list of the Printer Options which can be customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option. * Default left margin for printing [0..200] [0]: Indicates the number of spaces QEdit skips before printing each line. If you do not want QEdit to skip any spaces at the beginning of each line, select zero. * Default page size for printing [0..200] [55]: Indicates the number of lines to be printed per page. QEdit sends a formfeed character to the printer after printing this number of lines. If you do NOT want QEdit to send formfeed characters (for continuous printing), select zero. * Add formfeed after printing (Y/N)? [Y] : Determines whether QEdit sends a formfeed character when printing is complete. Select 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 if you do not want a final formfeed character to be sent. * Default top margin for printing [0..200] [0] : Indicates the number of lines to be left blank at the top of each page during printing. * Default bottom margin for printing [0..200] [0] : Indicates the number of lines to be left blank at the bottom of each page during printing. * Include line number at beginning of each printed line (Y/N)? [N] : Determines whether QEdit prints line numbers at the beginning of each line. To include line numbers in the printed output, select ; otherwise, select . * Default line spacing: 1=single, 2=double, etc... [1..200] [1] : Indicates the line spacing to be used when printing. * Should printing pause between pages (Y/N)? [N] : Determines whether QEdit pauses between each printed page. To have QEdit pause between pages, select . (For this option to be effective, the print page size must be non-zero.) If you do not want QEdit to pause between pages, select . * Print Device: 0=PRN, 1=LPT1, 2=LPT2, 3=LPT3 [0..3] [0] : Determines the initial print device. TAB SETTINGS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This section contains a list of all Tab Setting Options which can be customized using the configuration program. The configuration program prompt message, the default value, and a description are given for each option. * Do you want the editor to start in Physical Tab Expansion mode (Y/N)? [Y] : Determines whether Physical Tab Expansion mode is initially ON or OFF each time QEdit is executed. Set this option to if you want Physical Tab Expansion mode to be ON each time QEdit is started; otherwise, set it to . Refer to the "Modes" section of Chapter 1 for more information on Physical Tab Expansion mode. * Do you want the editor to start in Tabs Out mode (Y/N)? [N] : Determines whether Tabs Out mode is initially ON or OFF each time QEdit is executed. Set this option to if you want Tabs Out mode to be ON each time QEdit is started; otherwise, set it to . Refer to the "Modes" section of Chapter 1 for more information on Tabs Out mode. * Default physical tab width [1..12] [8]: Specifies the tab width that QEdit uses when Physical Tab Expansion mode or Tabs Out mode is ON. * Default cursor tab width [1..12] [8]: Specifies the tab width that QEdit uses the TabRt and TabLt commands are executed. * Default file extension number 1 for default tabs [.c]: Physical tab width for above [4]: Cursor tab width for above [4]: Specifies the first default file extension for default tabs. See explanation below. * Default file extension number 2 for default tabs [.pas]: Physical tab width for above [2]: Cursor tab width for above [2]: Specifies the second default file extension for default tabs. See explanation below. * Default file extension number 3 for default tabs [.inc]: Physical tab width for above [2]: Cursor tab width for above [2]: Specifies the third default file extension for default tabs. See explanation below. * Default file extension number 4 for default tabs [.asm]: Physical tab width for above [8]: Cursor tab width for above [8]: Specifies the fourth default file extension for default tabs. See explanation below. * Default file extension number 5 for default tabs [.h]: Physical tab width for above [4]: Cursor tab width for above [4]: Specifies the fifth default file extension for default tabs. See explanation below. * Default file extension number 6 for default tabs [.doc]: Physical tab width for above [8]: Cursor tab width for above [8]: Specifies the sixth default file extension for default tabs. See explanation below. QEdit allows you to set default physical and cursor tab widths for up to six different file extensions. When a file is loaded that matches one of these extensions, the indicated defaults are used. Otherwise, the defaults set in the previous two default tab options are used. For each of the six options, enter the desired file extension and the appropriate physical and cursor tab width values. * Default tab type: 0=Fixed, 1=Smart, 2=Variable [0] : Determines the tab type to use each time QEdit is executed. Select <0>, <1>, or <2>, for Fixed, Smart, or Variable Tabs, respectively. Refer to the "Modes" section of Chapter 1 for more information on the behavior of each tab type. * Default Variable Tap stop columns: [4 8 16 24 40] : Specifies the columns at which Variable Tab stops are to be set. Enter the appropriate column numbers, each separated by a single space. The last column at which you can set a Tab is column 255. A maximum string of 255 characters can be specified. If you press without entering any tabs stops, you are prompted with: Delete all Variable Tab stops (Y/N)? [N] : Select to remove all existing Variable Tab stops. Select to leave the tab stops unchanged. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³CHAPTER 3. QEDIT MACRO REFERENCE ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ To simplify and automate editing tasks and to further customize the editor, you can create macros. A macro is simply a series of commands and/or keystrokes that is assigned to a key. The simplest type of macro to create is a Keyboard Macro. A Keyboard Macro is created by recording a series of keystrokes as they are typed at the keyboard, and assigning that series to a key. For example, if you wish to repeatedly enter a row of asterisks, three Returns, and then a Tab, you could record this series and assign it to a single key, such as . Then, the next time you wish to enter a row of asterisks, three Returns, and a Tab, you only have to press . More powerful macros can be created using the QEdit configuration program (QCONFIG.EXE) and the QMac program (QMAC.EXE). These macros can be permanently tied to QEdit (using the configuration program), or can be loaded as needed (using QMac). Using these facilities, you can extend and customize the capabilities of the editor to suit your needs and preferences. Refer to "Creating Macro Programs" and "QMac" in this chapter for more information. KEYBOARD MACROS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Creating Keyboard Macros ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Once you have decided to assign a series of commands and keystrokes to a single key, creating a Keyboard Macro is simply a matter of entering this series while QEdit "records" the macro. To create a Keyboard Macro, follow these steps: 1. Position the text and cursor to where you wish to begin entering the series of commands and keys. (You may want to practice your series once or twice before actually recording the macro.) 2. Execute the MacroRecord command. An "R" appears on the StatusLine to indicate MacroRecord mode is ON. The following message appears: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Assign to what key: ( for "scrap", to cancel)³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-ÄÄÙ 3. Enter the key to which you want to assign the series of commands and keystrokes. This key must be a "configurable" key (see Appendix C for a list of configurable keys). If a key is specified that has a QEdit command already assigned to it, the editor prompts you to determine if you want to overlay that key assignment. To assign the macro to a "scrap" or temporary area, simply press . The scrap area holds your macro until a new macro is recorded (or you exit the editor). 4. Enter the series of commands and keystrokes to be assigned. Note that the "R" still appears on the StatusLine. 5. Execute the MacroRecord command again. MacroRecord mode is turned OFF, and the "R" no longer appears on the the StatusLine. The macro is now created and assigned to the key specified in step 3. Using Keyboard Macros ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ To use your Keyboard Macro, position the text and cursor properly and press the key to which you assigned the macro (or use the ExecuteScrap command to retrieve the last macro recorded). If the macro does not behave as you expected, repeat the above steps. Your old macro assignment is replaced with the new one. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Be aware of modes, especially Insert mode, when recording ³ ³ and using macros. Macros recorded with Insert mode ON ³ ³ and then used with Insert mode OFF (and vice versa) may ³ ³ behave very strangely. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Saving and Reloading Keyboard Macros ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Normally, macros created using this process are lost once the editor is terminated. QEdit, however, provides an easy method of saving your macros so that they may be reloaded for use in any future editing session. To save macros for future use, you must write them to a Keyboard Macro file. (This file is in a special binary format, recognizable by QEdit, and should not be edited as a normal text file.) The name of this file is specified by the user. To save macros once they have been created, execute the MacroWrite command. QEdit prompts with: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Macro file to write: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Enter the name of the file (optionally including drive and/or path) to contain your macros. All Keyboard Macros currently recorded (and/or loaded) during the editing session are saved under the specified filename. (However, macros assigned only to the scrap area, and not to a specific key, cannot be saved.) In a future editing session, when you wish to reuse your previously defined macros, you need only reload the macro file. To do this, execute the MacroRead command. QEdit prompts with: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Macro file to read: ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Enter the name of the previously saved macro file. Your macros are reloaded. You may then use them in the same manner as before. Example of a Keyboard Macro ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ To create a Keyboard Macro that inserts a formfeed character (ASCII 12) at column one of the current cursor line, do the following: 1. Position the cursor in the text where you would like to insert the formfeed character. Set Insert mode ON. 2. Execute MacroRecord . 3. Press to assign the macro to this key. 4. Press the following series of keys: (for the BegLine command) (for the Literal command) (a formfeed character) 5. Enter MacroRecord . The macro is now created and assigned to the key. Now, when you press , the cursor moves to column one and a formfeed character is inserted, just as if you had typed it from the keyboard. CREATING MACRO PROGRAMS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ As mentioned in Chapter 2, "Customizing QEdit", the QEdit configuration program (QCONFIG) allows you to assign multiple commands and/or text to a key (or twokey). With this facility, you can easily write simple programs using QEdit's macro language. These macros are included in the Keyboard Definition file (QCONFIG.DAT), and then added to the editor program itself using the configuration program. Each time the editor is loaded, these macros are automatically available. For more information on including macros in the Keyboard Definition file, refer to the "Keyboard Configuration" section of Chapter 2. To write a macro program, begin by editing your Keyboard Definition file (QCONFIG.DAT, by default). Locate the key to which you wish to assign your macro program. To the right of that key, specify MacroBegin as the first command, followed by any combination of text strings and QEdit commands, each separated by a space. Text should be enclosed in single or double quotes. Once the macro is written, save your Keyboard Definition file and exit the editor. Then execute the configuration program (QCONFIG). Select the "Keys" option to update the QEdit program. This assigns your macro program to the specified key. Now when you run QEdit, you can execute your own custom macros by pressing the applicable key. Note: The amount of space that is available for macros included in the Keyboard Definition file is limited to about 2K. * Example: f1 MacroBegin EditFile 'help.dat' Return Press and this macro loads the file "help.dat". Note that the Return command is issued after the text. This is required to terminate the QEdit prompt issued by the preceding EditFile command. * Example: @t MacroBegin GSave Dos 'tpc ' CurrentFilename Return Press and this macro saves all files that have been changed, and then invokes the TURBO PASCAL compiler using the current file. (Note: There must be a space included within the quotes immediately following "tpc".) * Example: @f1 MacroBegin EditFile 'errors.lst' Return Quit Dos 'tcc ' CurrentFilename ' >errors.lst' Return Return HorizontalWindow EditFile 'errors.lst' Return Press and this macro runs the TURBO C compiler on the current file, saves the results to a file called "errors.lst", and then loads that file into another window after the compile is finished. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Macros can span multiple lines, as long as 2 simple rules ³ ³ are followed: the key name must begin in column 1, and ³ ³ all succeeding lines must begin in column 2 or greater. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ In general, any commonly used sequence of commands (or a useful but complicated sequence of commands, for that matter) is a good candidate for a macro. We have received many helpful macro suggestions from QEdit users over the years. Here is a short list of some of the more useful (and simple) macros. * A very useful QEdit command, GetPrev, copies a character from the line immediately above the cursor line, onto the cursor line. Often it is necessary to copy this character to several succeeding lines in the same column. The GetPrev command, used in a macro, makes this function easy. Assign this macro to the key (for example) in QCONFIG.DAT as follows: @4 MacroBegin GetPrev CursorLeft CursorDown * QEdit's AddLine and DelLine commands do not change the cursor position. Many would prefer that the cursor move to column one when these commands are executed. A solution is to change the QCONFIG.DAT file as follows: Default QCONFIG.DAT file: f2 AddLine ^y DelLine Customized QCONFIG.DAT file: f2 MacroBegin AddLine BegLine ^y MacroBegin DelLine BegLine * QEdit's CopyBlock and MoveBlock commands leave the copied or moved Block marked. Many would prefer the Block to be unmarked. A solution is to change the QCONFIG.DAT file as follows: Default QCONFIG.DAT file: @c CopyBlock @m MoveBlock Customized QCONFIG.DAT file: @c MacroBegin CopyBlock UnmarkBlock @m MacroBegin MoveBlock UnmarkBlock * QEdit's DropAnchor command ends or extends a Block if executed after a Block has been initially or entirely marked. Some editors have a similar command, except that it acts as a toggle. That is, if you are already marking a Block, and you press DropAnchor again, the Block is unmarked and marking begins again at the current cursor position. To implement this behavior, change the QCONFIG.DAT file as follows: Default QCONFIG.DAT file: @a DropAnchor Customized QCONFIG.DAT file: @a MacroBegin UnmarkBlock DropAnchor * This macro allows you to edit a sorted list of files of the current directory. Assign this macro to the key (for example) in QCONFIG.DAT as follows: @5 MacroBegin Dos "dir *.* ³ sort>filedir.tmp" Return Return EditFile "filedir.tmp" Return DelLine DelLine DelLine DelLine Advanced Macro Programming ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The following commands and features are intended for advanced QEdit macro writers, to make certain kinds of macros easier to write. In the examples provided, the key assignments indicated are suggested assignments only; you can assign each macro to the key of your choice. Advanced Macro Programming Macro Pause ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The Pause command allows you to suspend execution of a macro, make entries from the keyboard, and then continue execution of the macro. To use the Pause command, place "Pause" at the appropriate position within a macro in the QCONFIG.DAT file. When you execute a macro containing a Pause command from within QEdit, its execution is suspended when the Pause command is encountered. A "P" appears on the StatusLine. At this point the User can enter text from the keyboard. Press to resume execution of the macro; press to terminate execution of the suspended macro entirely. Please note that the key entered from the keyboard to resume execution of a suspended macro is "eaten" by the Pause command; or, in other words, that does not become part of the macro. * For example, suppose you want to create a "find" command that always searches forward, ignores case, and does not prompt for options. In the QCONFIG.DAT file, assign to whatever key you desire ( in this example): f7 MacroBegin Find Pause Return 'i' Return If you want to get really fancy, you could let be your find-forward, and be your find-backward: #f7 MacroBegin Find Pause Return 'ib' Return Advanced Macro Programming Using Paste within a Macro ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ It can be handy to use the Paste command in a macro. Following are some examples of macros using the Paste command. * With the FillBlock command, you can use the following macro to move a Block, and blank fill the space used by the Block, instead of the text closing in around the Block. The macro assumes a Block is already marked. The Block is Cut to the clipboard or system scrap buffer. You can then insert the Block where you like by pressing the Paste key . You now have a "copy with wipe" command! f10 MacroBegin GotoBlockBeg Cut Paste FillBlock ' ' Return UnmarkBlock * A macro to take the filename at the current cursor position and load that file into the editor (assigned by default in QEdit to .): ^] MacroBegin AltWordSet MarkWord Copy EditFile Paste Return DefaultWordSet This macro does the following: AltWordSet - sets the proper word set for filenames MarkWord - marks the filename at the current cursor position Copy - copies the filename into the scrap buffer EditFile - initiates the EditFile command Paste - inserts the copied filename into the prompt box Return - terminates the EditFile prompt DefaultWordSet - restores the normal word set * A macro to initiate a Find on the word at the current cursor position (assigned by default in QEdit to .): @= MacroBegin MarkWord Copy Find Paste Return Return This macro does the following: MarkWord - marks the word at the current cursor position Copy - copies the word into the scrap buffer Find - initiates the Find command Paste - inserts the copied word into the prompt box Return - terminates the search string prompt box Return - terminates the Find options prompt box Advanced Macro Programming Repeating a Command within a Macro ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Within macros, in order to repeat the previous command "n" times, the following syntax can be used: command n Where "n" is a number between 1 and 32767. The immediately preceding command is executed the number of times indicated. So, for example: CursorDown 1 Would move the cursor down one line (and is equivalent to just CursorDown by itself). CursorDown 10 Would move the cursor down ten lines. Advanced Macro Programming Conditional Logic for Macros ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Several commands are available for conditional logic within macros: Jump, JTrue, JFalse, MacroQuit, MacroQuitFalse, and MacroQuitTrue. Placement of one of these commands in a macro following another QEdit command allows for branching or looping during macro execution. All QEdit commands set an internal QEdit result code of TRUE upon successful execution, or FALSE if execution is unsuccessful or no action occurs. These result codes can be used to determine different courses of action during execution of a macro, based on the outcome of a particular command. The Jump command makes an unconditional jump, regardless of the outcome of the preceding command. The JTrue command makes a jump only when a result code of TRUE is returned; JFalse makes a jump only for a result code of FALSE. The MacroQuit command unconditionally terminates a macro. The MacroQuitTrue command terminates a macro only when a result code of TRUE is returned; MacroQuitFalse terminate a macro only if a result code of FALSE is returned. Labels can be defined for branching, in the format "label:". The maximum label length is 32 characters. For example, here is a macro to delete the text from the cursor position to the beginning of the line (assigned to the f10 key): f10 MacroBegin begin: CursorLeft MacroQuitFalse DelCh Jump begin: Advanced Macro Programming Special-Purpose Macro Commands ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This group of macro commands force the indicated mode or setting. If the setting was already in that condition, they set QEdit's result code to FALSE; otherwise, they set it to TRUE. In many cases, macros can behave differently based on the currently set QEdit modes. The following 3 commands give you some control in establishing the proper environment so that your macro always works as intended. * SetInsMode Sets Insert mode ON. To set Insert mode OFF (that is, set overwrite mode ON), do the following: SetInsMode ToggleInsert * SetAutoIndentMode Sets AutoIndent mode ON. To set AutoIndent mode OFF, do the following: SetAutoIndentMode ToggleIndent * SetWordWrapMode Sets WordWrap mode ON. To set WordWrap mode OFF, do the following: SetWordWrapMode ToggleWordWrap The Find command sounds a tone when the search string cannot be found. This may be undesirable in a long-running macro, that may possibly execute hundreds of find operations that fail. The following commands allow you to selectively turn the sound ON and OFF. * SetSoundOn Sets sound ON. * SetSoundOff Sets sound OFF. Most macros execute dozens of QEdit commands, possibly hundreds of times. This can cause the screen to flash rapidly as the macro runs. Not only is this somewhat disconcerting to watch, it actually slows down the speed of some macros. The following commands allow you to temporarily suspend or resume screen updating, while a macro is running. * SetScreenOn Turns screen updating ON. * SetScreenOff Turns screen updating OFF. You must turn screen updating back ON before your macro prompts for input, or if there is some output from the macro that you want displayed on the screen. NOTE: QEdit AUTOMATICALLY turns screen updating back ON when the macro is finished executing. Thus, it is not necessary to issue the SetScreenOn command at the end of the macro. Many times, it would be nice for a macro to force a few settings, do its assigned task, and then restore the original settings. The following commands allow you to do just that. Note that each time SaveSettings is executed, the previous settings saved with SaveSettings are overwritten. * SaveSettings Saves the current settings of: Insert, AutoIndent, WordWrap, Sound, and Screen Updating. * RestoreSettings Restores the saved settings for the settings indicated in SaveSettings. The following commands set QEdit's result code to TRUE or FALSE based on the condition being tested. These commands make certain types of macro tests easy and reliable. * isBegLine Returns TRUE if the cursor is at column 1; otherwise, FALSE is returned. * isCurrChar Returns TRUE if the character at the cursor position in the file is the same as that specified by the character immediately following the isCurrChar command. * isEndLine Returns TRUE if the cursor is past the last non-white character on the current line; otherwise, FALSE is returned (including when the cursor is on an empty line). * isEmptyLine Returns TRUE if the current line is empty or contains only white space; otherwise, FALSE is returned. * isLastLine Returns TRUE if the cursor is on the last line of the currently edited file; otherwise, FALSE is returned. * isFirstLine Returns TRUE if the cursor is on the first line of the currently edited file; otherwise, FALSE is returned. * isCursorInBlock Returns TRUE if the cursor is inside a marked Block; otherwise, FALSE is returned. In order to tie a few of these concepts together, we present a simple macro to delete all the blank lines in a marked Block. The cursor should be at the beginning of the Block when the macro is invoked. #f9 MacroBegin SetScreenOff * turn off screen for speed begin: isCursorInBlock MacroQuitFalse * exit if not in Block isEmptyLine JFalse next: * skip if not empty line isLastLine JTrue last: * special handling for last line DelLine Jump begin: * delete empty lines next: CursorDown JTrue begin: * try next line MacroQuit * last: DelLine * delete the last line * that's all, folks! Advanced Macro Programming The Main Macro ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit has a provision for a special-purpose macro that is automatically executed at editor startup. In a Keyboard Definition file, assigning a macro to the key "main" causes that macro to be executed whenever the editor is initially invoked. * Example: main MacroBegin MacroRead "c:\qedit\mymacs.qed" Return This causes a macro file named "mymacs.qed" to be loaded into the editor, every time the editor is started. (Note that the "key" the macro is assigned to is "main".) QMAC ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QMac is a translator for QEdit macros. It translates QEdit Keyboard Macros from the binary format in which QEdit saves them, to a text format that allows easy macro editing, and then translates the text format back into the QEdit binary format. It also allows you to directly create external macros in text format, and then translate those macros to binary format so they can be loaded, as desired, into the editor. By using QMac with Keyboard Macros, you can create a Keyboard Macro using QEdit; fine-tune it by editing the text representation of the macro created by QMac; and then translate the edited version back to binary format so that the macro can be loaded into QEdit for execution. You may even wish to use the text format created by QMac to import a Keyboard Macro into your Keyboard Definition file. This provides the advantage of adding a macro directly to the editor program itself, so that it does not have to be loaded each time the editor is executed. (Contrast this to Keyboard Macros, which must be loaded each time the editor is started in order to be executed.) QMac offers additional advantages of increased macro space and enhanced configurability. * Macro space for built-in macros is limited to 2K. Built-in macros are those that are included in the Keyboard Definition file and added to the editor using the configuration program. Loadable macros, however, can be as large as 4K. Loadable macros are those created as Keyboard Macros and saved to a binary macro file, as well as macros modified or created with QMac. (The 4K limit applies to the size of the binary macro file, which can contain one or more loadable macros.) * Using loadable macros (rather than built-in macros), you can effectively create different versions of the editor for different tasks. For example, if you want to control the behavior of certain keystrokes according to the directory you are in, you can use QMac to create a different macro file for each set of affected keys. You may wish to have the function keys set up to behave in a certain manner when you are writing letters, another way when you are writing xBase programs, and yet another way when you are writing DOS BATCH files. The appropriate macro file could be added to each directory, and then loaded when the editor is started from a particular directory. QMac allows appending to or overwriting existing macro files, making it easy to add new macros to existing macro files. And QMac's text file format allows comments, permitting documentation of the macros within their "source file." Using QMac: An Overview ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Here is an overview of how to use QMac, including recording a sample Keyboard Macro, saving it to a file, and converting it with QMac. The keystrokes mentioned below assume you are using the default QCONFIG.DAT supplied with QEdit; if you have re-installed your keyboard using the configuration program, modify as needed. First, record a Keyboard Macro to search for the string "the". In the example, we assign the macro to . 1. Execute the MacroRecord command. 2. At the prompt, "Assign to what key:", press . 3. Press to execute the Find command. Type "the" and press . Type "IW" and press again. 4. Execute the MacroRecord command again to end the macro. Next, save the macro to a macro file named FIND.MAC: 1. Execute the MacroWrite command. 2. At the prompt, "Macro file to write:", type "find.mac" and press . Now, use QMac to convert the macro to text for editing: 1. Execute the Dos command and type: qmac find.mac find.txt /a- /t Press . The file FIND.MAC is converted to a text format in the file FIND.TXT. (The /t option selects text output). 2. Execute the EditFile command to load the newly-created text output file into QEdit. At the prompt, "File(s) to edit:", type "find.txt" and press . Text similar to the following is displayed: * * Converted by QMAC from: C:\FIND.MAC * ^f10 MacroBegin Find "the" Return "IW" Return This is the text representation of the keystrokes recorded in the previous steps. 3. Make any necessary changes to the macro. For example, change the word "the" to "and". Then execute the File command to save the file. Next, convert the macro from text back to binary: 1. Execute the Dos command and type: qmac find.mac find.txt /a- /b Press . The file FIND.TXT is converted back to its binary form in the file FIND.MAC. (The /b option instructs QMac to create the binary file from the specified text file specified. Finally, reload the modified macro file into QEdit for execution: 1. Execute the MacroRead command. 2. At the prompt, "Macro file to read:", type "find.mac" and press . 3. Press to execute your new macro. QEdit searches for the word "and" (instead of "the"). As this example illustrates, you can use QMac to convert macro files in two directions: from a human-readable text format to the binary format that QEdit uses, and vice versa. Executing QMac ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ To display a summary of QMac's required format and options, type the following at the DOS prompt: qmac ? and press . The following appears on the screen: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ QMAC: QEdit Macro Program v3.0 ³ ³ Copyright 1989-1993 by SemWare Corp. All rights reserved worldwide. ³ ³ ³ ³ QMAC macfile txtfile [ /B ³ /T ] [ /A ³ /A- ] ³ ³ ³ ³ macfile Filename of binary macro file ³ ³ txtfile Filename of macro text file ³ ³ /B Binary output: Create macfile from txtfile ³ ³ /T Text output: Create txtfile from macfile ³ ³ /A Append mode: Append output to existing file ³ ³ /A- Do not append output to existing file ³ ³ ³ ³ QMAC will prompt for filenames if not specified. ³ ³ See manual for additional command-line options. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-ÄÄÙ The "macfile" parameter is the name (including directory, if needed) of a QEdit binary macro file, such as one created by using MacroWrite from inside QEdit. The "txtfile" parameter is the name of a text file that contains a human-readable text representation of the macros in a macro file. The "macfile" and "txtfile" parameters are required. If not specified on the command line, QMac prompts for these parameters. When executed, QMac creates whichever of the two file formats does not already exist. That is, if the text macro file ("txtfile") already exists, QMac converts this file to binary and creates the binary file ("macfile"); if the binary macro file ("macfile") already exists, QMac converts this file to text format and creates the text macro file ("txtfile"). However, if both files exist, you must supply either the /B or the /T switch to indicate the direction of conversion. The /B switch instructs instructs QMac to create a binary file; the /T switch instructs QMac to create a text file. If the output file already exists, you must also specify the /A switch to indicate whether QMac should append to the existing macro file. Specify /A+ to append to the file; specify /A- to overwrite the file. If this parameter is required but was not specified on the command line, QMac prompts for it. All of the switches other than /B, /T, and /A have default values. These need to be specified only if you want to select a value different than the default value. The switches /C, /U, /M, /Q, /I, and /W affect QMac's operation only when QMac is converting from binary to text format. The /E switch affects QMac's operation only when QMac is converting from text to binary format. (Information about these switches is provided later in this chapter.) When executed, QMac prompts for any required parameters that are not supplied at the DOS prompt, so you can just type: qmac with no parameters. QMac then prompts you for information. (Of course, for command-line switches that are not specified, the default values, if applicable, are used.) To halt QMac, press without typing a response at any QMac prompt. The parameters accepted by QMac can be entered in any order on the DOS command line. If a switch appears more than once, or if conflicting switches are specified, the rightmost switch takes precedence. Writing Macro Text ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Macros are created in a macro file. A macro file can contain multiple macros. The text format which QMac uses for macros is similar to that used within the Keyboard Definition file (QCONFIG.DAT): The format is: key [ MacroBegin ] [ Command... ] [ & ] [ "string" ] [ xxx ] [ * comment ] .... The "key" name must start in column 1 of a line, and must be a single key (no twokeys allowed). It can be either the name of a key that QEdit recognizes (such as "^pgup" for ""), or the numeric scan code for a key. Capitalization of key names is not significant. However, the underscore ("_") character may NOT be used inside key names. By using the numeric scan code, you can assign macros to special keys that do not exist on your keyboard, but which are generated by a keyboard enhancer program. You can also accommodate non-standard keyboards on some clone PCs that have unusual keys. A macro optionally begins with the command "MacroBegin", but this is not required in this version of QMac. Next, the macro can contain any number of QEdit commands, such as "CursorRight", "EditFile", etc. For example, a macro (assigned to ) to make the cursor jump to the very first character on the last line of the current file is: @f2 MacroBegin EndFile BegLine Note: If a macro contains only the command "UnknownCommand", then that key has no action at all in QEdit. You might use this to "disable" certain keys in QEdit at certain times. In order to re-enable the keys, you must either load another macro file with those keys defined, or re-start QEdit. You may include any number of blank or tab characters between commands in a macro. Capitalization of command names is not significant, and QMac ignores the underscore ("_") character when used inside command names. Thus, any of the following are equivalent: ^f2 macro_begin beg_file un_mark_block ^f2 MaCrO_BeGiN BeGFiLe Un_MaRk_Block ^f2 MACROBEGIN BEG_file UNMARKBLOCK Along with commands, macros can contain quoted strings of text. These strings are "typed" when the macro is executed, just as if you typed them from the keyboard. Quoted strings can be surrounded by either single- or double-quote characters. If you need to embed a quote mark in a string, either use the other quote mark to surround the string, or double up the quote mark in the string. For example: 'This is a double quote: " within a string' or "This is a double quote: "" within a string" would enter the following string in the macro: This is a double quote: " within a string Quoted strings can be used to enter text in the file you are editing, or to answer prompts or menus presented by QEdit. For other ASCII characters that are difficult to enter, you can include the decimal code directly in the macro. For instance, to include a literal formfeed character in a macro, you could enter: "This is a form feed: " #12 The "12" would be translated to an ASCII 12, or formfeed, in the macro. You can use this method to enter any ASCII code form 0 to 255. The pound sign ("#") must be entered. The ASCII number IS NOT enclosed in quotes. Labels can also be included in a macro, to allow you to jump to a particular point in a macro, using the various "jump" commands. (For more information, refer to "Conditional Logic for Macros" presented earlier in this chapter.) To use a label, place it before the command to which you wish to jump. To identify a label, you must include a colon ":" as the last character of the label name. For label names, capitalization is not significant. Underscores can be used inside label names; however, they are considered a significant part of the name. So the following labels: My_First_Label: MyFirstLabel: are DIFFERENT. Comments can also be included within a macro. To identify a comment, precede the comment with an asterisk ("*"). Anywhere an asterisk ("*") appears on a line outside a quoted string, the rest of the line (to the right of the asterisk) is treated as a comment and is ignored by QMac. You can use this to include notes within a macro about the macro's operation. Comments are not included in the binary macro file that QEdit loads, so there is no space penalty for including them in your text macro files. QMac ignores any blank lines or lines that start with a comment ("*") indicator, so you can readily include these within or between your macros as needed. A macro can continue onto multiple lines. Simply indent the second and subsequent lines of the macro by one or more spaces. The macro continues until the end of the text, or until QMac encounters another key at the beginning of a subsequent line. An alternate method for continuing a macro onto multiple lines is to include an ampersand ("&") as the very last character of the preceding line. If a line ends with "&", the line that immediately follows is considered part of the macro. (Note, however, that if you use this method for continuation of macros, it is difficult to properly reformat the macro, when necessary, with QEdit.) Lines in your text macro files can be up to 1000 characters long. A text macro file may contain an arbitrary number of key definitions (that is, an arbitrary number of macros). QMac does not check the number or size of macros when creating a binary macro file from a text file, because the limits on size and number may change from version to version of QEdit. However, it does make a rudimentary check on total size to be sure that the current version of QEdit will be able to load the macro file. Converting Macro Binary Format to Text Format ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ When creating a text file from a binary macro file, QMac writes macros in the same format as described in the previous section. Literal ASCII characters whose decimal codes are between 0 and 31 inclusive (the "control codes") are written to the text macro in decimal form, preceded by "#". All other quoted characters are written as is. When interpreting macros containing jump commands, the original names of the labels for the jumps are no longer available. So QMac manufactures labels of the form "Labelxxx", where "xxx" is a sequential number beginning with zero. For example, if you compile the following macro to binary form with QMac: * Delete from the current line to the end of the file ^f10 MacroBegin REPEATIT: DelLine JTrue REPEATIT and then convert it back to text, it will look something like this: ^f10 MacroBegin Label0: DelLine JTrue Label0: QMac generates a separate numbered label for every Jump, JTrue, or JFalse command in the macro. (This results in multiple labels at the same place in a macro whenever that place in the macro is referenced by multiple "jump" commands.) QMac provides several command-line switches to affect the formatting of text macros, described below. You can control capitalization, use of underscores, indenting, word wrapping, and use of ampersands. None of these controls has any effect on QMac when it is reading text macro file(s), only when it is writing them. The /C switch controls the use of the "continuation" character, which is the ampersand ("&"). The default value is /C-, which instructs QMac to use the convention of indenting continuation lines, rather than writing the continuation character ("&") on the end of lines that are continued. If you prefer the ampersand syntax, you can specify /C+ on the command line to turn this option ON. The /Q switch indicates to QMac your preferred quote mark to be used around quoted strings. The default is /Q+, which instructs QMac to use a double quote mark ("""). To select the single quote mark ("'") for use around quoted strings, specify /Q-. The /M switch indicates whether you wish to use mixed case in command names. The default is /M+, which causes the QEdit command names to appear as they are normally listed in this manual (example: ToggleEGA43). Specify /M- to generate all lower-case names. (Note: Key names are always written in all lower case.) The /U switch controls whether QMac includes underscores ("_") in command names. The default is /U-, which means no underscores are written. When /U+ is specified, QMac inserts an underscore before each capitalized letter within a command (as they are normally capitalized in this manual). Here is a summary of how commands look with the different combinations of /M and /U: /M+ /U- (default) MacroBegin BegLine ToggleEGA43 /M+ /U+ Macro_Begin Beg_Line Toggle_EGA_43 /M- /U- macrobegin begline toggleega43 /M- /U+ macro_begin beg_line toggle_ega_43 The /I switch controls how far QMac indents commands from the left margin. To specify the indentation amount, immediately follow /I with the decimal number of the column in which the text of macros (other than the assigned key name) is to begin on each line. The default is /I9, which indicates column 9. The /W switch indicates to QMac your desired right margin, used to wrap multi-line macros. To specify the right margin, immediately follow /W with the decimal number of the column in which the text of macros is to be wrapped, when necessary. The default is /W80, which indicates column 80. STARTUP MACROS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit offers a feature that allows you to load and/or execute macros from the DOS command line. To load a macro from the DOS command line, type "-l" (this is a dash character and the letter "l") immediately followed by a macro filename when you execute QEdit. For example, from the DOS prompt type: q -l To execute a macro from the DOS command line, type "-e" immediately followed by a macro filename when you execute QEdit. QEdit then automatically executes the first macro in the macro file after the file to be edited has been loaded. For example, from the DOS prompt type: q -e Following are additional notes about the use of Startup macros. * The macro file to be loaded and/or executed must be created using either the MacroWrite command or QMac. * A macro file to be executed (-e) is limited to a maximum size of 500 bytes. * A "/" character can be used instead of the "-" character, as "/l" and "/e". * You MUST supply a filename to be edited on the DOS command line to use this feature. * When using the execute ("-e") option, only the first macro in the macro file is executed. This macro is executed only after the file to be edited has been loaded. * You can load one macro and execute another macro at the same time. For example, from the DOS prompt: q -e -l Following is an example of using Startup macros. Suppose you have created two macro files, called first.mac and second.mac. Now you want to load a file for editing called work.tmp, and at the same time, load the macro file called first.mac and execute the macro file called second.mac. From the DOS command line, enter: q work.tmp -lfirst.mac -esecond.mac ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³CHAPTER 4. QEDIT COMMAND REFERENCE ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ This chapter contains a description of each of the QEdit commands. Where applicable, the default key assignments are provided. Additionally, 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 or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Adds a blank line after the cursor line, placing the cursor on the newly created line. The cursor column does not change. Align ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Aligns the text on the cursor line with the text on the line immediately before the cursor line and then positions the cursor on the next line. The cursor column does not change. If the cursor is on line one, or the previous line is blank, or the cursor line is blank, this command simply moves the cursor to the next line. Align searches backwards up to 100 lines for a line containing text to align with. AltWordSet ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Instructs QEdit to recognize an expanded set of characters as "word" characters. The default word set contains the following characters: 0 through 9, upper and lower case A through Z, and the underline character. The AltWordSet command causes additional characters to be considered "word" characters. These additional characters are: ! # $ % & ` ' ( ) - . / \ @ { } ~ : ^ The AltWordSet command affects the operation of these commands: DelLtWord DelRtWord MarkWord WordLeft WordRight The default word set can be re-installed by executing the DefaultWordSet command. AppendScrbuff ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Appends the currently marked Block to the end of the named Scratch Buffer. The existing contents of the named Scratch Buffer are not lost. If the named Scratch Buffer does not exist, a new Scratch Buffer is created. AsciiChart ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Displays a scrollable ASCII chart on the screen. Press to have the selected character inserted into the text at the current cursor position. 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at column one on the first line of the current file. BegLine ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at column one of the current cursor line. BegScreen ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at the top line of the current window. The cursor column does not change. CenterLine ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Centers the current cursor line based on column 1 and the right margin. Use the SetRmargin 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 or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Changes the name of the current file. QEdit prompts for the new name. If the file already exists, you are required to confirm that you still want to rename the file. The current file is marked as being a changed file. (An asterisk appears on the StatusLine preceding the filename.) This command has no effect on disk files, until the renamed file is saved. CloseWindow or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Closes the current window, unless it is the only window which is open, in which case the command has no effect. Copy ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Copies the marked Block into the Scrap Buffer. The Block is then unmarked. If no Block is marked, the cursor line is copied into the Scrap Buffer. The copying of the cursor line, when a Block is not marked, is configurable. Refer to the "Advanced Options" section of Chapter 2 for more information. CopyBlock or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Copies the marked Block to the cursor position. If the Block is a character Block (created using the DropAnchor, MarkCharacter, or MarkBlockBegin/End commands) 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Copies the currently marked column Block and places it at the current cursor position by overlaying existing text and without shifting text to the right. This command only works with column Blocks. The Block remains marked. Blocks may be "copied over" from one file to another. CurrentFilename ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Returns the name of the currently edited file, as if it had been typed at the keyboard. This command is useful for manipulation of files from within macros. CursorDown ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Moves the cursor downward in the file to the next line. CursorLeft ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Moves the cursor one character to the left. When the cursor reaches the left edge of the screen, it stops, unless the text has been scrolled left, in which case the text scrolls right one position. CursorRight ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Moves the cursor one character to the right. When the cursor reaches the right end of the screen, the text starts scrolling left until the cursor reaches the maximum line length. CursorUp ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Moves the cursor upward in the file to the previous line. Cut ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Copies the marked Block into the Scrap Buffer. The Block is then deleted from the file being edited. If no Block is marked, the cursor line is cut into the Scrap Buffer. The cutting of the cursor line, when a Block is not marked, is configurable. Refer to the "Advanced Options" section of Chapter 2 for more information. DefaultWordSet ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Re-installs the default word set. Refer to the AltWordSet command for more information about word sets. DelCh ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Deletes the character at the current cursor position. The line to the right of the cursor shifts left one position. If the cursor position is past the last character on the line, the next line is appended to the cursor line. The "joining" of the next line when the cursor is past the last character on the line is configurable. Refer to the "General Options" section of Chapter 2 for more information. DeleteBlock or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Deletes the currently marked character or line Block. If there is not a Block marked in the current file, this command has no effect. DelLine or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Deletes the cursor line. The line following the cursor line becomes the new cursor line. DelLtWord ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Deletes the "word" to the left of the cursor. If the cursor is in column one, the cursor line is appended to the end of the preceding line. DelRtWord ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Deletes the "word" to the right of the cursor. If the cursor position is past the last character on the line, the next line is appended to the cursor line. DelScrbuff ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Deletes the requested Scratch Buffer. The editor prompts for the name of the Scratch Buffer to be deleted. Press 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 . DelToEol or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Deletes text on the cursor line, from the cursor position to the end of line. Dos ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ QEdit prompts for a command, which is passed to DOS for execution. After the command is executed by DOS, control is returned to QEdit. If you want to execute a series of commands in DOS, you should use the Shell command, described later in this chapter. ÚQEdit Tip:ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ You should NOT execute any TSR (terminate and stay ³ ³ resident) programs from QEdit's Dos command. This ³ ³ includes the DOS print and graph commands, and memory ³ ³ resident programs such as Sidekick and Superkey. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ DropAnchor ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is used to mark a character Block. Initially executing this command 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Makes a copy of the current cursor line and inserts the copy immediately following the cursor line. The cursor is moved to the new line. EditFile or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The editor prompts for the name(s) of the additional file(s) to be edited. Wildcard characters (* or ?) are permissible, as are multiple filenames. The editor does not load multiple copies of the same file. If you issue the EditFile command using the name of a file that has already been loaded, QEdit simply makes that file the current file. EndFile ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor on the last line of the file immediately following the last non-blank character. If the last line of the file is blank, the cursor is positioned in column one. EndLine ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor immediately following the last non-blank character on the cursor line. EndPara ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor immediately following the last nonblank character of the current paragraph. EndScreen ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The cursor is positioned on the last line of the current window. The cursor column does not change. Escape ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If executed while editing, the pull-down menus are displayed. Otherwise, this command terminates any editor prompt. ExecuteScrap or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Plays back the latest macro that was created using the MacroRecord command. Exit ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Conditionally discards the current file. If the file has not been modified, the file is discarded without prompting. If the file has been modified, the editor prompts with: ÚÄSave changes?ÄÄ¿ ³#Yes############³ ³ No ³ ³ Cancel ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Press to save and then discard the file. Press to discard the file without saving any changes. Press or to halt the command and return control back to the editor, without saving or quitting the file. QEdit can be configured, when only a single file is being edited and the Exit command is issued, to either terminate or prompt for another file to edit. Refer to the "General Options" section of Chapter 2 for more information. File or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Saves and then discards the current file. QEdit can be configured, when only a single file is being edited and the File command is issued, to either terminate or prompt for another file to edit. Refer to the "General Options" section of Chapter 2 for more information. FillBlock or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Fills an entire marked Block with any ASCII character. You are prompted to enter the desired character. FillBlock is recommended for use with column and word Blocks, only because it fills other type Blocks with characters beyond column 80. Find or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Searches for a specified string of characters within the current file. The User is prompted for a search string and search options. Available search options are: [B] Search backwards from the current cursor position. [G] Global search. Begin searching from the beginning of the file (or marked Block, if the L option is also selected.) [L] Local search. Limit the search to the marked Block. [I] Ignore the case of the search string. [W] Search for whole words only. FindReplace or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Searches and replaces strings within the current file. The User is prompted for a search string, a replace string, and options. Available options are: [B] Search backwards from the current cursor position. [G] Global search and replace. Begin searching from the beginning of the file (or marked Block, if the L option is also selected.) [L] Local search and replace. Limit the search to the marked Block. [I] Ignore the case of the search string. [W] Search for whole words only. [N] Find and replace without prompting. At every occurrence of the search string in the file, the User is given the following replace options: [Y] Replace the search string with the replace string and continue on to the next occurrence of the search string. [N] Do not make any changes but continue on to the next occurrence of the search string. [O] Replace the search string with the replace string and then terminate the FindReplace process. [R] Replace the search string with the replace string for this and the rest of the occurrences throughout the file without any further prompting. [Q] Terminate the FindReplace process. You can press to halt a global FindReplace. FirstNonWhite ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Intended as a replacement and/or supplement to the BegLine command. Places the cursor at the first non-white character on the line, or column 1 if the line does not have any non-white characters. "White" characters are tabs or spaces. A useful macro would be: Home MacroBegin BegLine MacroQuitTrue FirstNonWhite (Explanation: If already at the beginning of a line, go to the first non-white character on the line; otherwise, if not already at the beginning of a line, go to the beginning of the line. Flip ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Duplicates the character immediately above the cursor at the cursor position. GetScrbuff ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Inserts the contents of the named Scratch Buffer at the cursor position. Refer to the "Block Commands" section of Chapter 1 for more information. GExit or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Issues the Exit command for all files that have been loaded. If no files have been modified, this command immediately terminates the editor and returns control to DOS. If any files have been modified, you are prompted with the following menu for each modified file: ÚÄSave changes?ÄÄ¿ ³#Yes############³ ³ No ³ ³ Cancel ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Press to save and then discard the file. Press to discard the file without saving any changes. Press or 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 or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at the beginning of the currently marked Block. If the Block is in a file other than the current file, the file containing the Block becomes the new current file. GotoBlockEnd ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at the end of the currently marked Block. If the Block is in a file other than the current file, the file containing the Block becomes the new current file. GotoColumn ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at the requested column. The editor prompts for the desired column number. GotoLine ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Positions the cursor at the requested line. The editor prompts for the desired line number. GPQuit or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Issues the PQuit command for all files that have been loaded. GrowWindow or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Changes the size of the current window, if there are multiple windows on the screen. GSave ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Issues the SaveFile command for all files that have been modified. HalfPgDn ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text toward the end of the file one-half page. HalfPgUp ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text toward the beginning of the file one-half page. HorizontalWindow or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Splits the screen or current window horizontally, creating a new window. Up to eight windows may be displayed on the screen at one time. InsertDate ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Inserts the system date at the current cursor position. InsertLine or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Inserts a blank line above the cursor line and positions the cursor on the newly created line. The cursor column does not change. InsertTime ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Inserts the system time at the current cursor position. isBegLine ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Returns TRUE if the cursor is at column 1; otherwise, FALSE is returned. isCurrChar ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Used to set a conditional branch based on the value of the character at the cursor position. The format is: isCurrChar char Where "char" is the character in literal format (surrounded by quotes, either single or double) or in ASCII value format, preceded by a pound sign (#). Examples: isCurrChar 'a' JTrue found: isCurrChar #97 JTrue found: Both of these examples jump to the label "found" if the current character is "a". isCursorInBlock ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Returns TRUE if the cursor is inside a marked Block; otherwise, FALSE is returned. isEmptyLine ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Returns TRUE if the current line is empty or contains only white space; otherwise, FALSE is returned. isEndLine ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Returns TRUE if the cursor is past the last non-white character on the current line; otherwise, FALSE is returned, including the case when the cursor is on an empty line. isFirstLine ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Returns TRUE if the cursor is on the first line of the currently edited file; otherwise, FALSE is returned. isLastLine ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. Returns TRUE if the cursor is on the last line of the currently edited file; otherwise, FALSE is returned. JFalse ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is intended for use only within macros. It is used to transfer control to the named label, if the previous command returned FALSE. JoinLine or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Joins the line below the cursor line to the end of the cursor line. If the cursor is past the end of the line, then the line is joined at the cursor position. 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text one line at a time toward the end of the file. The cursor remains stationary on the screen. LineUp ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text one line at a time toward the beginning of the file. The cursor remains stationary on the screen. ListFiles ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Displays a list of the currently loaded files. To switch to another file, move the cursor to the appropriate file and press . To keep editing the current file, press . Literal ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Causes the editor to literally interpret the keystroke that is entered immediately following this command. It is used to insert control characters into the currently edited file. For example, to insert the ASCII formfeed character (ASCII 12), you would first press then . To insert a "null" character into the file, press and then . (Note: The "2" must be the "2" key on the alphanumeric keyboard, NOT the key on the numeric keypad.) Refer to the "Adding Text" section of Chapter 1 for more information. Lower ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Loads the named macro file, with all macros contained therein, from disk into the editor's internal macro buffer. The macros are assigned to the keys exactly as they were originally recorded and saved. The editor prompts the User for the name of the file. MacroRecord or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Toggles (ON and OFF) macro recording. If macro recording is OFF, this turns macro recording ON and prompts for a key to which to assign the macro. After pressing the desired key (see Appendix C for a list of assignable keys), all following keystrokes are recorded until the MacroRecord key is pressed again. After the macro has been recorded, it can be played back by pressing the key to which the macro was assigned. Instead of assigning a macro to a specific key, it can be assigned to a "scrap" or temporary area by simple pressing at the prompt. A macro assigned to the scrap area may be played back by entering the ExecuteScrap command. The scrap area is updated each time the MacroRecord command is executed. MacroWrite ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Saves all currently defined macros to a binary disk file. The editor prompts for the name of the file. MainMenu ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text in the window so that the cursor line becomes the center line of the window. MakeTopofScreen ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text in the window so that the cursor line becomes the top line of the window. MarkBlockBegin or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Marks the beginning of a character Block. The Block is not shown until the MarkBlockEnd command is executed at some position beyond the beginning position of the Block. For an alternate method of marking character Blocks, refer to the DropAnchor and MarkCharacter commands. MarkBlockEnd or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Marks the end of a character Block. The Block is not shown until the MarkBlockBegin command is also executed at some position before the end of the Block. For an alternate method of marking character Blocks, refer to the DropAnchor and MarkCharacter commands. MarkCharacter ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is used to mark a character Block. It is similar to the DropAnchor command except the cursor position is NOT included as part of the Block. This command is provided as a replacement for the DropAnchor command. If you want the cursor position included in character Blocks, then continue to use DropAnchor; otherwise, replace the DropAnchor command with this command. MarkColumn ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command is used to mark a column Block. Initially executing this command 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 or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Finds the corresponding "(", ")", "{", "}", "[", "]" character. This command is primarily intended for programming languages in which complicated expressions are grouped with one or more of these characters. This command is very useful for finding unmatched parentheses. MoveBlock or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Moves (copies and deletes) the currently marked Block to the cursor position. If the Block is a character Block (created using the DropAnchor, MarkCharacter, or MarkBlockBegin/End commands) or a column Block (created using the MarkColumn command), the Block is inserted into the text beginning at the current cursor position. If the Block is a line Block (created using the MarkLine command), it 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 command followed by the EditFile command. Refer the Exit and EditFile commands in this chapter for more information. NextFile or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Makes the window below the current window the new current window. If the current window is at the bottom of the screen, the top window on the screen becomes the current window. OneWindow or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Closes all windows except the current window and expands it to occupy the entire screen. PageDown ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text toward the end of the file, one page-full less one line, at a time. PageUp ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Scrolls the text toward the top of the file, one page-full less one line, at a time. Paste ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Inserts the contents of the Scrap Buffer at the cursor position. The Scrap Buffer is loaded using the Cut or Copy commands. If the Scrap Buffer contains a character or column Block, it is inserted at the cursor position. If the Scrap Buffer contains a line Block, it is inserted before or after the cursor line depending on the configuration setting, "Insert line blocks ABOVE the cursor line" (refer to the "General Options" section of Chapter 2). Paste is also available within prompt boxes. PasteOver ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This is a Paste command for column Blocks. It takes a column Block which has been loaded into the Scrap Buffer using the Cut or Copy commands, and places 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 or is pressed. Refer to the "Macro Pause" section of Chapter 3 for more information. PQuit or or ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This command initiates a protected quit. If the current file has not been modified, it is discarded. If the current file has been modified, the following prompt is issued: ÚÄLose changes?ÄÄ¿ ³#Yes############³ ³ No ³ ³ Cancel ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Press to quit the current file. Press , , or to cancel the command, without discarding the current file. If multiple files are being edited, this command makes the previous file in the ring the new current file. QEdit can be configured, when only a single file is being edited and the PQuit command is issued, to either terminate or prompt for another file to edit. Refer to the "General Options" section of Chapter 2 for more information. PrevFile or