QED AMIGA TEXT EDITOR Copyright 1989 by Darren M. Greenwald All rights reserved User's documentation Last revised 8/5/89 - QED 0.20 QED may be freely distributed. It may not be distributed in any commercial product, shareware product, or commercial publication without permission. It is permissible to release QED as part of a public domain collection, or on a telecommunication service as long as no "special charge" is made for this program; "special charge" does not include "reasonable" charges for replication of the media, or standard charges for use of the system. The intent of the above should be clear - I did the work, and while you are allowed to freely distribute the program, you may not profit from it. Any archived files which the author distributes MUST be left intact. If you do distribute this program, I insist that you distribute all the files including any notices. QED is SHAREWARE - the registration fee is $20, and in return you will receive complete documentation describing QED's command line language, ARexx interfacing, keyboard mapping, etc. Darren M. Greenwald 2511 W. Sunflower Av. #D-16 Santa Ana, CA 92704 GEnie E-MAIL address: DMG DISCLAIMER: --------------------------------------------------------------------- In no way can the author be held responsible for any damages, loss of anticipated profits, or any other perceived loss related to using this program. The user assumes the entire risk, and responsibility when using this program. TABLE OF CONTENTS --------------------------------------------------------------------- Section i .................. Introduction Section ii .................. Registration Section 1.0 .................. Starting QED Section 2.0 .................. QED Requesters Section 3.0 .................. Opening files Section 4.0 .................. Saving files Section 5.0 .................. Opening new windows Section 6.0 .................. Window options Section 7.0 .................. Positioning the cursor Section 8.0 .................. Basic editing keys Section 9.0 .................. Deleting text Section 10.0 .................. Block operations Section 11.0 .................. Search & Replace Section 12.0 .................. Formatting text Section 13.0 .................. Indenting text Section 14.0 .................. Miscellaneous features Section 15.0 .................. Command line mode, and ARexx macros Section 16.0 .................. Editing binary characters Section 17.0 .................. Printing Section 18.0 .................. Making QED resident (and QGO) Section i INTRODUCTION TO QED ===================================================================== QED is a fast, and easy to use general-purpose "text-editor". There are no built-in limits on the number of windows which can be opened, file size, line length, or number if lines per file other then any memory limitations. Memory is dynamically allocated, and deallocated through out the program, and memory is used in an efficient manner. As you enter text, additional memory is automatically allocated as needed. QED allows you to work with multiple text editing buffers in the form of separate text editing windows. Each new window requires a minimal amount of memory. Data can be shared between text editing windows via cut, copy, and paste. There is no significant performance penalty for working with multiple text editing windows. Each text editing window can have unique editings options, settings, colors, etc. QED will work with non-proportional system fonts of any size with the understanding that fonts wider then Topaz 9, and/or taller then Topaz 11 may be too large for use on a 640x200 Workbench screen. This is because QED adjusts the size of the pull-down menus, and requesters to use your system font. FastText (Copyright 1988 by Darren M. Greenwald) is built into the program. "FastText" is a blitter based fast text rendering routine which will speed up rendering of fonts of any height, and from 4-16 pixels wide. QED also uses your system's keymap to decode the alpha-numeric keys (dead-keys too), and will work properly with over-sized Workbench screens. QED has extremely fast search, and replace capabilities. A lightening fast formatter allows you to format a paragraph, or marked block text. In fact many of QED's features can be limited to a marked block of text. A full ARexx interface, and keyboard mapping is supported for the advanced users, while the full Intuition interface makes QED easy to use. Section ii REGISTRATION ===================================================================== QED is SHAREWARE. As of version 0.20, you can no longer save files larger then 10K bytes. This has unfortunately become a necessity to encourage users to register. My interest in this product is proportional to your support. As a SHAREWARE product, QED is both inexpensive, and you have an opportunity to try before you buy. I am also focusing my attentions on providing features which registered users have requested. I have now had too many non-paying users ask for new features which I added, and still have not received their registration fee. My guess is that they have no intention of paying for software at any price. Ever hear an Amiga user gripe that there is so little productivity software for the machine? Perhaps this is why? Registered users will be shipped an uncrippled version of QED, as well as a simple method for deprotecting future releases of QED. Periodically the deprotection method may be changed at which time I will send out a letter to registered users notifying them of the latest method in use. The registration fee is $20, and should be sent to: Darren M. Greenwald 2511 W. Sunflower Av. #D-16 Santa Ana, CA 92704 I would like to think that $20 is a very reasonable fee for software of this caliber. The SHAREWARE method of distribution is less expensive then standard commercial distribution, and allows me to distribute updates quickly, and inexpensively. Please include your name, address, and if you would like, a GEnie E-MAIL address where you can be reached. The registration fee may be increased in the future. I can also be contacted on GEnie, E-MAIL address "DMG". You are also invited to stop by the Amiga Programmer's RoundTable (PRO-AM) page 670. Registered owners will also receive: 1.) Documentation describing the built in command line language, and advanced features which are only accessable via the command line language (e.g. insert multiple lines). 2.) Documentation explaining how to write ARexx macros for use with QED. 3.) Documentation explaining how to configure QED via an ARexx start-up macro. 4.) Documentation explaining how to create macros which are automatically executed when a file is opened (based on the file name's extension). 5.) Documentation explaining how to configure the keyboard, and function keys to execute QED commands, DOS commands, and/or ARexx macros. 6.) Documentation explaining how to define your own user menu items to execute any built in command, DOS command, or ARexx macros. These capabilities allow you to extend QED's features, and create a customized working environment. If you don't already have ARexx, I highly recommend you purchase it. ARexx is a copyrighted program by William S. Hawes. Unfortunately, I will not be able to send free software updates to registered users due to the cost of mailing, however, software updates will be made available to registered users for a nominal fee to cover mailing and material costs. Section 1.0 STARTING QED ===================================================================== It is assumed the user knows how to install QED on their system, or working disk. QED is a stand alone program, and is easily copied to any destination directory; no special support libraries are required. A small utility program called "QGO" is also provided which is needed if QED is run in its resident mode. By default, QED opens a single, un-named text editing window upon start up. You may begin entering text immediately if you like, or open an existing file for editing. ARexx owners have the option of creating a start up macro which will be automatically executed when QED is started. All of QED's options, and capabilities can be accessed using the macro capability, so this is an excellent way to create a configuration file to set the various options up the way that you want. Only registered users will receive documentation describing QED's built in command language, and how to write ARexx macros for use with QED. Section 2.0 QED REQUESTERS ===================================================================== At times QED will ask for a response from you in the form of a requester. All QED requesters are opened in draggable windows, and the position of all requesters is remembered for the duration of the editing session. Therefore you can place the requester windows where you want them, and they will be opened in the same position where you last left them. The size of all requesters are adjusted (width & height) to use your system font. The File Requester - ------------------ Amiga users should be relatively familiar with file requesters, however it is worth noting the following: The QED file requester can display up to 8 files, or sub-directory names. Directory entries are sorted in non-case senstive order, and displayed such that sub-directories take precedence over file names. The QED file requester does not make you wait for the directory to be read before you can enter a file name, or change directories. QED's file requester makes it EASY to select a file, or sub-directory name before the entire directory has been read. First, you can enter a new path name, or a file name before the entire directory has been read. Second, QED's file requester does not continually, or periodically change the list of names on you until you drag the scroll bar. This means that you can actually single, or double click on a name before the entire directory has been read, and not have to worry about the list of names changing on you faster then you can move the mouse! The string gadget labeled "File:" is automatically activated, so it is possible in some cases to enter a file name from the keyboard, and press the RETURN key without ever touching the mouse. This file requester dynamically allocates, and deallocates memory as needed for the directories; there is no built-in limit on the number of directory entries that this requester can handle. A gadget labeled "TOGGLE:" allows you to toggle between a list of devices in your system, and the directory list. There is no built-in limit on the number of devices which this requester can handle, and device names of up to 31 characters in length do not present a problem as they do with some requesters. You may use the ARP file requester if you prefer (this option can be set from the command mode, and requires the arp.library version 34 or greater). Input requesters - ---------------- Input requesters expect you to respond by typing in a number, or a string of text. Input requesters automatically activate the string gadgets so often it is possible to respond by entering the number or string(s), and pressing the RETURN key. Of course you can also respond using the mouse to select OK, or CANCEL. If none of the string gadgets are activated, you can respond with the 'o' or 'c' keys on the keyboard. Notices & Queries - ----------------- Notices can only be responded to with an "OK" response, while queries allow you to respond with an "OK" or "CANCEL" response. If you prefer, you can also respond to these requesters using the 'o' or 'c' keys on the keyboard Section 3.0 OPENING FILES ===================================================================== QED allows you to OPEN, or INSERT existing files. The difference is that opening a file replaces the text editing buffer, while inserting a file 'inserts' the file below the cursor position. When opening a file, you will be prompted with a requester if you have made any changes to the text buffer being replaced. It is also possible to specify one, or more file names to be automatically opened in separate text editing windows when starting QED such as: 1> run qed hello.c read_me "df0:my file" In the above example, QED will attempt to open the files named "hello.c", "read_me", and "df0:my file" in separate text editing windows. If any of the above files are not found, then QED assumes you want to create a file of the same name, and opens an empty text editing window. QED is not suitable for use as a binary file editor because some binary characters are stripped, and converted to other characters when opening, or inserting a file. Binary value Action taken -------------------------------------------------------- 11-255 Valid characters. No stripping or conversion. 10 Linefeed - treated as an end of line character. 9 Tab - If "TAB = SPACES" under the "Options" menu is turned ON, then hard tabs are expanded to spaces when a file is opened, or inserted based upon the windows tab size setting which can be any value from 1-8. If "TAB = SPACES" is OFF (the default setting), then hard tabs are left in a file when opened, or inserted. 1-8 Valid characters. No stripping or conversion. 0 Stripped at load time. Selecting "OPEN", or "INSERT" file under the "Project" will result in the file requester being displayed. Section 4.0 SAVING FILES ===================================================================== QED allows you to save the entire text editing buffer, or a marked block of text using the "SAVE AS" option under the "Project" menu. The "SAVE AS" option causes the file requester to be displayed. Named files can be quickly saved (if any changes have been made to the file) using the "SAVE" option under the "Project" menu. In order to save a marked block of text, highlight the block (see the section described later on how to mark blocks of text), and simply select "SAVE AS". When mark block mode is on, it is implied that you want to save just the marked block of text. When mark block mode is off, it is implied that you want to save the entire text editing buffer to a file. You have the option of creating a backup file under the "Options" menu. When turned on, QED will rename any file which is going to be over-written as 'qed.backup' before saving the file. This allows you an opportunity to recover the over-written file should you over-write a file by mistake. You also have the option of saving text to a file in append mode under the "Options" menu. This capability is often handy when you want to save multiple blocks of text to a single file. When this option is turned on, all text written to a file will be appended to the end of the file. If the file does not exist, it will be created. Section 5.0 OPENING A NEW WINDOW ===================================================================== QED supports multiple text editing buffers in the form of an unlimited number of text editing windows. This is advantageous because you can see what each buffer holds, and edit any buffer. There is no built-in limit on the number of windows which can be opened other then that which the operating system can handle, and memory limitations. There is also no significant performance penalty for opening multiple windows other then that which is typical of the operating system when managing multiple windows on the Workbench screen. In order to open a new window, select "NEW" under the "Project" menu. Note that the pull-down menus are accessable, and shared by all text editing windows. It is also important to note that menu selections affect the window from which the menu item was selected. For example, selecting "QUIT" from a window causes only that window to be closed. When the last window is closed, QED is automatically terminated. The general layout of a QED text editing window is depicted by the diagram below: ------ File name ------- Line/Column cursor position | | ---------------------------------------------------------- | QED - Untitled L: 1 C: 20 | | |- Front/Back ---------------------------------------------------------- | |_|- Top of file | |_|- Page up | | | | | |- Proportional | Text editing | | slider gadget | work area | | | | | | | | | |_| | |_|-Page down | |_|-End of file | | |-Window size ---------------------------------------------------------- You can define the default window size that QED will use to open a window upon startup, as well as any NEW windows opened via the pull-down menus. This capability requires the use of the SETENV function provided as part of the 1.3 operating system. In order to use this function, assign ENV: to the RAM: disk, and use the SETENV command such as - 1>setenv qedsize "0 20 300 100" Where the four parameters are left edge, top edge, width, and height in pixels. If you enter any erroneous arguments, the window is opened to the full size of the WB screen a few pixels below the title bar. Ideally you would make the assignment of the environment variable "qedsize" as part of your startup-sequence. Section 6.0 WINDOW OPTIONS ===================================================================== Each text editing window has its own private text editing buffer, and private characteristics including: Under the "Tools" menu ---------------------- Pen and paper colors - Pen, and paper colors can be toggled between 4 preset color combinations by selecting "COLOR" under the "Tools" menu. These color combinations have been selected to also work properly using a one bit-plane Workbench screen such as is possible using the 1008x800 monitor. From the command line mode it is also possible to set a specific preset color combination, or any pen/paper color combination of your choice. Pen/Paper colors can be set from 0-255 should newer Amigas offer more on-screen colors. Tab size - The tab size can be set individually from 1-8 for each window under the "Tools" menu, but by default is set to the proper value of eight (8). The tab size is used when calculating how many spaces to insert when using soft tabs, and affects how hard tabs are displayed. Right margin - The right margin can be set individually for each window under the "Tools" menu. The right margin setting is used by the formatter, and word-wrap routine. By default, the right margin is set to 75, but can be set to any value from 8-10000. As an alternative, you can set the right margin to a value of one (1) in which case the right margin is variable based on window, and font width. In this case the right margin is equivalent to the maximum number of columns visible in the window. Show end of lines - Selecting "SHOW EOL" under the "Tools" menu toggles visible end of line characters on/off. The actual character used to represent end of line characters can be set from the command mode. The End Of File (EOF) is displayed using a different character; once again the actual character used can be set from the command mode. Show hard tabs - Selecting "SHOW TABS" under the "Tools" menu toggles visible hard tabs on/off. The actual character used to represent hard tabs can be set from the command mode. Proportional gadget - Selecting "PROP GADGET" under the "Tools" menu toggles the proportional slider gadget on/off. This gadget is ghosted when off. Note that the page up/down gadgets above, and below the proportional gadget are more accurate then clicking above, or below the proportional knob to move up/down a window page through a file. Also note that when the proportional gadget is turned on, that scrolling may slow down a bit due to the extra time required to redraw the proportional gadget. Under the "Options" menu ------------------------ Overstrike mode - QED allows you to enter text in insert, or overstrike mode. Word wrap - QED will perform "simple" word-wrap when text is entered past the right margin. This feature should not be confused with the more complex real-time paragraph reformatters typical of many word- processors. Case sensitive search mode - QED allows you to search for text in case, or non-case sensitive search modes. When case sensitive mode is turned off, the alpha characters (a-z and A-Z) are treated as equivalent. For example, you could enter "cat" as a search string, and "cat", "CAT", "Cat", etc., would all be found when searching for text, and/or when searching & replacing text. Append saves - This option allows you to save text to a file in append mode in which case any text written to an existing file will be appended to the end of the file. This capability is often useful when marking multiple blocks of text to be saved to single a file. Backup files - This option will cause any file which is going to be over-written by a save operation to be renamed as "qed.backup" before saving the file. This allows you an opportunity to recover a file which is inadvertently replaced by a save operation. Mark line mode - When this option is turned on, you can only mark whole lines of text to be cut, copied, saved, erased, formatted, replaced, and printed. The block, and project insert functions are also affected. When this options is turned on, a block of text which is inserted from the clipboard, or a file will be inserted as a group of lines above the cursor position. This mode will most likely be preferred by those working with line oriented text (e.g., programmers). When this option is turned off, you can mark a block of text from any line/column position to any line/column position. The block, and project insert functions are also affected. When this option is turned off, a block of text which is inserted from the clipboard, or a file will be inserted at the cursor position. This mode will most likely be preferred by those working with document oriented text. Free form editing - This option affects the cursor's behavior. When turned on, the cursor can be positioned past the end of line allowing you to enter text beyond the end of a line in which case spaces are automatically inserted as needed. This mode will most likely be preferred by those working with line oriented text (e.g., programmers). When turned off, the cursor cannot be moved past the end of line. The right cursor key is also affected; if you cursor right past the end of a line, the cursor is wrapped to the first character of the next line. This mode will most likely be preferred by those working with document oriented text. Insert tabs - This option affects how the TAB key behaves. When turned off, the tab key moves the cursor to the next tab stop. When turned on, the TAB key can be used to insert hard tabs, or an equivalent number of spaces (see "Tabs equal to spaces" below). Tabs equal to spaces - This option affects how the TAB key behaves. When turned on, soft tabs (spaces) are used instead of hard tabs (binary 9). This option is checked for when you press the TAB key, when indenting lines, and when a file is opened, or inserted (allowing you to de-tab files at load time). When opening a new window, these characterstics are inherited from the window from which the "NEW" command was issued. It is also possible to write macros which are automatically executed when a file is opened. This capability is extremely useful for automatically adjusting the various window options listed above to suit the type of file you are working on. For example, you might load a "C" source code file in one window, and have a macro which automatically sets your tab size to three (3), turns mark line mode on, turns free-form editing on, etc. In another window you might then load a document file, and have a macro which automatically sets your tab size to five (5), turns mark line mode off, turns free-form editing off, etc. Section 7.0 CURSOR POSITIONING ===================================================================== Like most text editors, QED allows you to insert, or over-strike text at the cursor position. Perhaps the easiest way to position the cursor is with the mouse using the "point & click" method. Of course the keyboard can be used to position the cursor using the cursor keys. Text scrolling is allowed in all directions, and can be accomplished via the cursor keys, or mouse using the "point & drag" method. It is also possible to go to a specific line number (see the "Cursor" menu), or mark & go to a spot. Command line mode users have more cursor positioning tools available such as the ability to go to a specific line, and column position. Cursor key | Result --------------------------------------------------------------------------- | Up | Move the cursor up a single line. | Down | Move the cursor down a single line. | Left | Move the cursor left a single character. If the cursor is | at the beginning of a line, the cursor is wrapped up to the | end of the previous line. | Right | Move the cursor right a single character. If FREE FORM | edit mode is turned OFF, the cursor will wrap to the next | line if you cursor right past the end of a line. | SHIFTED | Move the cursor up a single window page. Up | | SHIFTED | Move the cursor down a single window page. Down | | SHIFTED | Move the cursor to the previous word. Left | | SHIFTED | Move the cursor to the next word. Right | | ALT | Move the cursor to the first line in the text editing Up | buffer. | ALT | Move the cursor to the last line in the text editing buffer. Down | | ALT | Move the cursor to the beginning of the line. Left | | ALT | Move the cursor to the end of the line. Right | | CTRL | Move the cursor to the top of the window. Up | | CTRL | Move the cursor to the bottom of the window. Left | --------------------------------------------------------------------------- Section 8.0 BASIC EDITING KEYS ===================================================================== Keypress | Result --------------------------------------------------------------------------- | RETURN | Splits the line at the cursor position. If the cursor | is positioned beyond the end of the line, a new line is | inserted. | ENTER | Inserts a new line with AUTO-INDENT. | DELETE | Deletes the character under the cursor. If FREE FORM EDIT | is turned OFF, the DEL key will also delete end of line | characters if the cursor is positioned on the end of a | line. | BACKSPACE | Deletes the character to the left of the cursor. If the | cursor is on the beginning of a line, the BACKSPACE key | can be used to join the line with the previous line by | effectively deleting the previous end-of-line character. | TAB | Moves the cursor to the next tab stop. The tab size by | default is set to the proper tab value of 8, but can be | set individually for each window. You also have the option | under the "Options" menu of having the tab key insert a | sufficient number of spaces at the cursor position to move | the cursor to the next tab stop, or to insert a hard tab. | --------------------------------------------------------------------------- Section 9.0 DELETING TEXT ===================================================================== At times you may want to delete larger pieces of text then is practical using the BACKSPACE, and DELETE keys described above. QED provides a number of tools for deleting text listed under the "Edit" menu. Delete line - The entire line on which the cursor resides is deleted. Delete to end of line - Deletes all text from the cursor position to the end of the line. Delete word - Deletes the word on which the cursor resides. Undelete - Text which has been deleted using any of the above 3 functions is copied to a 256 byte private backup buffer (one buffer per editing window). The last bit of deleted text (line, word, or end of line) can be restored using the undelete command. QED will allow you to work with lines longer then 256 characters, however to insure that you have an opportunity to undelete text, the delete tools listed above will not work if the amount of text to be deleted exceeds 256 characters. In this case use the block cut, or erase commands. Section 10.0 BLOCK OPERATIONS ===================================================================== QED allows you to mark a block of text to be cut, or copied to a clipboard area which is used by all the text editing windows. In addition, many of the QED commands can be restricted to a marked block of text (e.g., SAVE AS, REPLACE, PRINT, FORMAT, etc.). Mark block mode can be toggled on/off from the pull-down menus under the "Edit" menu, or can be toggled on/off by "double-clicking" the left mouse button over the same row/column position. Mark block mode is transparent; you can continue to edit text like usual, and the pull-down menus are always accessable. In order to mark a block of text, simply toggle mark block mode on, and use the cursor keys, or mouse to highlight a range of text. As indicated above, you have the option under the "Options" menu of toggling between line mark mode (always marks whole lines), or free form mark mode (allows you to mark from/to any row/column position). In the free form mark block mode, the last character marked in a block is excluded; this makes complete sense in actual use as it allows you to position the cursor at the beginning of a line, and cursor up/down one line to mark the line without including the first character of the next line. Both the CUT, and COPY block tools under the "Edit" menu copy the marked block of text to the clipboard, however CUT block also deletes the text. In some cases you may want to cut a block of text, but you don't want it copied to the clipboard. In this case use the ERASE tool under the "Project" menu. ERASE will erase all text in a text editing window, and free any up any memory that it can, however if mark block mode is on, the ERASE function will only erase the marked block. In either case you will be prompted with a requester because any erased text cannot be restored. INSERT block under the "Edit" menu inserts whatever is in the clipboard at the cursor position. If MARK LINE MODE is ON, the contents of clipboard will be inserted as a group of lines above the cursor position. If MARK LINE MODE is OFF, the contents of the clipboard will be inserted at the cursor position. Section 11.0 SEARCH & REPLACE ===================================================================== The SEARCH, REPLACE, and HUNT tools under the "Tools" menu allow you to search for a phrase, replace a phrase, and quickly repeat the last search and/or replace operation. As indicated above, QED supports both case, and non-case sensitive search modes, and can be optionally set for each text editing window. Both SEARCH, and REPLACE will prompt you for strings using a requester. Both commands will search forward from the cursor position for a matching search string, and position the cursor on the first occurrance of the search string if a match was found. When using the REPLACE command, you will also be prompted with a message in the title bar of the window such as: Replace? (Y)es (N)o (G)lobal (M)arked (Q)uit You may respond using the upper, or lower case keys on the keyboard where (?) causes the following action to be taken: (Y)es - Yes, replace the string with the search string, and continue searching. (N)o - No, don't replace the string, and continue searching. (G)lobal - Replace all occurrences of the search string forward from the cursor position. (M)arked - Replace all occurrences of the search string found within a marked block. In order to use this option, you must first mark a block of text. (Q)uit - Quit searching. You may also click in the window with the LEFT mouse button to abort the search. In order to search, and replace on 'end-of-line' characters, simply use the CTRL-J character in your search, and replace strings to denote 'end-of-line' characters. CTRL-J is equivalent to a binary value of 10; also known as a LINEFEED. Other control key sequences as listed in Section 16.0 below may also be used in your search strings as needed. The HUNT command can be used to repeat the last SEARCH, and/or REPLACE operation. When using the HUNT command, searches will skip the character under the cursor to avoid finding duplicate matches of a string. Section 12.0 FORMATTING TEXT ===================================================================== The FORMAT tool under the "Tools" menu allows you to format a paragraph, or a marked block of text. If mark block mode is off, then FORMAT searches forward from the line on which the cursor resides for two (2) consecutive end of line characters. The following illustration may be helpful in better understand how the FORMAT tool works. Let's suppose the original piece of text looks like this: -------------------------------------------------------- This is some text to demonstrate a point. This is some more text. This is how the text is evaluated by the FORMAT command: ------------------------------------------------------- _________________________________Cursor position column 11. | | _______________________Wrapping will occur here. | | | | ___________________Right margin is 25. | | | | | | ___________Column 33 is > right margin. | | | | This is some text to demonstrate a point. - This line of text is terminated - by 2 end-of-line characters. This is some more text This is the result after using the FORMAT command: ------------------------------------------------- This is some text to demonstrate a point. This is some more text. FORMAT will never insert, or delete any spaces. What it will do is replace spaces with end-of-line characters, and vice-versa in an attempt to cause the affected text to fit in the right margin setting with word-wrap. Section 13.0 INDENTING TEXT ===================================================================== Programmers who work with block oriented languages frequently find themselves indenting sections of source code left, and right. Often this can mean manually deleting, and/or inserting spaces or tabs. QED provides a tool which allows you to easily indent a line, or a range of lines to the next left or right tab position. Under the "Tools" menu, you have the option of indenting the current line left, or right to the next tab stop, or indenting multiple lines. If you choose the INDENT MULTIPLE tool, you will be prompted with a message in the window's title bar such as: Indent? (R)ight (L)eft (S)kip ([) (]) (Q)uit You may respond using the upper, or lower case keys on the keyboard where (?) causes the following action to be taken: (R)ight - Indent line right, and move cursor to the next line. (L)eft - Indent line left, and move cursor to the next line. (S)kip - Skip the line, and move cursor to the next line. ([) - Indent line left, and don't move the cursor. (]) - Indent line right, and don't move the cursor. (Q)uit - Abort multiple indent utility. You may also click in the window with the LEFT mouse button to quit. The INDENT MULTIPLE tool is extremely useful when you wish to change the indent of a range of lines. Place the cursor at the top line of the range you want to change, and repeatedly use the (R), or (L) keys. You can also skip lines you dont want changed, and adjust each line individually using the ([), and (]) keys. You have the option of indenting lines using hard tabs, or soft tabs (spaces). If "TAB = SPACES" is turned ON under the "Options" menu, soft tabs will be used when indenting lines. If "TAB = SPACES" is turned OFF, then hard tabs will be used. Section 14.0 MISCELLANEOUS FEATURES ===================================================================== QED allows you to assign any built in QED command, ARexx macro, and any DOS command to ANY key when pressed alone (including the FUNCTION keys), or to ANY key when pressed in conjunction with the CTRL, ALT, or SHIFT keys. In order to use this capability you will need the Registered User's Documentation. The ALT keys can be mapped to imitate the RIGHT AMIGA key menu alternatives listed in the pull-down menus using a single command from the command mode, or in an ARexx macro. For those of you who are uncomfortable with using the RIGHT AMIGA key, this allows you to use either the left, or right ALT keys. Even though there is no "NEW CLI" command in the pull-down menus, the CTRL/HELP key combination is by default mapped to open a new CLI window. If you own Brian Jackson's ACK terminal program for the Amiga, you can mark blocks of text to be sent to ACK via a message port just as if you had typed the text directly, or sent an ASCII file. In order to do this, simply mark a block of text that you want to send, and press CTRL "`". Remember that if this does not suit your taste, you can remap the keyboard as mentioned above. Only the Amiga makes it possible! Brian Jackson can be reached on GEnie: E-MAIL address "B.J." The ERASE function under the "Project" menu will clear, and reset the text editing buffer as described under section 10.0 above. The JOIN command under the "Edit" menu will join the line on which the cursor resides with the previous line. Joining lines can also be accomplished by back spacing over the previous end of line character as described under section 8.0 above. The MARK SPOT, and GOTO SPOT commands under the "Edit" menu can be used to mark spot, and quickly return to the same position later, however the spot may be lost when using the global replace capabilities, or if you delete the text corresponding to the marked spot. QED has a built-in keyboard repeat limiting feature which will only limit repeating key press messages if QED cannot keep up (e.g., during heavy multi-tasking). If you have ever used an Amiga program in which you inadvertently held down a repeating key such as the BACKSPACE key too long, and watched your last 10 minutes of work be erased, you will appreciate this feature. You can quickly move between multiple windows opened with the NEW command by using the "NEXT", and "PREV" items under the "Project" menu. If you have more then one window open, these two items will bring the next, or previous window to front, and activate as if you had clicked in it with the mouse. Section 15.0 THE COMMAND LINE MODE & AREXX MACROS ===================================================================== The "CMD LINE" command under the "Tools" menu causes the command line window to be opened (if its not already), and assigns the command line window to the text editing window from which this command was issued. As an alternative, you can use the ESC key. The command line mode allows you to enter commands, and execute/debug ARexx macros. Any command which can be performed using the pull-down menus, or keyboard can be accomplished from the command line mode, and much more... The command line mode allows you to perform all of the functions available in the pull-down menus, execute ARexx macros, and more. In order to use this capability you will need the Registered User's Documentation. The "RUN MACRO" command under the "Tools" menu will list, and allow you to execute all ARexx macros in your REXX: directory. Section 16.0 EDITING BINARY CHARACTERS ===================================================================== QED is a text editor, so binary file editing is not fully supported, however you can open, display, edit, and save most of the binary character set other then binary 0. This capability should provide sufficient for those who would like to insert ANSI, or printer device control sequences in their files. QED utilizes your system font, and it is worth noting that AMIGA fonts generally do not contain character definitions for the complete binary character set 0-255. Most system fonts only have character imagery for binary 32-255, and possibly a smaller subset of characters. Undefined characters are displayed using a default image (generally a box). In order to compensate, QED will display the characters "A" through "_" in inverted imagery to represent binary 1-31. You can also enter these characters from the keyboard by holding down the CTRL key, and pressing the following keys on the keyboard: a = binary 1 q = binary 17 b = binary 2 r = binary 18 c = binary 3 s = binary 19 d = binary 4 t = binary 20 e = binary 5 u = binary 21 f = binary 6 v = binary 22 g = binary 7 w = binary 23 h = binary 8 x = binary 24 i = binary 9 (Hard tab) y = binary 25 j = binary 10 (Line feed) z = binary 26 k = binary 11 [ = binary 27 l = binary 12 \ = binary 28 m = binary 13 (Cairrage ret) ] = binary 29 n = binary 14 ^ = binary 30 (CTRL SHIFTED 6) o = binary 15 _ = binary 31 (CTRL SHIFTED -) p = binary 16 The above sequences rely on the standard operating system routines to decode the keyboard, however you can assign key values to any keyboard combination of your choice from the command mode. Of course you can also assign whole strings of text which may include binary control sequences to a key press combination. Section 17.0 PRINTING ===================================================================== QED allows you to print the entire contents of a windows text editing buffer, or a marked block of text (if a block is marked). Simply select PRINT from the pull down menus, and respond to the requester verifying that you want to print. Printing occurs as a background task, and does not interfere with any other QED features. You may even quit QED while printing is still in process. In this case QED will release as much memory as it can, and will hang around in a wait state until the printer is done before fully exiting. If you select PRINT again while the printer is busy, you will be prompted with a requester asking if you want to cancel the current print job. If you elect to cancel printing, printing will stop as soon as possible. If you are using a printer buffer, then of course it may be necessary to turn the buffer, or printer off to flush the buffer. Section 18.0 MAKING QED RESIDENT ===================================================================== QED can be started in "resident" mode by including "-r" (no quotes) as the first argument on the command line. This mode will force QED to hang around in memory until awakened by another small utility program provided with QED. Normally when you load QED from disk, or from ram disk, QED will exit when the last text editing window is closed freeing up all the memory used by QED. If you run, and exit QED frequently, this means that QED must be reloaded each time. Many users place commonly used programs in a ram disk; this avoids the delays of reloading a program from floppy, or hard drive, but still means that the program must be copied from ram disk to another section of memory before being run. QED's resident mode allows you to keep a "single" copy of QED hanging around in memory at all times. This is more efficient then run QED from a ram disk, and faster then reloading QED from a floppy, or hard drive. Remember that QED allows you to open an unlimited number of text editing windows, that there is no significant performance penalty for opening multiple windows, and that this is much more efficient then running multiple copies of QED to edit separate files. You can still run QED as separate tasks if desired, however only one copy of QED can be made resident, and in most cases one copy of QED is sufficient to handle your multi-file editing needs. If QED is started in resident mode using the "-r" flag, by default no text editing windows, or files will be opened. You can still include a list of file names following this command line flag to be automatically loaded into separate text editing windows. See section 3.0 for details on specifying a list of files to be opened as CLI arguments. A small utility program has been provided called "QGO" which will send the necessary commands to a resident QED task to open new QED windows, files, etc. In fact "QGO" behaves much like QED in that you can specify a list of files names to be automatically opened in separate text editing windows. If no file names are included as CLI arguments, "QGO" will send the necessary commands to QED to open a single, un-named text editing window. Finally "QGO" can also send a command to QED to turn resident mode off, in which case QED will be fully exited once the last window is closed. In order to do this, simple include "-q" as the first CLI argument when using the "QGO" program.