home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 December
/
simtel1292_SIMTEL_1292_Walnut_Creek.iso
/
msdos
/
editor
/
e34.arc
/
E!.DOC
next >
Wrap
Text File
|
1989-01-13
|
131KB
|
3,776 lines
E!.DOC
┌──────────────────────┐
│ " E! " │
╞══════════════════════╡
│Multifiles Text Editor│
╞══════════════════════╡
│ User's Guide │
│ │
│ Version 3.4 │
└──────────────────────┘
(c) Copyright Patrick Philippot - 1988,1989
E!.DOC page 1
E!.DOC
┌─────────────────┐
│TABLE OF CONTENTS│
└─────────────────┘
A. INTRODUCTION ..................................... page 3
B. INSTALLATION ..................................... page 5
notes about DOS 3.3 ............................. page 6
C. GETTING STARTED .................................. page 7
global file search .............................. page 7
non text files .................................. page 8
automatic positionning .......................... page 8
D. THE "E!" SCREEN .................................. page 10
status .......................................... page 10
text ............................................ page 10
command ......................................... page 10
help ............................................ page 11
file names ...................................... page 11
E. MAIN FUNCTION KEYS ............................... page 12
key oriented help ............................... page 12
F. MOVING THE CURSOR ................................ page 14
G. EDITING FUNCTIONS ................................ page 17
undo ............................................ page 21
H. BLOCKS MANIPULATION .............................. page 23
marking / unmarking blocks ...................... page 23
deleting a block ................................ page 24
copying a block.................................. page 24
moving a block .................................. page 24
overlaying a block .............................. page 24
adjusting a block ............................... page 24
special functions ............................... page 25
I. TEXT FORMATTING .................................. page 27
J. DRAWING .......................................... page 29
K. COMMANDS ......................................... page 30
about E! commands ............................... page 30
commands reference .............................. page 31
search / replace commands ....................... page 40
L. MACROS ........................................... page 43
M. PROFILES ......................................... page 46
typematic ....................................... page 46
N. PROGRAMMING SUPPORT .............................. page 52
O. E! IS A SHAREWARE ................................ page 54
APPENDIX 1 ....................................... page 55
APPENDIX 2 ....................................... page 56
APPENDIX 3 ....................................... page 59
E!.DOC page 2
E!.DOC
┌──────────────────────┐
│ " E! " │
╞══════════════════════╡
│Multifiles Text Editor│
╞══════════════════════╡
│ User's Guide │
│ │
│ Version 3.4 │
└──────────────────────┘
(c) Copyright Patrick Philippot - 1988,1989,1990
A. INTRODUCTION
_______________
E! is a powerful full-screen text editor. Its implementation
has been driven by three keywords : quick, simple and efficient.
It will allow you to edit as many files as your system memory can
hold simultaneously. A "split screen" mode is available to see two
different parts of a file on the same screen. Although E! is not a
word processor it offers some functions you will rarely find in a
text editor. His very versatile interface with DOS makes it a
valuable tool for programmers but it will be used by non
programmers as "every day's" text editor.
E! is not a word processor. It edits and saves ASCII files and
does not include any control character in the text flow except if
you insert them yourself. It does not support any printer but you
have the opportunity to add printer control characters in your text
very easily.
E! is a professional level tool. It is a high configurable text
editor and you will tailor it to exactly suit your needs using
PROFILES and MACROS.
E! supports EGA 43 lines mode, VGA 50 lines mode and a special
35 lines mode which is more readable than the previous ones. The IBM
101T enhanced keyboard is also fully supported.
The number of E! built-in functions is VERY high. These
functions can be grouped together to build macros. E! macros are
saved in macro files and you can use them at any time during
editing. You can also assign a macro to any key.
E! configuration can be changed AT ANY TIME by loading a new
PROFILE. So you can have PROFILES adapted for programming support,
PROFILES adapted to program documentation editing, etc...
When loading a file E! automatically expands tabs if this is
specified in the main PROFILE. The same option automatically
compresses blanks to tabs when saving the edited file. This allows E!
internals to work only with blanks. This is very important for the
block manipulations functions which are one of the most powerful
features of E!.
E! version 3.2 offers programming support. You can compile any
source file from within the editor without leaving it. Compiling
E!.DOC page 3
E!.DOC
errors are retrieved from the compiler and E! will then point
directly to the error in the source text. Compiler error messages are
displayed just like in an integrated environment. E! supports ANY
compiler issuing standard error messages. Borland and Microsoft
compilers (trademarks) have been successfully tested from within E!.
E!.DOC page 4
E!.DOC
B. INSTALLATION
_______________
20 files are provided on the E! diskette :
E!.EXE the editing program
E!.HLP the help file
E!KEY.HLP the key oriented help file
E!.PRO the sample PROFILE
E!.MSG the messages file
READ.ME the last news
E!FNT35.EGA special 35 lines mode 8x10 font
E!FNT352.EGA another 35 lines font
E!FNT251.EGA two 25 lines mode EGA replacement fonts
E!FNT252.EGA
E!FNT251.VGA two 25 lines mode VGA replacement fonts
E!FNT252.VGA
E!FONT.EXE the font loader
E!FONT.DOC the E!FONT documentation
EDITFONT.EXE the font editor
EDITFONT.DOC the EDITFONT documentation
MACGEN.EXE the macros editor / generator
MACGEN.DOC the MACGEN documentation
REGISTR.TXT the registration form
E!.DOC ready to print documentation
("type E!.DOC > prn")
Please backup these files as soon as possible.
The minimum configuration needed to install E! is :
- IBM PC or PS/2 or compatible with 320 K memory.
(256 to be loaded and 320 to work normally)
- 1 diskette drive (not recommended)
- DOS 3.xx
- color or monochrome display with MDA, CGA, EGA, PGA,
MCGA, VGA or Hercules adapter.
- 83 or 101 keys keyboard.
To install E! on a two diskette drive system, you only need
to copy all files except documentation on a work diskette.
Documentation will not fit on the same diskette that programs and
utility files.
To install E! on a hard disk system, create a directory named
C:\E! (or whatever name you'd like) and copy all files in this
directory.
Then edit your autoexec.bat and add the following line:
SET E!=C:\E! (or the name you choosed)
You can extend your environment string if needed using the
following DOS command in your CONFIG.SYS :
SHELL=C:\COMMAND.COM /P /E:nnn
This will set the environment string length to nnn.
E!.DOC page 5
E!.DOC
This way, E! will easily find the help file, the main PROFILE
and all utility files (such as the font files). All temporary files
generated by E! will be written in that directory. Macros will be
retrieved from and saved to that directory also.
If there is no E! environment variable in your environment
string, E! will use the current directory as a default. Even if you
use E! on a two diskette drives system, we recommend you set the E!
variable to the right drive.
If you are working with a hard disk, don't forget to add the
directory where you put your E! files to your PATH command.
So far, you are done with the installation of the E! editor.
NOTES about DOS 3.3 :
The keyboard driver of DOS 3.3 has some bugs. It does not
recognize some keystrokes from enhanced keyboard and some "old"
keystrokes like Alt - or Alt =. This is at least true for some
european drivers like KEYB FR or KEYB GR. If you have any problem
with the keyboard under DOS 3.3, use the KEYBxx.COM program from DOS
3.2 or 3.1 instead of KEYB.COM.
If you still have problems with functions assigned to
"unreachable" keystrokes on your keyboard, try reassign these
functions to another key. See below.
Please see also the "TYPEMATIC" section of the PROFILEs chapter.
If you have a RAM disk it is highly recommended that you
autoexec.bat copy E!.EXE, E! help and messages files and macro
files to this RAM disk.
E!.DOC page 6
E!.DOC
C. GETTING STARTED
__________________
There is two ways to put E! at work :
1. Enter E! without any parameter at the DOS prompt.
2. Enter E! followed by one or more file specification. DOS
"wildcards" (* and ?) are allowed.
E! [specfich1] [specfich2]...[specfichn] [/l]
example :
E! C:\*.BAT C:\EDIT\*.*
will load any .BAT file from the root directory and all files
from the C:\EDIT directory if there is enough memory space to hold
all these files.
You can use the "/l" or "/L" parameter anywhere on the command
line to tell E! to load all the files edited in the last E! session
in that directory. This option will only work if your active
profile contains the following line:
LOG YES
examples :
e! /l
e! *.pas /l
e! *.pas /l *.doc
are valid E! command lines.
/l is the only command line parameter accepted by E!. All other
parameter should be a file specification. All other options are
definable within the PROFILEs. Please see also "AUTOMATIC
POSITIONNING".
During a E! session a file is never empty and contains at least
a CRLF sequence followed by an EOF mark (1Ah). So its size will be at
least 3 bytes.
GLOBAL FILE SEARCH
******************
Except if you specify a path for the file(s) you want to edit
E! will always search in the current directory only. If you want E!
to search in other directories you will have to use the E!PATH
environment variable. If you want E! to search automatically in the
C:\ASM\SOURCES directory you have to add the following line to your
AUTOEXEC.BAT file :
SET E!PATH=C:\ASM\SOURCES;
Use the same syntax as for the DOS PATH command.
E!.DOC page 7
E!.DOC
You can specify up to 20 different paths. If you are using the
DOS APPEND command, all paths specified within the APPEND=
environment substring are also searched.
You should notice that it is preferable to use the E!PATH
variable than any other command or utility. Actually, E! returns
always a full pathname for each file it does edit. If you let E!
find a file thru any utility like DOSSEARCH or DATAPATH etc...,
the file will be automatically saved in the current directory and
not in the directory where it was found. This is because the DOS
FindFirst and FindNext functions do not return a full path but only
the file name.
Please be aware that the GET command does not use the
capabilities described above.
If you called E! without any parameter, E! will edit a file
named E!TEMP.E!. If it already exists, it will be loaded.
NON TEXT FILES
**************
If you specified a non text file E! will try to load it. Most
of the time it will recognized that this file is not an editable
text and will issue a warning message. This message will also be
issued if the text file does not use full CRLF sequences to
terminate a line but only a CR. This does not matter and the file
will be normally editable. The missing Line Feed will be added by
file saving (except if you told E! not to do so thru the EOL
command in your PROFILE).
If you want E! not to load particular files, you only have to
use the LOCK option in your PROFILE. Please see the LOCK section in
the E! COMMANDS chapter.
If you have loaded a non text file PLEASE DO NOT SAVE IT ! or it
will likely be truncated.
AUTOMATIC POSITIONNING
**********************
Each time you leave a E! session, current file names, cursor
position and editing context are saved in a LOG file. If you reload
one of the last edited files E! will restore all these variables
and set the cursor at the last active position for this file. Here
is the description of the editing context elements which are
restored for each file :
- window position if any was active
- cursor position for each window
- text position within window
- wordwrap and justification flags or draw mode flag if it was
active
- bookmark position
Draw style is a global variable for E! and is not restored.
E!.DOC page 8
E!.DOC
This functions are available only if you the LOG option to YES.
If not or if the E!.LOG file has been deleted, E! will position the
cursor at the beginning of text.
Automatic repositionning does not work if you leave the file in
a non 25 lines editing mode.
The LOG YES/NO command can be inserted in your PROFILE or
entered on the E! command line. Please see the PROFILE chapter.
E!.DOC page 9
E!.DOC
D. THE "E!" SCREEN
__________________
COLORS
E! will configure itself automatically as it is loaded. It
will detect the display adapter type which is active and set all
relative options accordingly. In some cases E! will set all display
attributes to black and white. This will occur on PS/2 because on
PS/2 8530 there is no MONO (7) mode even if you have a monochrome
screen. If you want color attributes in such a case please set them
directly in your main PROFILE. See the PROFILE chapter.
*******
STATUS
The first line on the E! screen is the STATUS line. It contains
the following informations :
. The Text Beginning / Text End indicator or E! version number.
. The "file modified" indicator ( │M│ ).
. The current row number.
. The current column number.
. The total number of lines in the current text.
. A clock (Edit mode) or the file name (Command mode).
Informations on this line are continuously updated. If memory
becomes "short" the message "MEMORY !!!" will appear on the status
line (less than 2048 bytes available). If there is less than 1024
bytes available the message will blink. In this case please save and
release one or more files to make room.
TEXT
The following 22, 32, 40 or 47 lines (according to the
current settings) are devoted to the text being edited. This area
can be split into two windows. All editing functions are reviewed
later.
When the first line displayed is the very first line of the
text, the [Top of Text] indicator is displayed. When the last line
displayed is the very last line the [End of Text] indicator is
displayed on the STATUS line.
COMMAND
The last but one line on the screen is the E! COMMAND LINE. On
this line you will enter and edit E! commands. These commands will be
described later. While in EDIT mode this line displays :
. The current file name.
E!.DOC page 10
E!.DOC
. The insert toggle status (Ovrw or Ins).
. The WORDWRAP (W) , JUSTIFICATION (J), CASE ( or )
and DRAW mode toggles status.
. The block mark status (Marked,Unmarked or Extern).
Marked : the current text is marked.
Unmarked : no text is marked.
Extern : a text is marked but it is not the current text.
. The current text size.
While in COMMAND mode, the line is free, allowing the user to
enter, retrieve or edit commands. The ESCAPE key toggles between EDIT
mode and COMMAND mode. Commands can be retrieved using the up and
down arrow keys.
HELP
The last line in its normal state shows a help text
remembering the use of the function keys. If you depress the ALT,
SHIFT or CONTROL keys, this text will change according to the key
being depressed. (See DELAY command).
Error messages are displayed on the help line when necessary.
Functions requesting input from the user generally display their
prompt on the help line.
FILENAMES
Within E! filenames are always "normalized". The name used is
always the full path name of the file. This is a security for your
files since this function makes it impossible to load twice the same
file.
E!.DOC page 11
E!.DOC
E. MAIN FUNCTION KEYS
______________________
We will now present the "basic" configuration of E!. In EDIT
mode all keys and functions can be reassigned (except ESCAPE). May
be, you'll have to modify the help files or the messages file.
This files were intentionnaly made editable to make this job
easier. Though, in COMMAND mode editing keys are not redefinable.
So we recommend you do not reassign these keys.
i.e. : HOME will always put the cursor at the beginning of the
command line in COMMAND mode even if you assigned a new function to
the home key in EDIT mode.
REMEMBER : Use the ESCAPE key to toggle between EDIT mode and
COMMAND mode.
Now, let's have a look at the 10 main functions keys.
┌──┐ ┌──────┐
│F1│ │Alt F1│
└──┘ └──────┘
F1 will load the E! HELP file, E!.HLP. This is a "normal" text
file which you may want to edit each time you reassign a function to
a key. Using the PgDn and PgUp keys will take you from chapter to
chapter. If you want to access a chapter directly, enter the line
number specified in the table of contents on the command line.
We recommend you protect this file after modifying it using the
DOS command ATTRIB :
attrib +r e!.hlp
To make new modifications enter :
attrib -r e!.hlp
Editing read-only files is allowed with E!. It's just
impossible to save them.
KEY ORIENTED HELP
*****************
Let's assume you have forgotten what function is assigned to a
specific key. Just hit Alt F1. E! will issue a message asking you
to hit the key about which you want information. Hit this key and a
short message will be displayed explaining what this key actually
does.
This message is valid even if you have assigned a non default
function, a macro, a command or a profile to that key.
E!.DOC page 12
E!.DOC
┌──┐
│F2│
└──┘
F2 causes the current text to be written to disk. If the file
already exists a warning message is issued. Hit Y or N in response
to the prompt. If the active PROFILE contains the WARNING NO
command (or if it has not modified a previous WARNING NO command),
no warning message is issued and the file is saved without
prompting the user.
The WARNING NO command may be entered on the E! command line.
┌──┐
│F3│
└──┘
F3 tells E! you want to quit the current text. If this text has
been modified E! prompts you to know if you want to "discard" all
modifications you made. Hit Y or N in response to the prompt.
┌──┐
│F4│
└──┘
F4 is the same as F2 + F3. The only difference is that the
text is never "compressed" when you save it with F2. It will be
compressed if you save it with F4 only if your active PROFILE
contains the AUTOCOMP YES command, if you entered this command on
the E! command line or if you explicitly compressed the text with the
COMPRESS command before you saved it. Please see COMPRESS and
AUTOCOMP commands.
┌──┐
│F5│
└──┘
F5 creates an horizontal window at the current cursor
position. If a window was already active, it will be destroyed.
While in "screen split mode" you can toggle between windows with the
ALT F5 key.
Updating a window will also update the alternate window if they
share a common portion of text.
┌──┐
│F6│
└──┘
This key activates, initializes or terminates the DRAW mode.
DRAW mode is fully explained later in this documentation. E!
automatically toggles to COMMAND mode and prompts you for a DRAW
mode. An help message is displayed allowing you to choose one of 8
DRAW modes. An empty entry activates the last active DRAW mode or the
mode #1 if you never used the DRAW mode in this session.
If you were already in DRAW mode it is deactivated.
While in DRAW mode, WORDWRAP and JUSTIFICATION are automatically
deactivated. They will be restored in their previous state when you
E!.DOC page 13
E!.DOC
will exit the DRAW mode.
┌──┐
│F7│
└──┘
F7 activates the COMMAND mode and initializes the NAME command.
So you can rename the current text. The original file will remain
unchanged. If you gave the name of an existing file, E! will prompt
you at save time only if the WARNING option is active. See above.
┌──┐
│F8│
└──┘
F8 activates the COMMAND mode and initializes the EDIT command.
E! waits for one or more file specifications. Like on the DOS
command line, wildcards are allowed. Please see GETTING STARTED.
┌──┐
│F9│
└──┘
F9 will restore the current line in its previous state, that
is the state it was when you moved the cursor to that line. Be
aware that certain functions validate the current line even if you
do not leave it. In this case F9 will take the new line into
account.
F9 will also add the current line into the UNDO buffer before
restoring the previous state of the line. So you can copy the line
anywhere in the text using ALT 8 (read from UNDO buffer) without
having to unmark an existing block or group of lines.
┌───┐ ┌───────┐
│F10│ │Alt F10│
└───┘ └───────┘
If you are editing several files simultaneously, you can move
thru the files buffers using F10 (forward) and ALT F10 (backward). If
you want to access a text directly you can:
1/ Enter an EDIT filename command. E! knows that the file is
already in memory and will not reload it.
2/ Use the ALT1..3 keys to mark a text and access it directly
using the same keys.
E!.DOC page 14
E!.DOC
F. MOVING THE CURSOR
____________________
Moving the cursor with E! is done in a very classical way.
That is you will not be surprised using general purpose keys such
as arrow keys, PgDn, PgUp, Home and so on... Although this is
absolutely possible, we don't recommend that you reassigned such
"classical" keys.
Direction keys....Move one character up, down, left or
right. Pressing the down arrow will add a
new and empty line to the text if the
EXTENSION option of the active profile
has been set to YES (default).
SHIFT+arrow.......If your keyboard does not accept the
TYPEMATIC commands you can accelerate the
cursor horizontal displacement by keeping
one of the SHIFT keys depressed when you
use the left or right arrow key. This may
not work on certain "compatibles" like
the COMPAQ machines. In this case you
will have to set the CURSOR option to NO
in your main profile. This will avoid
problems.
Tab...............Move the cursor to the next TAB pos. (See
Autotab). All text at the right of the
cursor position is moved along with the
cursor.
Shift Tab.........Move the cursor to the previous TAB
position.
Backspace.........Delete left character. Please see
Autoback. If the cursor is at line
beginning, the current line is joined to
the previous line.
PgDn,PgUp.........Scroll one window up or down.
Home..............Move the cursor to the beginning of line.
If the cursor is already on this position
it is moved to the beginning of the
previous line.
End...............Move the cursor to the end of line. If
the cursor is already at this position it
will be moved to the end of the next
line.
Ctrl Home.........Move the cursor to the first line of
text. If the cursor is already on the
first line it will be moved to the
beginning of line.
Ctrl End..........Does the same but towards the end of the
current text.
E!.DOC page 15
E!.DOC
Ctrl PgUp,PgDn....Move the cursor to the top or bottom of
the active window.
Ctrl Left,Right...Move the cursor to the next, previous
word. E! really searches a word, so all
punctuations signs will be ignored.
Shft F1,F2,F3,F4..Scroll the current window right, left,
up or down. You can also scroll larger
amounts of text, left or right using
ALT F3 or ALT F4. The amount of columns
to be scrolled is specified using the
SCROLL command in the active PROFILE or
on the E! command line. E! defaults to 40
columns.
Shft F5...........Center the current line in the active
window.
Shft F6...........Move the current line to the top of
active window.
Alt I.............Remove all TAB positions.
Alt K.............Drop a bookmark at current cursor
position. Using ALT K again will move the
cursor to the bookmark and remove it.
Should you want to use the bookmark more
than once, so please hit ALT K twice
each time you move the cursor to the
bookmark. There is one bookmark per
active text.
Alt P.............Move the cursor to the next paragraph.
Paragraphs are separated with blank
lines.
Alt T,R...........CreaTe or Remove a TAB position. Use TAB
or SHIFT TAB to access TAB positions.
Alt Y,E...........Move the cursor to the beginning or to
the end of the marked block.
E!.DOC page 16
E!.DOC
G. EDITING FUNCTIONS
____________________
E! has a lot of editing features. Generally editing functions
will be called using a keystroke involving the Control key. The next
chapter explains how E! implements block manipulation functions.
These functions are generally called with a keystroke involving the
Alt key.
Ctrl A............Move the current line first non blank
character to cursor position.
Ctrl B............Convert the first letter of the current
word to uppercase. If the current word
contains one of the following characters :
- (minus) , _ (underscore) , . (dot)
each letter preceding this character will
also be converted to uppercase. All other
characters in the current word are
converted to lowercase if necessary. This
will be useful if you are using Pascal
conventions to name your program variables.
Ctrl C............Clear the current line.
Ctrl D............Repeat character. This function will be
used to enter a great number of identical
characters. First enter the character to be
repeated and then enter the 3 digits
constituing the repeat count. Note : 3
digits are mandatory. When calling this
function E! displays a help message showing
you how to enter this information.
Ctrl E............Delete end of line from cursor.
Ctrl F............Toggle the WORDWRAP mode.
Ctrl G............Toggle the 35, 43 or 50 lines mode if an
EGA or VGA adapter is installed and if the
EGA-VGA command is set to YES in your
active profile (which is the default). To
access the 35 lines mode you have to set
the 35LINES command to YES in your active
profile.
Adapter EGA VGA
EGA-VGA YES
35LINES NO........ 43 50
EGA-VGA YES
35LINES YES....... 35 35
To set the 35 lines mode E! needs a file
named E!FNT35.EGA. This file contains the
font for the 35 lines mode. This file must
E!.DOC page 17
E!.DOC
be present either in the current directory
or in the E! directory (directory defined
with SET E!=....). Please notice that
loading a non 25 lines mode also modifies
the BIOS hardcopy routine so it will print
exactly the number of lines you are
actually using on your screen. There is an
alternate 35 lines font which is named
E!FNT352.EGA. If you want to use it instead
of the default font please rename this file
to E!FNT35.EGA.
Ctrl J............Toggle the right JUSTIFICATION mode.
Ctrl L............If the current word is a valid file name it
will be immediatly edited. This function
combined with the LIST command will be very
very convenient to search and edit files in
your directories.
example : in a C source file you have the
following line:
#include "c:\msc\include\myprog.h"
Move the cursor anywhere between the 2
quote characters and hit Ctrl L. MYPROG.H
will be edited.
Ctrl N............Insert the file name at the cursor
position. This works also on the E! command
line.
Ctrl P............Execute active macro (see MACROS).
Ctrl Q............Restore previous macro (see MACROS).
Ctrl R............Record macro (see MACROS).
Ctrl S............Repeat last search (see SEARCH commands).
Ctrl T............Insert date and time at cursor position.
Ctrl U............Cancel macro recording (see macros).
Ctrl V............Reset search variables (see SEARCH
commands).
Ctrl W............Delete current word.
Ctrl X............If the current line is a valid DOS
command it will be eXecuted. As with Ctrl
L, it will be very convenient to use this
function combined with the LIST command.
For example, if you are editing a batch
file you will conveniently debug it or
execute it partially using Ctrl X on each
line you want to be eXecuted. If you want
to delete a file in a directory, use the
E!.DOC page 18
E!.DOC
LIST command to display that directory,
insert "DEL" before the file name and use
Ctrl X, etc...
Ctrl Z............If the current line is a valid directory
name, this directory will be LISTed. Any
<DIR> sequence at the beginning of the line
will do no harm (that is, if you obtained
the directory name from a LIST command Ctrl
Z will work anyway).
Enter.............Insert a new line and move the cursor under
the first non blank character of the
previous line. If the WORDWRAP mode has
been activated the cursor is moved to the
left margin. If the previous line is a
blank line, cursor is moved to the
paragraph margin. To insert a line before
the very first line of text you have to put
the cursor on the status line and to hit
ENTER. No other function is available when
the cursor stays on the status line.
BSpace............Delete left character. See AUTOBACK. If the
cursor is at the beginning of line the
current line is joined to the previous
line.
Ctrl Bsp..........Delete the current line. This line will
be saved in the UNDO buffer. You can
restore it later using Alt 8 : it will be
restored at cursor position.
Del...............Delete current character.
Insert............Toggle insert mode.
Ctrl F1...........Convert the current word to UPPERCASE. Ctrl
F2 will convert to lowercase.
Ctrl F3...........Convert the current block to UPPERCASE.
Ctrl F4 will convert to lowercase.
Ctrl F6...........Reformat current paragraph (see
FORMATTING).
Ctrl F7...........Reformat current marked group of LINES.
Alt J.............Join next line to current line.
Alt S.............Split current line at cursor position. The
beginning of the new line is aligned on the
the beginning of the current line. The new
line becomes the current line.
Alt V.............Remove all trailing blanks for all text
lines. Trailing blanks are sometimes
generated using the COPY BLOCK function.
The SPACES YES option in your active
profile will tell E! to automatically
E!.DOC page 19
E!.DOC
remove all trailing blanks before saving a
file.
Alt X.............Toggle access to "control characters
editing". Since many E! functions are
driven through control characters it is
normally not possible to insert them in the
edited text. Alt X disables control
characters interpretation and print them
"as is" in the text. Doing so makes all
functions triggered with Control characters
unavailable until you hit Alt X again.
Note: Using control character 26 (Ctrl Z)
in a text will insert an EOF mark. So you
will not be able to reload the file beyond
this mark.
Alt =.............Insert blanks without moving the cursor.
NOTE: see remarks on DOS 3.3 at the
beginning of this documentation and in the
DEFINE command section.
Alt 0.............Search the current word beginning at
cursor position. You can search next
occurences using Ctrl S or Alt 0.
Alt 1,2,3.........You can "mark" the current text using one
of these keys. Using the same key again
will bring you back directly to the
"marked" text from another text. If you
hit the Alt n key while editing a text
which IS the text corresponding to that
key, marking is removed.
Alt 4.............Remove all text marks. If you release a
"marked" text from memory the
corresponding mark becomes available to
other texts.
Alt 5.............Refresh the current text. That is all
modifications you made since you loaded
or saved the text are discarded and the
text is reloaded from disk file. This
works exactly the same as releasing the
text from memory without saving it and
issuing a new EDIT command but it saves
time.
Alt 6.............Search a "MATCHING BRACE". Assuming you
are editing the following expression :
3 * (x / (y + z * ( a + b + c)) + 45 )
If you want to find the parenthesis
corresponding to the second left
parenthesis, move the cursor to the
second left parenthesis and hit Alt 6.
The cursor will be moved to the
corresponding right parenthesis.
E!.DOC page 20
E!.DOC
3 * (x / (y + z * ( a + b + c)) + 45 )
If there is no matching brace on the
current line, the cursor is not moved.
Alt 6 works with braces pairs showed in
the next paragraph. Alt 6 works with
right or left braces.
Alt 7.............Insert a "PAIRED BRACE".
1. E! looks for one of the following
sequence on the current line between the
beginning of line and the current cursor
position :
/* , (* , { , < , [ , (
If such a sequence is found the
corresponding right brace is inserted.
2.If not, E! looks for one of the following
sequence between the current cursor
position and the end of line :
*/ , *) , } , > , ] , )
If such a sequence is found the
corresponding left brace is inserted. If
several "brace sequences" are found,
priority order is as shown above.
Alt 8.............See UNDO.
Alt 9.............Insert the last line saved to the DOS
screen buffer just after the current
line. The DOS screen buffer contains the
last 25 lines from the last DOS session
executed from E! or, if no DOS session
has been executed, the screen that was
active when E! was called from the DOS
command line. Trailing blank lines on the
screen are not saved in the DOS screen
buffer. So you can insert in your text
the results of any program if it does not
clear the screen on exit. DOS lines can be
restored only once.
UNDO FUNCTION - (ALT 8)
***********************
When you delete lines with Ctrl Bsp or Alt D (marked group of
lines - with Alt L) these lines are not lost but saved into the
UNDO buffer. The UNDO buffer size defaults to 2048 bytes but you
can modify it with the "UNDO n" option in your main profile where n
is the number of bytes. This command can be issued in the main
profile only (E!.LOG). That is each new UNDO command will be
E!.DOC page 21
E!.DOC
ignored. The upper limit for the UNDO size is 65521 bytes.
The UNDO buffer works on a LIFO basis, that is the last
deleted line will be restored first. So a call to the UNDO function
(Alt 8) will restore the last deleted line and so on until the UNDO
buffer is empty. Each line is restored on top of the current line
and becomes the active line. So the text will be reinserted in its
original state. There will be no UNDO buffer overflow; if there is
no room enough to store the last deleted line, the older line in
the buffer will be lost. A line can be restored only once from the
UNDO buffer.
Note : when the buffer is full, the time used to save a line
will be proportional to the buffer size. So, it is not recommended to
use too large UNDO buffer sizes.
E!.DOC page 22
E!.DOC
H. BLOCKS MANIPULATION
______________________
Block functions are one of the most valuable features of E!. All
block functions are available to work from a text to another, that
is, it is possible to move or copy a block or group of lines from one
text to another text. Consequently, only one active block is allowed
at one time. A call to a block function is effective even if the
block marked is not in the current text. So be careful, if you marked
a block in another text, it will be deleted if you hit Alt D even if
this text is not the current text. Before issuing a block command
please take a look at the block mark status on the command line. It
will indicate wether an internal or external block is marked.
For each block function to work, a rectangular block or group
of lines has to be marked first. Then you can apply every block
function to this block or group of lines. From now, we will generally
use the term "block" for everything that is marked.
MARKING A BLOCK - Alt B, Alt L and Alt Z
________________________________________
There is 3 ways to mark a block. First, you can mark a
RECTANGULAR block. To do so, you have to move the cursor to the upper
left corner of the block and hit Alt B. This will be already a block
containing only one character. To extend the block mark, move the
cursor to the lower right corner of the block and hit Alt B again.
Actually, the relative position of the cursor when you hit Alt B the
second time is not so important and you can choose a "lower right"
corner which is in fact "before" the "upper left" corner. That is,
you have just to hit Alt B twice to define a RECTANGULAR block and E!
will understand what you want to do, whatever the cursor position.
You can also mark GROUP of LINES using Alt L. Again, you have
to hit Alt L twice. All lines between the two marked lines will be
marked and highlighted. You may naturally mark only one line,
using Alt L only once.
The third way of marking is the SENTENCE marking (Alt Z). You
will use it in a similar way as you will use Alt L but the first
and last line of the group will accept to be partially marked
depending on the cursor position (column) when you hit Alt Z. This
way of marking is less frequently used than both BLOCK and LINES
marking but it can be useful to extract a sentence from a paragraph
when you are editing texts (but not programs).
Anyway, the marked zone will appear highlighted (the block
attribute can be specified in your profile like any other color). The
block mark status indicator on the command line will show "MARKED"
or "EXTERNAL" if you switch to another text.
From now, you can apply any of the function described below to
the marked area. This marked area can be modified at any time and
will remain active until you UNMARK it.
E!.DOC page 23
E!.DOC
UNMARKING A BLOCK - Alt U
_________________________
Alt U will unmark any marked area even if it is not in the
current text.
DELETING A BLOCK - Alt D
________________________
Alt D deletes the marked area. If the area was marked with Alt
L, all marked lines are saved in the UNDO buffer. If the area was
marked with Alt B the corresponding lines are not deleted even if
they are empty after block deletion. Don't use any marking to delete
only one line. Use Ctrl Bsp instead. Remember, the marked block will
be deleted even if it is an "external" block.
COPYING A BLOCK - Alt C
_______________________
Alt C copies the marked block at the cursor position. That is,
if the marked area is a GROUP of LINES, these lines are inserted
between the current line and the next line. If the marked area is a
RECTANGULAR block, this block is inserted at cursor position,
shifting all text to the right.
In COMMAND mode, the current block is copied at cursor position
only if there is enough room on the command line and if the block
height is 1.
MOVING A BLOCK - Alt M
______________________
This command works like the COPY command but the marked area is
deleted after being copied.
OVERLAYING A BLOCK - Alt O
__________________________
This command works like the COPY command but the block is not
inserted but overlayed at the cursor position and any existing text
is overwritten. It works only with the RECTANGULAR blocks. With
marked LINES it works exactly like COPY.
ADJUSTING A BLOCK - Alt A
_________________________
This function works only with RECTANGULAR blocks. It functions
like a MOVE but the block can overlay itself, so small adjustments of
the block position can be made very easily.
E!.DOC page 24
E!.DOC
SPECIAL FUNCTIONS
_________________
FILLING A BLOCK - Alt F
_______________________
Alt F prompts you for a character. Hit this character and the
marked block will be filled with it.
SORTING LINES - Alt G
_____________________
If the marked area is a GROUP of LINES the sort criterion will
be the entire line. With a RECTANGULAR block, the sort criterion
will be the marked part of the line. E! will prompt you for the
sort direction (ascending or descending). If there is no room
enough on the E! stack to complete the sort it will be interrupted.
E! sort is VERY quick and it will be useful for many editing tasks.
DRAWING A BOX - Alt H
_____________________
Alt H will draw a box around a RECTANGULAR block. The box is
drawn WITHIN the highlighted area. So please reserve space around the
text when marking the block. See also DRAWING mode.
ADDING BLOCK CONTENT - Alt N
____________________________
Alt N evaluates all lines of the RECTANGULAR block and add
them together (if they represent numerical values). The result is
then inserted at cursor position. The cursor may be in another text
than the marked text. If the block data cannot be evaluated the
error coordinates are displayed on the help line.
CENTERING TEXT IN A BLOCK - Ctrl F5
___________________________________
Ctrl F5 will center the marked text in the marked area.
SHIFTING LINES - Alt -
_______________________
This function is a convenient way to shift a group of lines to
the right. You will have to mark a RECTANGULAR area. The block left
limit will the considered to be the start position for shifting,
the amount of columns to shift will be the block width and all
lines involved in the block marked will be shifted. This is a
little hard to explain but fortunately very easy to do. Just try
it!
NOTE : see remarks about DOS 3.4 in the DEFINE command
paragraph and at the beginning of this documentation.
E!.DOC page 25
E!.DOC
E!.DOC page 26
E!.DOC
I. FORMATTING
_____________
Although E! is not a word processing software, it offers you
some powerful formatting functions. Two formatting modes are
available : WORDWRAP and JUSTIFICATION. JUSTIFICATION works almost
the same as WORDWRAP but it also makes a right justification of the
text being edited.
This can be obtained two ways :
- reformatting an existing paragraph.
or
- formatting the text automatically as you type it.
To activate these modes you have first to hit Ctrl F
(WORDWRAP). If you want to enable the JUSTIFICATION mode you have
also to hit Ctrl J. If you desable the WORDWRAP mode, you also
disable the JUSTIFICATION mode. Ctrl F and Ctrl J are toggle keys.
NOTE :
WORDWRAP YES and JUSTIFY YES are ignored in the main profile
(E!.LOG). This is because the main profile is read before any text
is loaded : E! maintains a WORDWRAP flag and a JUSTIFICATION flag
for each file. So, by reading the main profile E! does not know to
which file this flags should apply.
The JUSTIFICATION mode will only be active if the WORDWRAP mode
is active. So if you have JUSTIFY YES in a profile and if there is no
WORDWRAP YES command or if the WORDWRAP mode is not already active,
JUSTIFICATION mode will be without any effect.
Then you have to specify margins. There are three values you
can specify : the left margin, the right margin, the paragraph begin
margin. Defaults are respectively 10, 70 and 15. To change margins
values use the MARGINS command or load a profile containing a
MARGINS command.
To format a paragraph (remember : a paragraph is any contiguous
text between blank lines) move the cursor to any position within the
paragraph and hit Ctrl F6.
For new paragraphs, simply enter your text and don't worry :
E! will format it as you type. Each time you'll reach the right
margin E! will justify (if required) the current line, insert a
new line, move the cursor to the left margin of the new line so
quick that you can continue entering text without any problem.
Though, if you make a modification in the paragraph you will have to
reformat with Ctrl F6.
To format several paragraphs at a time mark them with Alt L and
hit CTrl F7. Formatting will begin with the first paragraph
containing a marked line and continue until the last paragraph
containing a marked line has been reformated.
If you toggle to DRAW mode, WORDWRAP and JUSTIFICATION are
automatically disabled and reactivated when you leave the DRW mode.
E!.DOC page 27
E!.DOC
E!.DOC page 28
E!.DOC
J. DRAWING
__________
With E! you can make complex drawings with semi-graphics
characters very easily. Hit F6 or enter DRAW on the command line
and specify a draw style (or mode) between 1 and 8 :
┌─────┐ ╔═════╗ ╒═════╕ ╓─────╖
1 ├─────┤ 2 ╠═════╣ 3 ╞═════╡ 4 ╟─────╢
└─────┘ ╚═════╝ ╘═════╛ ╙─────╜
███████ +++++++ +-----+ +-----+
5 █ █ 6 + + 7 ! ! 8 | |
███████ +++++++ +-----+ +-----+
When the draw mode is active you "draw" by simply moving the 4
direction keys. E! manages automatically lines crossings so you just
have to indicate in which direction you want to draw. E! will do the
job for you. To suspend drawing hit the SCROLLOCK key.
When SCROLLOCK is active, you can enter text and access many E!
functions. Though we recommend you don't stay in DRAW mode if it is
not necessary.
When you enter the DRAW mode, the first character E! will draw
depends on the last direction key which was used. A simple character
is considered as a right direction key (right arrow).
When you cut an existing line you can :
a. continue in the same direction, E! will draw a full cross
b. change the drawing direction, E! will link the two lines
properly.
If you make a mistake, just redraw over the existing line. The
mistake will be corrected.
Just spend a few minutes to try the DRAW mode : it's fun and
easy.
E!.DOC page 29
E!.DOC
K. COMMANDS
___________
E! commands are entered on the E! command line. You access the
E! command line with the ESCAPE key which is a toggle key and will
return you to the EDIT mode.
1.About E! commands
___________________
While in COMMAND mode you can use the whole command line to
enter commands. All commands may be upper or lowercase. You may also
use shortcuts to enter commands. You have to enter just as many
characters as E! needs to recognize the command (the "minimum"
command is specified for each command).
ex : Def for DEFINE
Asc for ASCII
Autot for Autotab
AutoC for Autocomp etc...
All entered commands are stored in a circular list. So you can
retrieve old commands, reenter them or edit them. If you reenter a
command without modifying it, it is not restored. Old commands are
retrieved with the UP and DOWN keys. There is no limit to the number
of commands E! can store.
While editing the command line, you can benefit from the
"normal" line editing functions (Home, End, Ctrl End, Ctrl
Right, Ctrl Left, etc...). All keystrokes not related to command
line editing are available and redirected to the text. So you can
continue marking and deleting text, move blocks etc... A VIRTUAL
cursor is always available, showing you what is the active cursor
position in the text.
(Please see ALT C in the BLOCKS MANIPULATION chapter).
Last but not least, any command entered on the command line and
not recognized by E! is redirected to DOS and executed. So you can
run any internal or external DOS command or any program directly from
the E! command line. If there is any problem executing this command
E! will issue an appropriate message.
You can force command redirection to DOS prefixing your command
with "*".
ex : *LIST
will not call the E! "LIST" command but will directly execute
the LIST program if available.
You can also execute a "blind" DOS command prefixing the
command name with "@". Doing so the E! screen will not be cleared
and the DOS command will be executed "in the background". All
program STANDARD outputs will be redirected in order to keep the E!
screen intact. These ouputs are LOST. If you run a program making
BIOS calls or direct video access, the E! screen will be naturally
affected.
E!.DOC page 30
E!.DOC
Example:
@cd\ will switch to the root directory without showing any DOS
prompt and without modifying the E! screen. This will save time.
but issuing
@dir
would a real time loss because any output would be lost.
@dir > list.lst
should be more interesting.
WARNING : If you load a TSR program (resident program) from E!
this will generate big problems. Generally E! will see that and
issue a warning message asking you to save the edited texts. No
program making DOS accesses will accept that you load a TSR program
during the shell.
Before processing DOS commands E! will try to recover as much
memory as possible for your program to run. While doing this
E! issues a message : "Compressing memory...". During idle times
(that is when you don't hit the keyboard) E! continually reorganizes
memory to have your text laying as low as possible in memory. This
will also contribute to free some space for your programs.
2. E! COMMANDS REFERENCE
_________________________
E! commands are listed below in alphabetical order. Generally
commands requiring parameters may be entered without parameters. In
this case E! will show you the active parameters for this function.
This is not true for the DELAY and SCROLL functions which are not
used very frequently.
ex : MARGINS entered without any parameters will display the
active margins. So you may edit them and enter the new values.
AUTOBACK [yes/no] (default YES) - ( autob )
If AUTOBACK has been set to YES, pressing the BACKSPACE key will
delete the left character and move the right part of the line to
left. This is the way BACKSPACE normally works. Setting BACKSPACE to
NO will cause the left character to be deleted but the line remains
unchanged, that is the deleted character is replaced with a BLANK. No
part of the line will be moved.
AUTOCOMP [yes/no] (default NO) - ( autoc )
E! always consider the TAB character as a normal character and
will display it as a graphic chararacter. TAB keystrokes are
actually emulated. If the text being loaded contains TAB characters
you may want these TAB's to be expanded. In the same way, you may
want to save some disk space and convert all blanks sequences to
TABs when it is possible. This is done using AUTOCOMP, EXPAND and
COMPRESS. If AUTOCOMP is set to YES, files will be automatically
E!.DOC page 31
E!.DOC
expanded when they are loaded and compressed when they are written
to disk using F4. E! uses a tabulation increment of 8 which is the
value used by DOS and all ascci editors. So you will have no
problems loading files edited with other programs.
E! will not compress the blanks if you save the file with F2,
SAVE or during automatic saving. Only F4 causes the blanks to be
compressed. Naturally, if you already compressed the text with
COMPRESS, compression is maintained.
Strings between quotes (' or ") will never be compressed. So you
will never have problems compressing sources files containing strings
to be displayed.
Compression will save about 15-20% of the file size on disk
but there will be a little overhead when the file is loaded or
saved. Compression will be optimal if text indentation is made with
the default increment (8).
See COMPRESS and EXPAND.
E!.MSG, E!KEY.HLP and E!.HLP must not be compressed.
Be aware that certain DOS commands don't know how to deal with
tab characters. Hence, it is not recommended to compress batch files,
autoexec.bat or config.sys.
AUTOTAB [yes/no] (default NO) - ( autot )
AUTOTAB YES will cause the TAB key to move the cursor under the
first character of the next word on the previous line. Previous tab
positions are ignored until AUTOTAB is set to NO.
APPEND [filename]/[devname] - ( app )
The marked BLOCK or GROUP of lines is appended to the file
or to the DOS device specified (generally the printer).
ASCII char - ( asc )
This command will display the ascii code of the character passed
as parameter. If no parameter is passed, the current character is
taken as parameter if there is a valid character at the current
cursor position.
AUTOLIMIT n (default 500) - ( autol )
n is the number of keystrokes triggering an autosave. This is a
global value for all files being edited. Entering 0 will deactivate
the AUTOSAVE process. A non zero value for AUTOLIMIT will not
activate the AUTOSAVE process if it is set to NO.
AUTOSAVE [yes/no] (default NO) ( autosa )
AUTOSAVE YES will activate the AUTOSAVE mode. When the number
of keys you pressed reaches the value specified with AUTOLIMIT the
text being edited is automatically saved to disk. Keystrokes count
is maintained for each text separately. AUTOSAVE is a global
command affecting all texts being edited.
E!.DOC page 32
E!.DOC
If AUTOSAVE is active, every call to a DOS command or a call to
the E! "COMPILE" command will cause every modified text ( M on the
status line) to be saved before the command is executed. This is very
useful if you are not convinced that the program you want to execute
is a safe program or if you want to be sure to compile the last
version of the source file your are editing.
AUTOSCROLL [yes/no] (default NO) - (autosc)
When you are entering new text you will often find you editing
on the last physical line of the active window. Since you cannot
see the text under the active line you may feel uncomfortable. If
AUTOSCROLL is set to YES, as soon as you reach the middle of the
active window when you insert new lines, E! will automatically
scroll one line up when you insert a new line. So you will stay
editing on the middle of the active window. If you begin inserting
past the "middle" line you will stay on the line where you began
inserting.
BAK [yes/no] (default NO) - ( bak )
Setting BAK to YES will cause E! to generate .BAK copy of your
existing file each time you save a new version. This is a good
security but will consume much disk space. Automatic saving does not
generate a .BAK file.
CANCEL [all]|[filename] - ( can )
The specified file or all files submitted to the DOS PRINT
spooler are deleted from the PRINT queue. Cancel without parameter
deletes the current file from the PRINT queue. See SUBMIT.
CHAR n - ( char )
Display the character the ascii code of which is n (decimal).
CODE [yes/no] (default NO) - ( code )
If CODE is set to YES the error code value is displayed along
with error messages. This may be convenient if the error messages
file has been lost or not found. So you can refer to the
documentation.
COMPRESS / EXPAND - ( compr / expan )
Even if AUTOCOMP is set to NO, you may want to compress
blanks to tabs in your text. Use COMPRESS to do that. Tabs will
appear as a normal control character. EXPAND will expand tabs to
blanks using the DOS conventions. The file size indicator on the
command line will be updated so you can see what is the benefit of
an eventual compression.
E! will not compress a string containing quotes. That is, the
part between quotes will not be compressed. To avoid expansion
problems, a line of text containing tabs will not be compressed.
UNDO n
This command specifies the size of the E! UNDO buffer. It may
vary from 256 to 65521 bytes. Both sizes are not recommended. The
E!.DOC page 33
E!.DOC
default is 2048 bytes. This command is actually not a real command
and you cannot enter it on the command line. You may only use it ONCE
in the MAIN profile (E!.PRO). Any new UNDO command in a profile will
be ignored.
DEFINE code - ( def )
code string ou [code " string "] ou [code 'string ']
code @nmacname
code $proname
code &ncommandname
code functioncode
The DEFINE command is one of the most important feature of E!.
This is the way to redefine the keyboard and to affect any kind of
command, keystroke, string, profile, function or macro to a key.
You will have generally two parameters to enter along with the
DEFINE command. The first parameter is always the keycode of the key
you want to reassign. These keycodes are found in APPENDIX 2 and in
the HELP file (partially for the latter).
1. The most simple command is the string assignment. Simply
enter the string you want to assign to the key as the second
parameter to the DEFINE command. The string may be entered without
quotes but in this case leading and trailing blanks will be ignored.
You may use simple or double quotes.
ex : Def 380 'E! is great'
will affect the specified string to Alt 5.
2. Affecting a macro (see MACROS) to a key is also quite simple.
ex : Def 380 @macname.mac
will assign the macro saved in the MACNAME.MAC file to the Alt
5 key. Each time you will press Alt 5 this macro will be loaded and
executed. The active macro is temporarily saved and restored when
the called macro is terminated. The .MAC extension is a default. So
you don't need to specify it.
3. To affect a profile to a key juste change the "@" character
to a "$".
ex : Def 380 $proname
will assign the profile PRONAME.PRO to the Alt 5 key. When you
will press Alt 5, PRONAME.PRO will be loaded and E! will be
reconfigured using this new profile. This will be very useful if
you have to switch between a program and text file. Using judicious
profiles will help you to quickly change the editing context.
4. Using the same method you will affect any command (including
DOS commands) to a key :
ex : Def 378 &edit myfile.e!
will cause MYFILE.E! to be edited each time you press Alt 3.
5. DEFINE also allows you to dinamically redefine the entire
E!.DOC page 34
E!.DOC
keyboard if you want :
Define keycode functioncode
ex : Def 389 3
will assign the "Align Text" function (normally assigned to Ctrl
A) to the F11 key if you have an enhanced keyboard. Ctrl A will
always trigger the same function but it is now available for another
job. Functions codes are described in APPENDIX 2.
E! has a more easier way to reassign keystrokes. Just enter
DEFINE (def) without any parameter on the command line. E! will
prompt you to hit :
1. the target key for the reassignment
2. the default key triggering the function you want to reassign.
Example:
Enter "def" on the command line.
Hit F11 (this key is normally not affected).
(E! will display 389 on the command line)
Hit Ctrl A ("align text" function)
(E! will display 1 on the command line)
Hit Enter.
That's all. You will not have to remember keycodes and functions
codes. This definition may be edited before you hit ENTER. So you can
change the second code to any string.
NOTE : You may have problems with DOS 3.3. Certain keystrokes
are no more recognized with some keyboard drivers (FR and GR). If
this is the case and if you don't need the CODE PAGE switching, you
may use a keyboard driver from a previous DOS. This works very fine.
6. Using DEFINE with only the first parameter will reaffect the
default function to the specified key.
ex : Def 378
will cause Alt 3 to trigger the default function which is the
text marking.
Normally you will use DEFINE mainly in your PROFILES. You may
also use the following tip : use the same key in two different
profiles to toggle between them. You may have a main profile
designed for programming containing a DEFINE command to assign the
EDITING PROFILE loading to a key. This EDITING profile may also
contain a command assigning the MAIN PROFILE loading to the same
key. So this key will toggle between the two profiles.
DELAY n (default 850 - PC AT value)
DELAY specifies how long you have to press on a SHIFT key (Alt,
E!.DOC page 35
E!.DOC
Ctrl, Shift) to display the secondary help lines corresponding to
that shift key. 0 will deactivate the secondary help lines. The upper
limit for DELAY is 32767. Use it only if you are VERY patient.
DENUMBER (denum)
If you used the NUMBER command, DENUMber will delete line
numbering at the beginning of each line. WARNING : if this numbering
has been altered, E! may delete some valid characters. See NUMBER.
DRAW [1]|.......|[8] or empty entry (default 1) - ( draw )
See DRAW chapter.
DOS
This command simply opens a DOS session. Enter EXIT to return
to E!. This is not the more simple way to run DOS commands since
you may enter these commands directly on the E! command line. DOS
is here for convenience if you really need to "escape" to DOS.
See also AUTOSAVE.
EDIT [filespec1] [filespec2]...[filespecn] - ( edit )
See GETTING STARTED.
NOTE - you have to be aware of two things :
- Before loading a file E! controls if there is enough memory
to keep it into memory. If not, the file is simply not loaded and
an error message is issued.
- Even if the first control (which cannot be very accurate) is
ok, a control is made for each line loaded. This is a security for
your files.
EPROFILE - ( epro )
Edit the E! main profile : E!.PRO.
EGA-VGA [yes/no] (default YES)
This command allows a 35/43/50 lines display mode when you hit
Ctrl G. Normally you need not to use this command since E!
automatically detects if you can benefit from these modes.
Unfortunately, some multi-standard display adapters do not behave
very well and you may experiment problems. So this command is
available to "manually" control these display modes.
EMSG
Edit the E!.MSG file. So you can freely modify the error
messages and help lines if you made some reassignments. The error
messages lines order MUST not be changed for messages consistency.
PUT filename - ( put )
This command will cause the marked BLOCK or GROUP of lines to be
written in the specified file wich may be a DOS system file (PRN,
E!.DOC page 36
E!.DOC
LPT1, etc...). Any existing file is overwritten. If WARNING is
active, E! will issue a warning message.
PRINT /code1/code2/code3/... - ( prin )
This is the way to print the current text. The printer will
first be initialized with the specified code1....coden ascii codes
(decimal).
ex : PRINT /27/69 (ESC E)
will print the current file with a near-letter-quality on
an IBM compatible printer.
This way of printing is not buffered. To make a buffered print,
use the SUBMIT command. Naturally, if you have a print spooler
installed, the print will be buffered. Hit ESCAPE at any time to
cancel the print.
GET filename - ( get )
GET will load the specified file at the cursor position.
LIST [path] - ( list )
LIST is a very convenient command if you use it combined with
Ctrl L (edit current word as a file), Ctrl Z (list current word as
a directory), Ctrl X (execute cuurent line as a DOS command). LIST
without any parameter will display the current directory in a new
edit buffer. You may also specify a path and a file specification
if needed.
You may want to use Alt G to sort the displayed list. Each LIST
file is named LIST.nnn. nnn begins with 000 and is incremented along
your E! session. These files are erased as soon as they are created
and displayed but you may save them if you want.
Note 1 : In a LIST "." and ".." always point to the current
directory and the current directory parent directory. Not the
directory being displayed.
Note 2 : LIST.xxx will be also listed if you are listing the
E! directory (that is the directory you specified with SET E!=....).
LOG [yes/no] - (log)
If LOG is set to YES, a LOG file will be written each time E!
exits. This allows E! to reload the previous a session and to
position the cursor at the last editing position in the edited
files.
MACRO [macname] - ( mac )
Load and execute the specified macro. (See MACROS).
MARGINS [left right paragraph] - ( marg )
MARGINS without parameter displays the active margins. You may
edit them and reenter the new command or directly enter the new
margins values. Margins are not used by E! if the WORDWRAP mode is
E!.DOC page 37
E!.DOC
not activated. The paragraph margin value may be smaller than the
left margin.
MEMORY - ( mem )
This command displays the amount of memory available for
editing.
SNOW [yes/no] (default is automatic detection) - ( snow )
Setting SNOW to YES will force E! to synchronize with the
display adapter to update the screen. This is generally not needed
unless you have a CGA adapter. Usually E! will detect if SNOW YES is
needed. If your adapter is not compatible you may want to control
this manually.
NMACRO macname - ( nmac )
This command works almost the same as MACRO but the specified
macro is only loaded and not executed. It becomes the active macro
and you can run it with Ctrl P. The previous active macro is saved
and can be restored with Ctrl Q.
NAME filename - ( nam )
This is a simple command to rename the current text.
NUMBER
NUMBER uses no parameters. It simply adds a line numbering to
the text. That is, the line number is REALLY inserted in your text
and not only displayed. This will be useful to BASIC programmers or
if you want a listing with line numbers. See also DENUMber and
RENUMber.
PAUSE [yes/no]
If PAUSE is set to YES, E! will wait for a keystroke before
returning from DOS. If not, there is no wait and E! will return
immediatly after executing the command.
PROFILE proname - ( pro )
This is the command used to reconfigure E! using a specific
profile (generally different from the main profile). See PROFILES.
QUIT - ( quit )
Same as F3.
QQUIT
QQUIT will cause the program to terminate immediatly after a
last warning message. No file will be saved, initial video mode, if
changed, is not restored and no LOG file is created or updated. It is
not recommended to assign this command to a key.
E!.DOC page 38
E!.DOC
RENUMBER
If the line numbering created with NUMBER has been altered,
RENUM will regenerate it (e.g. you moved some lines).
SAVE [filename] - ( save )
SAVE without any filename is the same as F2. If you add a
filename to the command, the current file will be saved with the
name you specified.
SCROLL n - ( scrol )
n is the amount of columns you want to be scrolled when you use
Alt F3 or Alt F4.
SELECTION - ( sel )
This command allows you to enter any character at the current
cursor position (assuming this character is not defined on your
keyboard). This will be useful to enter characters from the extended
ascii set. Enter SELection on the E! command line. Use the direction
keys (with or without Ctrl) to select a character. The screen is
permanently updated with the current selection so you can see the
result of your selection before the character is really inserted in
your text. Confirm with ENTER or cancel with ESCAPE.
SMACRO macname - ( smac )
This command saves the active macro (defined with Ctrl R) in a
file named macname. The .MAC extension is the default, so you need
not to specify an extension. The macro is saved in the path defined
with SET E!=... . See MACROS.
SUBMIT - ( subm )
This command assumes you have installed the DOS PRINT spooler.
If not, an error message is issued. SUBMIT entered without parameter
will enter the current text in the PRINT queue. Since PRINT works on
a file, the current text is automatically saved before being
submitted to PRINT. You will then return to E! and the text will be
printed as a background task.
PLEASE DO NOT install PRINT from E!. PRINT is a resident
program and will cause E! to crash if you enter the *PRINT command
from the E! command line or from a DOS session initiated from E!.
To cancel a PRINT use the CANCEL command.
STRIP - (strip)
STRIP causes the heighth bit of all characters of the text
being edited to be set to 0. This is very useful if you loaded a
text edited with WORDSTAR (trademark). The text will be immediatly
made readable. Naturally all characters belonging to extended IBM
ascii character set will also be stripped (so be careful if you are
DRAWING).
TABS [yes/no] (default no)
TABS YES tells E! to display a ruler showing all active TAB
E!.DOC page 39
E!.DOC
positions. This ruler is updated when you scroll the text towards
left or right or when you add or delete a tab position.
TABS does not mean the same when you use it in a PROFILE.
LOCK xxx
If you ask E! to load a non text file, it will generally be
aware of that and will issue a warning message. Though it is more
convenient not to load such files. As a default E! will refuse to
load any file with a .COM, .EXE, .BIN, .OBJ extension. You may add up
to 21 extensions to this list using the LOCK command. This will be
normally specified in your PROFILE but you can use this command on
the command line for temporary needs.
Ex : Lock cpi
will preclude E! to load any .CPI file (in this case code page
files of DOS 3.3).
If you used LOCK judiciously, you will be able to edit all files
in a directory that are text files entering E! *.*.
WARNING [yes/no] (default yes) - ( warn )
A warning message is issued when you overwrite an existing file
only if WARNING is set to YES which is the default value.
[+/-] n
Moves the cursor to line n. If you use "+" or "-" the cursor
will be moved n lines forwards or backwards.
SEARCH / REPLACE COMMANDS
[!]|[=]/string1/[string2/][*][c][-][b][d]
SEARCH ONLY :
/string1/ : Searches the string "string1".
If ! (optional) is used, the string delimiter
may be different from "/".
!%string1% (convenient to search a string imbedding a "/")
options : c --> makes the search case sensitive.
- --> initiates a backwards search.
b --> limits the search area to the marked BLOCK
or GROUP of LINES. Global search if no
marked area exists.
d --> deactivates default options specified in
the active PROFILE. See PROFILES. This
option may be combined with the others.
Ctrl S : repeat search.
Alt 0 : search the current word in the remaining part
of the text. The word may be delimited with
blanks or any quote or punctuation sign
(including programmation symbols).
E!.DOC page 40
E!.DOC
SEARCH AND REPLACE :
=/string1/string2/[options]
The "=" sign is mandatory. String1 is the
searched string and string2 is the replacement
string. If you use the "*" option, replacements
are made without any confirmation prompt. If
not, you will be prompted to replace or not
(Y/N), Continue(C - same as *) or to
terminate the search. See below.
You may use b,c,d and - options.
Here is the detailed answers you can make to the E! SEARCH and
REPLACE prompt:
- YES (Y) : the string will be replaced and E! will search the
next occurence of string1.
- NO (N) : the found string will be skipped (not replaced) and
E! will search the next one.
- CONTINUE (C) : the string will be replaced and all other
occurences will be replaced without any prompt as if you entred the *
option.
- QUIT (Q) : the string is not replaced and the search is
terminated.
Using Ctrl S always initializes a simple search without
replacement.
If the b option (block limited search) is not used, the search
will always begin at the current cursor position when you enter the
search command. On the contrary, using Ctrl S to repeat the
process will begin the search at the last "found" position even if
you moved the cursor in the mean time. If you really want to repeat
the search from the CURRENT position, you will have to reinitiate the
search variables hitting Ctrl V. Search variables are always
initialized when :
- you switch to another text
- you load a new file
So the search will not necessarily begin at the first line of
text. To ensure the search will be global, use the b option (block
limited search) without marking any area or move the cursor to the
text begin and hit Ctrl V.
The E! search process is circular. That is, when it finds the
last ocurrence of a string in the text, E! will display a search
end message (Search Terminated) if you hit Ctrl S. If you hit Ctrl
S again, E! will found the first search string occurence again.
This will not be necessary the first occurence of the string in the
whole text but the first occurence of the string from the start
point of the search when it was initialized.
E!.DOC page 41
E!.DOC
You may define default search options in your profiles. The E!
default search options are :
- not case sensitive
- forwards
- not limited to a block
- prompts when replacing
Only insert the following line in your profile:
SEARCH options
the options string being made up of any option character (b,
c, *, -).
example:
SEARCH *c
Remember to use "d" to deactivate the default search options
from the command line.
E!.DOC page 42
E!.DOC
L. MACROS
_________
You will often find you typing identical keystrokes sequences
again and again. E! allows you to record these keystrokes
(temporarily or permanently) and to replay them each time they are
needed. These keystrokes sequences are called macros. You will show
E! what you want to do only once and E! will repeat the job on
request.
TEMPORARY RECORDING
To record a sequence you just need to hit Ctrl R (ecord) before
the sequence begins. Use any command or function you have to use and
hit Ctrl R again when your sequence is completed. E! will issue a
message as the recording begins and ends. If you hit Ctrl U while
recording, it is canceled.
To replay the sequence, hit Ctrl P(lay).
You have just defined the active macro. This macro can now be
saved in a file. If you record a new macro, the previous one will be
saved in a buffer. Ctrl Q makes the saved macro active again.
A macro may contain 253 keystrokes.
RECORDING PERMANENTLY
If you defined a macro of general interest and if you think you
will reuse it later, it will be useful to save it in a file for later
use. SMACRO macname will do the job. The .MAC extension is a default,
so you need not give an extension. The macro will be stored in the
directory you defined with SET E!=.... or in the current directory if
you defined no E! directory. You may specify a path for the macro
name.
To replay the macro, just enter MACro macname (no extension if
you choose the default) on the E! command line. The current macro, if
any, will be saved and macname will be executed. Then the active
macro will be restored. Playing a macro with the macro command does
not make it the active macro.
The NMACro command will only load the specified macro and make
it the active macro. To replay it, just enter Ctrl P. Use Ctrl Q to
restore the previous one.
As stated above, the DEFINE command allows you to assign a macro
to a key either on the E! command line or in you profile(s). See
DEFINE.
When you record the macro, one of the recorded keystrokes may be
a key to which another macro was assigned. This means nested macros
are allowed. There is no limit to the depth level of nested macros.
Well, it is not highly recommended to nest too many macros but you
can do it. Each nested macro uses 514 bytes of memory. There is no
simple way to control if a macro is calling itself. Doing so will
likely cause E! to crash!
To fully control the execution of the macro E! will stop its
execution each time a "non neutral" message is issued during
E!.DOC page 43
E!.DOC
execution. For example, if your macro is trying to move a block
and no marked block is here, E! will stop macro execution. Non
neutral messages are listed in APPENDIX 1.
If you recorded a complex macro you may want to continue macro
execution. This will happen if you inserted a "CONTINUE MARK" in
your macro using Alt Q. If a macro is stopped after a non neutral
message, E! will look the macro for a "CONTINUE MARK". If one is
found, macro execution will resume after the mark.
If your macro executes E! functions requesting a user entry,
the entry you made while recording the macro is also "replayed".
These functions are Ctrl D (repeat character), Alt G (block sort),
Alt H (draw box), Alt F (fill block).
E! also records the mode change, that is, you may toggle between
EDIT mode and COMMAND mode while recording a macro. All commands
issued on the E! command line are recorded.
Here is a very simple example of SEARCH and REPLACE macro.
Assuming you are programming in Pascal and you want to convert some
Pascal keywords to uppercase in your text automatically. The
following will be the typical way of achieving this goal :
Ctrl R (begin macro recording)
Ctrl Home (move to text begin)
Ctrl Home
Escape (command mode)
=/begin/BEGIN/*
ENTER
Alt Q (continue mark)
Ctrl Home
Ctrl Home
=/end/END/*
ENTER
etc...
Ctrl R (end macro)
Another example: you want to delete all lines containg
"string1":
Ctrl Home (preparing the macro)
Ctrl Home
Esc
/C1/
ENTER
Ctrl BackSpace
Ctrl R (begin macro recording)
Ctrl S
Ctrl BackSpace
Ctrl R (end macro)
Hit Ctrl P until you get a "Search terminated" message.
Please notice the following :
1. E! records the active mode (EDIT or COMMAND) when you begin
recording. It will be automatically restored as you replay the macro
EVEN IF IT IS A NESTED MACRO. So don't care about being in the right
E!.DOC page 44
E!.DOC
mode when you hit Ctrl P.
2. On the contrary the active mode when the macro terminates is
the mode that was active when you terminated recording.
3. E! commands executed thru a macro are not recorded in the
circular command list. It will save some precious memory. So please
does not use the up and down direction keys when you record a macro
you plan to save to disk : the editing context will likely have
changed and your macro will not execute safely because you will
not recall the right commands.
E!.DOC page 45
E!.DOC
M. PROFILES
___________
PROFILES are a very convenient way to configure or reconfigure
E! dynamically. E! is always configured with the main PROFILE
(E!.PRO) when it is loaded. You will reconfigure it while editing
with any .PRO file.
The main profile is searched first in the current directory and
then in E! directory (SET E!=...). You may want to design different
"main profiles" depending on the directory you are working in. If no
E!.PRO file is found, default options are maintained.
Generally PROFILE commands are similar or even identical to E!
commands but it will not be always the case. The "dummy" profile
delivered with E! shows you all possible commands in a E! profile. To
activate them you will have to remove the double asterisk at the
beginning of the line (** - all text after the double asterisk is
ignored). These commands are also listed below.
Shortcuts are not allowed in a profile. But the profile commands
interpreter is not case sensitive.
WARNING : when you load a new profile "over" the active
profile, only the profile commands used in the new profile are
rerun. That is, all other options are not reset to their default
values.
TYPEMATIC
*********
On computers using a recent AT BIOS (after 11/15/85), on PC
XT 286 and PS/2 you can specify typematic parameters:
1. the key repeat rate : from 2 to 30 characters/sec. This
controls how quickly a key will be repeated if it his held down long
enough.
2. the delay repeat value, one from the following :
250, 500, 750 or 1000 ms.
This controls how long a key must be held down before it
repeats.
To control the typematic parameters insert the following line in
your profile :
Typematic n1(key repeat value) n2(delay repeat value)
ex:
Typematic 30 750
If the values specified are out of range, nothing will be
changed. Default BIOS settings are n1 = 10 and n2 = 500. Using
typematic on a computer without extended keyboard bios will do no
harm. E! resets defaults before exiting.
E!.DOC page 46
E!.DOC
Non integer values are allowed but are of low interest.
This function does not disable the "emulated cursor
acceleration" function (SHIFT + arrows). Remember the accelerated
cursor function does not work on non strictly compatible machines.
E!.DOC page 47
E!.DOC
PROFILE's COMMANDS
******************
"See above" means the command has the same effect than
on the E! command line.
Please enter one command per line.
EGA-VGA Yes/No default : Yes
Don't use this option unless there is a problem with
your display adapter. See above.
35LINES Yes/No default : No
Replaces the 43 or 50 lines mode with a more readable
35 lines mode. See above.
SOUND Yes/No default : Yes
Allows E! to beep all non neutral error messages.
AUTOBACK Yes/No default : Yes
See above.
AUTOFORMAT yes/no default : no
See above.
AUTOCOMP yes/no default : no
See above.
AUTOSAVE yes/no default : no
See above.
AUTOTAB yes/no default : no
See above.
AUTOLIMIT n default : 500
See above.
BAK yes/no default : no
See above.
SPACES yes/no default : no
SPACES YES will cause E! to remove all trailing blanks
automatically when saving a file.
CODE yes/no default : no
See above.
E!.DOC page 48
E!.DOC
COMPILE extension compiler command line
($$ = filename without extension)
Compilers definitions will be inserted with this
command. See "Programming support" below.
UNDO n default : 2048
See above.
DELAY n default : 850
See above.
EOL [CRLF|LFCR|LF|CR] default : CRLF
Specify the End of Line termination sequence. This is
normally a CRLF sequence but some programs use other
conventions. PLEASE DON'T USE THIS COMMAND UNLESS YOU
REALLY NEED IT. SAVING A FILE WITH AN EOL SETTING
DIFFERENT FROM CRLF OR CR WILL MAKE IT NON LOADABLE WITH
E!.
ADDONLAST yes/no default : yes
ADDONLAST YES allows E! to insert a new line when you
hit the down arrow whith the cursor laying on the last
line of the current text.
IBM101T yes/no default : no
E! does not recognize the IBM enhanced keyboard (or
equivalent) unless you tell him to do so. Setting
IBM101T to YES with non enhanced keyboard will cause
the program to crash! (machine hang on loading).
INSERT yes/no default : no
This defines the Insert key state when E! is loaded.
PRTINIT /n1/n2/n3...
This will set the default values for printer
initialization when you use the PRINT command. These
values are not sent to the printer if you specify new
values on the E! command lines. See above.
JUSTIFY yes/no default : no
Set the JUSTIFICATION mode toggle. This will have no
effect in the main profile. See above.
LOG yes/no default : no
See above.
MARGINS left right paragraph default : 10 70 15
See above.
E!.DOC page 49
E!.DOC
PAUSE yes/no default : yes
See above.
SNOW yes/no default : yes
See above.
SCROLL n default : 40
See above.
TABS n1 n2 n3 ...
Define new tab positions and remove all previous
registered positions.
TYPEMATIC speed delay
See above.
LOCK xxx default : COM EXE BIN OBJ
See above.
WARNING yes/no default : yes
See above.
CURSOR yes/no default : yes
CURSOR NO disables the "accelerated cursor emulation on
non strictly compatible computers.
DEFINE code @macname ** Assigns a macro to key
code $proname ** Assigns a profile to a key
code &commname ** Assigns a command to a key
code chaîne ** Assigns a string to a key
code "chaîne" ** Use quotes if you want to imbed
code 'chaîne' ** leading or trailing blanks
code fnccode ** Assigns a function to a key.
code ** Restore the default function
DEFINE without parameter has no effect in a profile
COLOR DEFINITIONS = SCREEN_AREA background foreground
C_HELP f a ** Help line
C_BLOCK f a ** Marked blocks
C_BORDER f ** Border (CGA/EGA/VGA only)
** be careful with multi-standards
** adapters
C_COMMAND f a ** Command line
C_CURSOR f a ** Virtual cursor
C_MESSAGES f a ** Messages
C_STATUS1 f a ** Status line (fixed part)
C_STATUS2 f a ** Status line (variables)
C_TEXT f a ** Text
E!.DOC page 50
E!.DOC
0 black 4 red 8 gray 12 light red
1 blue 5 magenta 9 light blue 13 light magenta
2 green 6 brown 10 light green 14 yellow
3 cyan 7 light grey 11 light cyan 15 white
CURSOR SHAPE DEFINITION = SCREENTYPE topline bottomline
CURSORMONO tl bl ** Cursor shape in overwrite mode
CURSORCOL tl bl
CURSORMONOINS tl bl ** Cursor shape in insert mode
CURSORCOLINS tl bl
This command controls the cursor shape. Use it if you
don't like the default values or if you have a problem
with your display adapter. Some EGA / VGA adapters have
a VERY bad cursor emulation.
tl is the top scan line and bl is the bottom scan
line. The following diagram shows you how tl and bl
work. Allowed ranges for tl and bl are 0-7 for color
adapters and 0-13 for monochrome adapters.
┌────────────┐ top of character matrix (line 0)
│ │
│ │
├────────────┤ tl
│▒▒▒▒▒▒▒▒▒▒▒▒│
│▒▒▒▒▒▒▒▒▒▒▒▒│ visible part of cursor
│▒▒▒▒▒▒▒▒▒▒▒▒│
└────────────┘ bl - bottom of character matrix (ligne 7 ou 13)
E!.DOC page 51
E!.DOC
N. PROGRAMMING SUPPORT
______________________
To be a complete programming tool, E! has to offer some services
in the program compilation area. Well, it is the case. E! allows you
to compile a program source file and to retrieve errors within the
source file like any integrated compiler environment. This will work
with any compiler issuing standard error messages. If several errors
are detected, E! will build an internal list of errors and allow you
to move from an error to the other in your source file.
Let's examine the whole process of compiling a file under E!:
1/ For any compiler you plan to use insert the following line in
your active profile:
COMPILE ext compiler command line
example:
COMPILE asm masm $$.asm;
($$ replaces the current filename without any extension)
2/ Load this profile to activate the command (if it is not
already active).
3/ Edit your source file and enter COMPILE without any parameter
on the E! command line.
THAT'S ALL.
E! will search an internal table if there is any compiler
defined for the current file extension. For example, if you are
editing a file named myprog.asm, E! will search this table for an
"asm" entry.
If one is found, E! will replace the $$ sequence in your
compiler command line with the name of the current file WITHOUT any
extension. Before calling DOS and the compiler, E! will redirect
all DOS output to one file named "filename.ERR" (to be more
precise, E! redirects stderr and stdout). When the compiler
returns to DOS, E! will analyze the .ERR files and will find out if
there are errors to be searched in the source file. It will then
display the first error in the list highlighting the corresponding
line in your text and displaying the corresponding compiler error
message on the E! help line.
You can move between errors (if there are more than one) using
Alt F8 (move forward) and Alt F9 (move backward). The compiler error
message will be automatically updated and the corresponding line from
the source file will be highlighted. The error list remains valid
until you run another compilation.
If E! is not able to build an error list (non standard
compiler or successful compilation) it will immediatly edit the
generated .ERR file. So you can see the result yourself.
E!.DOC page 52
E!.DOC
An error list is maintained for each file.
Although this may lead to memory space problems, this process
will also work with the MAKE utility. Actually, this will work with
any program you wish even if it is not a compiler.
The profile command for a MAKE process will be very simple:
Compile C MAKE $$
will be generally sufficient.
Although this a powerful function, E! will never replace a
dedicated programming environment but it may be convenient to use the
E! programming support to verify if a source file is free of syntax
errors or to quickly compile short programs without loading the whole
machinery of a more sophisticated environment.
E! recognizes following error messages formats :
error filename row: message
warning filename row: message
filename row column: message
filename (row,column): message
filename (row): message
filename : row : message
"filename", row column: message
These formats are used with most compilers.
To modify compile options you will have to edit the active
profile and reload it. See PROFILE's.
E! has been successfully tested with following compilers
(trademarks):
Microsoft C 5.1
Turbo C 1.5
Turbo Pascal 4.0
Microsoft Assembler 5.0
Other compilers have been tested by E! users.
E!.DOC page 53
E!.DOC
O. E! IS A SHAREWARE
____________________
First, I would like to apologize for my poor english. I did my
best to translate this documentation properly but you will have to
judge the result yourself. Any help to enhance this documentation
file is welcome.
E! is a user supported software. It is distributed as a
shareware. You may freely copy it and distribute it as long as you
do not charge for these copies. However, an exception is granted
to recognized user's groups which are hereby authorized to charge a
small amount for postage, media, handling, etc...
If you suppose E! development was a long (but exciting) task,
you're right. I wrote the first line of code in January 87. At this
time there was still 10999 to write and test and rewrite and
retest... E! has been beta tested by professional programmers. So
you can assume it is a safe program. Actually, E! has been written
using E! which is the better test I could do.
If you find E! easy to use, quick and efficient a registration
of $50 would be greatly appreciated. This registration includes all
new versions or updates for one year. Please fill in registration
form and send registration fee to :
Guy Lachance
215-C Mulberry,
El Paso, Texas 79932
U.S.A.
Suggestions and "bug reports" have to be sent to:
ON COMPUSERVE :
72561,3532 or ( Patrick Philippot )
71460,3407 ( Guy Lachance )
or directly to the above address.
Registered users will always receive a quick and detailed answer
or an updated version if necessary.
Please specify configuration and version number.
If you are interested in distributing E! as a commercial
software, please contact us.
Patrick PHILIPPOT - 10/5/1988
Documentation revised by
Guy LACHANCE - 01/10/1989
E!.DOC page 54
E!.DOC
APPENDIX 1 : ERROR MESSAGES
___________________________
"Non neutral" error messages don't stop execution of the current
macro. These messages are actually not error messages but only
indicators of function completion. See MACROS.
01 Not enough memory or too many lines
02 Not text file(s) (likely)
03 Input / Output error...
04 No alternate window
05 Can't create a window here
06 ENTER to insert a line or to return * neutral message *
07 Block already marked
08 No marked block
09 Source and destination conflict
10 Block too big
11 Control characters allowed * neutral message *
12 Control characters discarded * neutral message *
13 Function interrupted
14 Bookmark dropped * neutral message *
15 Bookmark removed * neutral message *
16 Recording macro - ^R to end
17 Macro recorded - ^P to replay
18 Macro cancelled
19 Error during justification
20 Non existing or locked file
21 Error - Margins unchanged
22 Not a valid line
23 Search terminated
24 Syntax error
25 Please type one character and 3 digits
26 Code error - key not assigned
27 Character code error
28 Printer not ready
29 Unknown draw mode
30 Not enough memory. Sort cancelled
31 No active macro
32 Error - Scroll unchanged
33 DOS PRINT program not installed
34 Spooler error
35 New file * neutral message *
36 Textmark dropped * neutral message *
37 Textmark(s) removed * neutral message *
38 File too big
39 New macro loaded
40 Undo buffer is empty
41 Error list is empty
E!.DOC page 55
E!.DOC
APPENDIX 2 : KEY CODES AND FUNCTION CODES
__________________________________________
(h = top of keyboard - b = numeric pad)
CtrlA : 001 Move text of current line to cursor
CtrlB : 002 Upcase current word in Pascal style (i.e. upcase_it becomes Upcase
CtrlC : 003 Clear current line
CtrlD : 004 Repeat specified character
CtrlE : 005 Delete end of line from cursor
CtrlF : 006 Toggle wordwrap mode
CtrlG : 007 Toggle 35/43/50 lines mode
CtrlH : 008 Delete left character
CtrlI : 009 Move cursor to next tab position
CtrlJ : 010 Toggle justify mode
CtrlK : 011
CtrlL : 012 If current word is a file name, file is edited
CtrlM : 013 Insert a new line
CtrlN : 014 Insert file name at cursor
CtrlO : 015
CtrlP : 016 Play active macro
CtrlQ : 017 Restore previous macro
CtrlR : 018 Begin / End macro record
CtrlS : 019 Repeat last search
CtrlT : 020 Insert system date and time at cursor
CtrlU : 021 Cancel macro record
CtrlV : 022 Initialize search variables
CtrlW : 023 Delete current word
CtrlX : 024 If current line is a DOS command, it is executed
CtrlZ : 026 If current line is a valid DOS directory, it is edited
CtrlF1: 350 Upcase current word
CtrlF2: 351 Lowcase current word
CtrlF3: 352 Upcase current block
CtrlF4: 353 Lowcase current block
CtrlF5: 354 Center text in block
CtrlF6: 355 Reformat current paragraph
CtrlF7: 356 Reformat current block
CtrlF8: 357
CtrlF9: 358
CtrlF0: 359
Ctrl 6: 030
Ctrl -: 031
^ Bsp : 127 Delete current line
AltA : 286 Adjust block position
AltB : 304 Mark block
AltC : 302 Copy block at cursor position
AltD : 288 Delete block
AltE : 274 Move cursor to end of block
AltF : 289 Fill block with specified character
AltG : 290 Sort marked block (the entire lines are moved - key is block delim
AltH : 291 Draw a box around block
AltI : 279 Remove all tab positions
AltJ : 292 Join current line and next line
AltK : 293 Drop bookmark / Return to bookmark
AltL : 294 Mark a line or a group of lines
AltM : 306 Move block to cursor
AltN : 305 Add values within block and display result at cursor
E!.DOC page 56
E!.DOC
AltO : 280 Overlay block at cursor position
AltP : 281 Move cursor to next paragraph
AltQ : 272 Insert "continue-mark" in macro being recorded
AltR : 275 Remove a tab position
AltS : 287 Split line at cursor position
AltT : 276 Create a tab position
AltU : 278 Unmark block
AltV : 303 Remove trailing blanks
AltW : 273 Mark current word
AltX : 301 Allow entry of control characters
AltY : 277 Move cursor to beginning of block
AltZ : 300 Mark a sentence
Alt1 : 376 Drop first textmark
Alt2 : 377 Drop second textmark
Alt3 : 378 Drop third textmark
Alt4 : 379 Remove all textmarks
Alt5 : 380 Refresh current file from disk
Alt6 : 381 Search paired braces
Alt7 : 382 Insert paired braces
Alt8 : 383 Restore last removed lines
Alt9 : 384 Insert lines automatically captured under DOS
Alt0 : 385 Search current word
Alt)- : 386 Insert blanks columns before block
Alt= : 387 Insert blanks without moving cursor
F1 : 315 Load help file
F2 : 316 Save current file
F3 : 317 Leave current file without saving
F4 : 318 Save and leave current file
F5 : 319 Create / Remove a window
F6 : 320 Toggle draw mode
F7 : 321 Rename current file
F8 : 322 Edit new file(s)
F9 : 323 Restore (undo) current line
F0 : 324 Go to next file
ShftF1: 340 Scroll left one character at a time
ShftF2: 341 Scroll right one character at a time
ShftF3: 342 Scroll down one line at a time
ShftF4: 343 Scroll up one line at a time
ShftF5: 344 Center current line in window
ShftF6: 345 Raise current line to top of window
ShftF7: 346
ShftF8: 347
ShftF9: 348
ShftF0: 349
Alt F1: 360 Display information about specified key
Alt F2: 361
Alt F3: 362 Scroll left (number of columns specified with SCROLL command)
Alt F4: 363 Scroll right (number of columns specified with SCROLL command)
Alt F5: 364 Change active window
Alt F6: 365
Alt F7: 366
Alt F8: 367 Next compilation error
Alt F9: 368 Previous compilation error
Alt F0: 369 Go to previous file
Bsp : 008 Delete left character
E!.DOC page 57
E!.DOC
Enter : 013 Insert a new line
Esc : 027 Toggle between CommandMode and EditMode
Tab : 009 Move cursor to next tab position
Sh Tab: 271 Move cursor to previous tab position
Home : 327 Move to beginning of current or previous line
Up : 328 Move to previous line
PgUp : 329 Scroll one screen up
Left : 331 Move cursor left
Right : 333 Move cursor right
End : 335 Move to end of current or next line
Down : 336 Move to next line
PgDn : 337 Scroll one screen down
Insert: 338 Toggle insert mode
Del : 339 Delete character at cursor
^ Left: 371 Go to previous word
^Right: 372 Go to next word
^ End : 373 Move cursor to end of text
^ PgDn: 374 Move cursor to end of screen
^ Home: 375 Move cursor to beginning of text
^ PgUp: 388 Move cursor to top of screen
IBM ENHANCED KEYBOARD ONLY (no function assigned)
_________________________________________________
F11 :389 Alt Esc:257 AltEnd:415 ^ Ins :402
F12 :390 Alt * :299 Alt Dn:416 ^ Del :403
^F11 :393 Alt - h:381 AltIns:418 ^ Tab :404
^F12 :394 Alt - b:330 AltDel:419
ShF11 :391 5(bloc):332 Alt / :420
ShF12 :392 Alt + :334 AltEnt:422
Alt F11:395 Alt Hom:407 ^ Up :397
Alt F12:396 Alt Up :408 ^ Dn :401
Alt PgU:409 Ctrl-b:398
Alt Lef:411 Ctrl5b:399
Alt Rig:413 Ctrl+b:400
E!.DOC page 58
E!.DOC
APPENDIX 3 :KEYCODES NOT USED BY E!
___________________________________
Ctrl O Alt F6 Ctrl F8 Shift F7 Ctrl 2
Ctrl Y Alt F7 Ctrl F9 Shift F8 Ctrl 6
Ctrl F10 Shift F9
Shift F10
and all keystrokes from the enhanced keyboard.
If you find some E! functions not useful, you may use their
corresponding keystrokes to implement some specific command or macro,
etc...
E!.DOC page 59