Review of Az 1.5 - Text Editor  by D. Hooton  ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## There are a number of good text editors available in the Public Domain (PD) to suit just about every taste, e.g. Hed, Jed, Qed, Uedit, DME, MicroGNUEmacs, Az, and others I can't remember. My first editor was Ed, the infamous Amiga standard. When I sampled TxEd, it was goodbye to Ed and the start of a long-lasting relationship. TxEd was small, had multiple windows, colour cycling, mouse with keyboard equivalents... and did everything I wanted! But I still flirted around with others - short-lived affairs for the most part. Some were too big or too complex. Some were nice! Perhaps its total configurability finally won me over to DME. But it needed to be crunched to live in my memory, and it would be the first thing to go if space was needed for a compilation project - which for a long time was MicroGNUEmacs, or Mg for short. I took Mg1b apart and made changes until it was somewhere near workable - I hated the keyboard mapping because it was very inefficient with memory. Mg3a fixed that, but it was more complex. DME was used when I wasn't fooling with Mg. After I got the 2 MB memory expansion, I was looking through some scribbled notes and came upon a comparison between DME and Az - mainly memory usage and load times. But hey! They were very similar. Why not try it again. Hmmmm! Great ... very Amiga-ised. I think I had ignored it because the keyboard shortcuts were too dissimilar to TxEd. But now I use a text processor - Text Plus - and its keys are very similar! What does it offer? Its on-screen appearance is good. It makes good use of Intuition and graphics for presentation and scrolling. The title bar contains the close gadget, current line number, total number of lines, column number, the hex value of the character under the cursor, indicators for insert/overstrike and case sensitivity and text-modified, filename, iconify gadget, size toggle gadget and front/back gadgets! The size toggle gadget will expand/shrink the window to the largest/smallest size you chose with the Intuition size gadget. Editing The cursor keys or the mouse may be used to position the cursor, with the option of entering text in insert mode (the default) or overstrike mode. Marking text may be performed with the menu, the keyboard or the mouse. The most flexible way is to click the left mouse button (LMB) and drag it to mark a phrase, a line or a block. Or double-click and drag a word-at-a-time. Or triple-click and drag a line-at-a-time. Then use the menu or its keyboard shortcut to Copy or Cut the text, which is always saved to a clipboard. After COPY or CUT you have to use PASTE to put the text where you want it. CUT and PASTE is equivalent to moving the text from one place to another. COPY and PASTE duplicate the text somewhere else. Finally, there are commands to select one word or ALL text in the file. ClipBoards Firstly, Az uses the Amiga clipboard.device - so make sure CLIPS: is assigned to an appropriate subdirectory eg. I use Assign CLIPS: ram:T. Secondly, Az uses two clipboards, and you need to know which one is used in a particular operation. The commands I have already mentioned use Clipboard 0 ie. COPY to clipboard 0, PASTE from Clipboard 0. If you marked a block and hit the Delete key, it would be copied to Clipboard 1 and removed. PASTE would not recover that text, and you might think there was a bug in the program because it will return some other text most times (depending what is in Clipboard 0!). You must use UNDEL BLOCK (undelete block) in this case. A line may be deleted by using Shift + Delete, and can only be recovered with UNDEL BLOCK. A single character cannot be recovered if deleted. So if you forgot how you removed a block....try both ways! Getting Data In The OPEN and NEW WINDOW commands will allow you to get a new file via a file requester which has a few unusual features eg. STOP will prevent the current directory being read and SCAN will force a directory to be re-read. Also, there is a partial selection facility which highlights the file that most closely matches the key strokes you enter. The annoying part is that the filename string is cleared whenever a new directory is chosen and when the requester is put up. So a SAVE AS operation involves unnecessary typing. OPEN will copy the file into the current window whilst NEW WINDOW will create a window for the file. Text may also be copied from a file to the clipboard and then inserted into the document with PASTE. This dual operation, thankfully, may be shortcut via a function key operation called INSERT FILE. Binary files may be loaded and viewed through a LOAD BINARY operation. But it wouldn't be safe to save them because Az removes spaces from the end of a line. Data Out The usual operations of SAVE and SAVE AS are provided, the latter allowing you to change the name of the file being saved. Data in Clipboard 0 may be saved to a file with the PASTE TO FILE command or selected (marked) data can be saved by SAVE SELECTED - all with the help of the file requester. In addition selected data may be printed or sent to the serial port, both using parameters set in Preferences. Find and Replace Operations to find and replace text are implemented somewhat differently to what I would expect, but are quite flexible. A requester is issued for FIND, and although it asks for a "pattern", it only searches for the literal characters entered. Then it marks the found string and the only (safe!) way to unmark it is to click the LMB. The search may be continued until a requester pops up saying that it cannot be found! Search backward is allowed, and a search may alternate between forward and backward with ease. A search string may be specified by marking text and using FIND SELECTED. Very useful! Replace is called EXCHANGE, and a requester pops up allowing entry of both the Find string (still called a "pattern") and the Replace string. When a string is found it is not replaced until either EXCHANGE NEXT or EXCHANGE BACK or EXCHANGE ALL is chosen. Normally, the first string is replaced and EXCHANGE NEXT does exactly that thereafter! You may see this as a positive safety-first approach, but the choice of terminology is misleading as is the shortcut (Amiga-R) for EXCHANGE NEXT! Case sensitivity for FIND can be toggled - a simple feature that all editors should have (and that DME only got working in version 1.40!). FIND is slower across large files (>12000 bytes) than other editors - it's noticeable but not objectionable. Tools Menu The Tools menu has the following (all with keyboard shortcuts):- 1. Iconify - shrinks the window so it can lodge in the title bar of the screen with some of the file's name showing. Saves Chip memory in particular (about 37k). Also available as a gadget in the title bar. 2. Go To Line - good for locating lines that compilers insist are in error! 3. New Window - opens another window with a requester to select a file for editing. As the executable code of AZ is re-entrant, this saves memory compared to executing Az separately. Note that Az is not Pure, and should not be made residentable. 4. Insert Hex - very handy. I would use it to insert form feeds for printing. Or you can insert a special symbol eg. copyright. 5. Switch Case - changes the case of any marked text, or of a single character under the cursor. Again, this is a feature I think all text editors should have. This implementation is very flexible. 6. Execute Block - executes a block as AmigaDOS commands. Any results are printed at the end of file. Starts with CD set to file requester current directory and Path set to current directory C:. Possibly useful, except that you may have to clean up after. 7. Match Brackets - very useful for 'C' programming where you want to check the pairing of [] {} or (). It can be done for an individual bracket pair or to check ALL bracket pairs in the file. Line Commands There is a CLONE LINE which reproduces the current line and a JOIN LINES which puts a space on the end of the current line and adds the following line starting with its first non-blank character. This can also be done (in the reverse direction) with the Backspace key when the cursor is at the start of the following line. The Return key in the middle of a line will produce a new line - and not split the line as I would expect. Shift + Return is required for this. If the previous line is blank the cursor will go to the first column, otherwise it will go to the position of the first non-blank character. NEW LINE or SPLIT LINE may be done with Enter instead of Return and then a back-tab will be attempted. Cursor/Text Movement Again, cursor operation is somewhat different to what you might expect. The cursor keys work normally for movement through lines and across characters, except when text is marked and then the text itself will move or scroll. If the selection was line-at-a-time (triple clicking) the block can be moved with the left/right keys or Tab/Shift-Tab! Very useful to change indentation! There are commands for top and bottom of file, page up/down and beginning/end of line. And the choice of shortcuts is reasonably logical, involving keys that qualify the cursor keys. There are also scroll bars for horizontal and vertical movement, with gadgets for both directions at BOTH ends of the scroll bar. The bar itself can be dragged or clicked in two directions! A final feature of scrolling the text is that the cursor position is not changed. If the scroll takes the cursor outside the window, striking any key will return the text with the cursor near the centre of the window! A cursor key should be used as this will not change the text! Configuration Az is configurable through 15 options that may be specified on the command line. Here is a partial list:- 1. Colour of text in titlebar and text areas. 2. Maximum length of line. Default is 256. 3. Execute commands before Az is loaded AND after it is unloaded. You may want to assign CLIPS: and then deassign CLIPS: 4. Change font to any Topaz font (sizes 8/9/11). 5. Backup before saving a changed file. 6. Change Tab size. 7. Allow automatic indentation to depend on the last non-blank line rather than the previous line. 8. Allow Save As to change the name of the file in the title bar. 9. Put the cursor at the start of the block (rather than the end) after one has been inserted with Paste or Undel Block. 10. Change the defaults for insert/overstrike and case sensitivity. I would prefer a configuration file to this cumbersome method. However, there are only three or four options I want to use, and I can save them for use with my directory utility (DirWork). The only other way to avoid repetitious typing is to use an Alias. Summary Az is a full-featured editor - perhaps the most Amiga-ised of a bunch that includes Uedit, DME, Qed and Hed; particularly when it comes to block operations. It does everything I required of DME or Uedit, and with greater ease for the most part. It does not do everything that DME or Uedit can do, but I prefer ease of operation to a large list of possibilities. Highly recommended.  ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ## 24 ##