

             TABLE OF CONTENTS


Chapter 1:       OVERVIEW                       1

Overview .....................................  1
Command Line Options .........................  3
Usage ........................................  4


Chapter2:        USING THE FILE FINDER          7

Selecting Finder Panels ......................  7
Selecting Items in Finder Lists ..............  8
Navigating the File System ...................  8
Opening or Deleting a File ...................  9
Entering or Deleting a Subdirectory ..........  9
Saving and Closing Files .....................  9
File Finder Options .......................... 10
Turn Binary Mode ON/OFF ...................... 10
Display/Don't Display .BAK files ............. 10
Show/Hide "Hidden" Files ..................... 11
Viewing Files ................................ 11
Reopening or Activating a Recently-Opened File 12



Chapter 3:       EDITING A FILE                13

File Navigation .............................. 13
Text Editing ................................. 14
Inserting Special Characters ................. 16
Working with Text Selections ................. 17
Normal Mode .................................. 17
Column Mode .................................. 17
Column Replace Mode .......................... 18
Selecting Text ............................... 19
Selection Editing ............................ 20
Copy, Cut, & Paste ........................... 21


Chapter 4:       SEARCH & REPLACE              23

Introduction ................................. 23
Search & Replace Options ..................... 24
Regular Expressions .......................... 25
Regular Expression Operators ................. 26
Subexpression Types .......................... 27
Using Tagged Subexpressions .................. 28
Special Characters in Search & Replace Strings 30
 
 

Chapter 5:       PROGRAMMING AIDS              33

Indenting .................................... 33
Scope Matching ............................... 33
Undo ......................................... 35
Utilities .................................... 35
    Magnifier ................................ 35   
    File Sorting ............................. 36   
    Printing ................................. 39   
    Uppercase/Lowercase/Mixcase Selection .... 39   
    Keyboard Settings ........................ 39   



Appendix A:      COMMAND SUMMARY               41
                                       
                                       
Appendix B:      KEYBOARD.CFG KEY NAMES        55
                                       
                                       
Appendix C:      PROGRAM LIMITS                57


Index                                          59


              THE ENVIRONS TEXT EDITOR

                   USER'S MANUAL


Chapter 1: OVERVIEW

The Environs text editor is an industrial-strength editor
designed especially for programmers. File size is limited
only by available disk space and the 4.3 gigabyte virtual
address space of the editor. See appendix C for a complete
list of program limits.

In addition to handling extremely large files, the Environs
editor is capable of editing binary files without ruining
them. Since it handles lines of any length, it has no need to
insert extra newline characters into the file when reading it.
Whatever newline characters actually exist in the file are
interpreted as line breaks. When a file opened in binary
mode is written back to disk, all of these newlines are
retained, and other standard record- or string-terminating
characters such as <CR> and <NUL> are not treated
specially.

The Environs editor has a powerful search and replace
facility that includes tagged regular expression search and
replace, global search and replace, and selected text,
backwards, case insensitive, and wraparound search
options. Tags extend regular expression searches by
allowing including a portion of the matching text in the
remainder of the search pattern or in the replacement 


string_without even knowing exactly what that matching
text is ahead of time. 

An extremely useful feature found in few editors is the
ability to work with columns of text, that is, rectangular text
selections not necessarily starting at column one of the file.
The Environs editor allows cutting, pasting, deleting and
moving such selections in insert or replace modes.

The Environs text editor has a powerful scope-matching
feature that makes programmers' work easier. It allows
using five ALT keys to jump to:

 the beginning/end of the current scope (delimited by
  braces, parentheses or brackets.)

 the beginning of the next/previous scope at the same
  nesting level, and

 the beginning of the next scope nested within the current
  scope.

This allows complete navigation of source code files
without doing any arrowing around.

The Environs editor features faultless, unlimited undo of
all editing and scrolling operations.

The Environs editor's File Finder allows effortless
navigation of the file system to select and open files.


A number of other utilities are available to ease source
code, data, and binary file editing:

 Any character can be inserted in search strings by typing a
  backslash and the decimal, octal, or hex value of the
  character.

 Any special-meaning character can be inserted in a file by
  typing <CTRL>\ followed by the character.

 A "magnifying glass" cursor aids in editing binary files by
  showing the decimal values, as well as the character
  representation, of the nine characters surrounding and
  under the cursor.

 Files or selections in files can be sorted.

 Scrolling to a line specified by entering a line number.

 Printing the whole file or selected text.

 Reopening recently-opened files via selection from a
  scrolling list. State is saved for recently-opened files, so an
  editing session can take up where it left off, painlessly.

COMMAND LINE OPTIONS

The Environs Text Editor is invoked by entering "EV" at
the DOS prompt, followed by command-line options
starting with slash "/" characters and any number of file
names separated by spaces. If file names are specified on
both sides of a file option, the option is only applied to the
file or files specified after the option. If no file name is 


specified, Environs will automatically open the same file or
files (if any) that were open the last time it was exited in the
current directory. If a file is specified that does not exist, a
new, empty file will be created and opened.

/B - Binary mode. Disables special handling of <CR> and
     <LF> characters.

/? - Displays usage text explaining how to invoke the editor.


Usage:

EV [/?] [filename [filename ...]] [/b] [filename [filename ...]]

Examples:

EV TXTFILE.DOC /B PROGRAM.EXE PROGRAM2.EXE

will open TXTFILE.DOC in text mode and PROGRAM.EXE and
PROGRAM2.EXE in binary mode.

EV /?

will display usage text similar to that on this page.

EV

will open all files, if any, that were open the last time the
Environs Text Editor was exited in the current directory:


COMMAND          DEFAULT    AUTOMATICALLY
USED TO EXIT     KEY        OPENED FILES
                           
Quit File        Escape     None.
                           
Save & Close     F10        The file open when
File                        exiting.
                           
Save All &       Alt-X      All files open when
Exit                        exiting.





Chapter 2: USING THE FILE FINDER

The File Finder is invoked with the "Open File" command
(default key = Ctrl-Ins). It is used to navigate the file system
and select files for editing. It also permits creating and
deleting directories and files. The File Finder window has
four panels:

 The Path panel contains a pop-up scrolling list of recently-
  specified pathnames

 The Match panel contains a pop-up scrolling list of recent
  file name patterns used to filter files displayed in the Files
  panel

 The Subdirectories panel contains a scrolling list of
  subdirectories in the current directory

 The Files panel contains a scrolling list of files in the
  current directory that match the pattern specified in the
  Match panel.


SELECTING FINDER PANELS

When the File Finder is invoked, the Files panel is selected
by default. The next or previous panel can be selected using
<Tab> or <Shift-Tab>. Panels can also be selected with an
Alt-(First Letter) key combination. For example, the
Subdirectories panel can be selected using <Alt-S>. In
addition, left and right arrow keys may be used to alternate
between the Subdirectories and Files panels. 


SELECTING ITEMS IN FINDER LISTS

Items in any scrolling list or pop-up list are selected by
arrowing or paging to highlight them and pressing <Enter>
to select them. The pop-up lists are displayed by arrowing or
paging down. They can only be displayed if they contain
more than one item. To create a new entry in a pop-up list,
page or arrow up to get an empty entry, then type the
desired new entry. Any entry in a pop-up list may be edited
after it is selected or edited in place in the list before
selection. In-place editing of a pop-up list item is discarded
if the item is not immediately selected by pressing <Enter>.

To quickly select an item in a scrolling list, the first few
characters of the item may be typed. Characters typed in
rapid succession (less than about 1/3 second apart) are
interpreted together; the next list item that starts with the
entered sequence of characters is highlighted. After 1/3
second, the next character typed is treated as the first
character in a new item-matching sequence.


NAVIGATING THE FILE SYSTEM

When the Subdirectories panel is selected, go to the parent
of the current directory by arrowing left; go to a subdirectory
by selecting it from the Subdirectory list. Each time the
current directory is thus changed, the Subdirectory and File
lists are updated to display the contents of the new current
directory.


OPENING OR DELETING A FILE

When a file is highlighted in the File list, it can be opened
by pressing <Enter> or deleted by pressing <Delete>. A new
file can be created by pressing <Insert> while the Files panel
is selected.

ENTERING OR DELETING A SUBDIRECTORY

When a subdirectory is highlighted in the Subdirectory list,
it may be entered (making it the new current directory) by
pressing <Enter> or deleted by pressing <Delete>. Only
empty directories may be deleted.  A new subdirectory can
be created by pressing <Insert> while the Subdirectories
panel is selected.


SAVING AND CLOSING FILES

The following commands are available for saving and
closing files:

                DEFAULT
COMMAND         KEY         ACTION
                           
Quit File       Escape      Close active file; if no open
                            files remain, exit editor.
                           
Save File       Alt-S       Save active file w/o closing
                           
Save & Close    F10         Save and close active file; if no
File                        open files remain, exit editor.
                          
                           
Save All &      Alt-X       Save and close all open files
Exit                        and exit editor.

If the "Save & Close File" command is used to save and
close the last open file, the editor also quits. To save and
close the last open file without exiting the editor, use "Save
File"+ "Quit File" commands instead.


FILE FINDER OPTIONS

Several options are available in the File Finder Options
menu, which is invoked by <Alt-O>:


Turn Binary Mode ON/OFF

Toggle binary mode file opening on/off. This has the same
effect as using or not using the /b command line option
described above. Binary mode is off by default; but if it was
switched on by the /b flag in the command line, it remains
on when the File Finder is invoked.


Display/Don't Display .BAK files

Controls whether .BAK files are displayed in the file list. By
default, .BAK files are not displayed.


Show/Hide "Hidden" Files

Controls whether "Hidden" Files are displayed in the file
list. by default, they are not displayed.


VIEWING FILES

When multiple files are open, only one file at a time is
active. The active file window is displayed on top of all
other file windows, so that none of it is obscured by another
file's window. Use the "Next File" and "Previous File"
commands (default keys = Ctrl-PgDn and Ctrl-PgUp) to
rotate through all open files, activating the window of each
in turn. The files are displayed in the order in which they
were opened. When the active file is closed using the "Quit
File" or "Save & Close File" commands, the previous file's
window is automatically activated.

File windows are automatically cascaded as they are opened.
The first window fills the entire screen. Subsequent
windows have their upper-left corner one character farther
down and right and are one character shorter and narrower
than the previous window. File windows may be resized
and moved using the "Resize Window" command (default
key = Ctrl-F5). This command turns on a resizing mode in
which the arrow keys move the window and shift-arrow
keys resize it. The border of the active window changes
from a double to a single line when in resizing mode.
When the window is sized and located as desired, press
<Enter> to exit resizing mode. The "Zoom Window"
command (default key = Alt-Z) can be used to toggle the 


active window between its default or user-set size/location
and full-screen.


REOPENING OR ACTIVATING A RECENTLY-OPENED FILE

A file that has been recently opened can be reopened, or
made active if it is still open, by selecting it from a pop-up
scrolling list using the "Recent Opens List" command
(default key = Alt-0). The file will be reopened in the same
state (selection, cursor position, etc.) it was in when it was
closed. The Recent Opens list is also available when the File
Finder is not displayed.


Chapter 3: EDITING A FILE

This chapter describes features used to edit a file: file
navigation; different editing modes; using text selections;
and copying, cutting and pasting selections within a file or
between files. Special character insertion is also covered.
Search & Replace are covered in the next chapter.


FILE NAVIGATION

The "Left", "Right", "Up", and "Down" commands (default
keys are the arrow keys) move the cursor one character in
their respective directions. The "Page Up" and "Page Down"
commands (default keys = PgUp and PgDn) attempt to
move the cursor up or down one page. One page is defined
as the number of lines displayed in the window at its
current size. Page Up/Down has been carefully designed to
allow retracing cursor position, even after paging all the
way to the top or bottom of the file; thus N page-ups, for
example, followed by N page-downs, will leave the cursor
position unchanged.

Note: paging up when already at the top of the file or paging
down when already at the end of the file resets paging to
work in full pages starting from the top/bottom of the file.

The "Left Word" and "Right Word" commands (default
keys = Ctrl-Left/Ctrl-Right) move the cursor left or right
one word.


The "Beginning of Line" and "End of Line" commands
(default keys = Home/End) move the cursor to the
beginning or end of the current line.

The "Top of File" and "End of File" commands (default
keys = Ctrl-Home/Ctrl-End) move the cursor to the
beginning or end of the file.

The "Go to Line" command (default key = Alt-3) can be
used to move the cursor to a specified line.

The "Beginning of Selection" and "End of Selection"
commands (default keys = Alt-B and Alt-E) move the cursor
to the beginning or end of the text selection. If there is no
selection, they have no effect.


TEXT EDITING

The "Delete" command (default key = Delete) deletes the
character under the cursor. If the cursor is at or past the end
of the line, the line is padded out to the cursor position
with blanks, if needed, and the next line is joined to it.

The "Delete to Left" command (default key = Rubout)
deletes the character to the left of the cursor. If the cursor is
at the beginning of the line, the line is joined to the
previous line.

Note: The <Rubout> key is sometimes called <Backspace>.

The "Delete Word" command (default key = Ctrl-T) deletes
to the beginning of the next word. If at or past the end of the 


line, the line is padded out to the cursor position with
blanks, if needed, and the next line is joined to it.

The "Delete Line" command (default key = F7) deletes the
current line. The cursor need not be in the first column of
the line.

The "Delete to EOL, Move Down" command (default key =
F8) deletes from the cursor to the to the end of the current
line and moves down a line.

The "Toggle Insert Mode" command (default key = Insert)
switches between insert and overstrike cursor modes.

Note: Cursor mode should not be confused with text
selection insert/replace modes, which are independent of
cursor mode. Selection modes are covered below under the
"Working with Text Selections" heading.

In Cursor Insert mode, the "Insert Newline" command
(default key = Enter) inserts a newline. The line is split at
the current column and the cursor moves to the beginning
of the new line thus created. If the original line was
indented, the new line is automatically indented to match.
In Overstrike mode, no newline is inserted; the cursor
simply moves to the beginning of the next line.

Insert any normal character by simply typing it. If in insert
mode, the character is inserted before the character under
the cursor. In overstrike mode the character under the
cursor is replaced by the typed character.


INSERTING SPECIAL CHARACTERS

Special characters can be "escaped" using the "Escape
Character" command (default key = Ctrl-\). Escaping a
character means causing it to be treated as if it had no
special meaning. For example, the Rubout (Backspace)
character can be inserted by typing <Ctrl-\>, followed by the
<Rubout> key.

DOS allows entering any character except <Nul> by holding
down the <Alt> key while typing the decimal ASCII value
of the character on the numeric keypad, then releasing the
<Alt> key. Inserting some such characters will also require
escaping them (see above) to prevent them from being
interpreted as commands by the Environs Text Editor. Thus
the Rubout character (ASCII 8) could be inserted by typing
<Ctrl-\> followed by <Alt-8>. (Remember, the Alt key must
be released to complete the sequence). An unescaped <Alt-
8> would be interpreted as the "Delete to Left" command,
and have exactly the same effect as simply pressing the
<Rubout> key.

Any character can also be inserted using the "ASCII Table/
Insert" command (default key = Alt-A). This command
pops up a table showing all 256 characters with their
decimal and hexadecimal values. To insert any character
from the table, arrow to it and press <Enter>. To exit the
ASCII table without inserting a character, press <Escape>.


WORKING WITH TEXT SELECTIONS

One of the most powerful features of the Environs Text
Editor is its ability to manipulate text selections. Three
selection modes are available: Normal, Column, and
Column Replace. They are selected using the "Toggle
Selection Mode" command (default key = Alt-M). When
Column or Column Replace mode are selected, text
showing the current mode is displayed in the lower-right
corner of the window.


Normal Mode

This is the only mode available in most editors. The
selection is a contiguous section of text that may wrap to
multiple lines. When a normal selection is cut, text from
after the selection moves left and up as needed to fill the
gap--it has the same effect on the file as repeatedly using the
<Delete> key. pasting a normal selection pushes text after
the insertion point right and down, and has the same effect
on the file as typing the contents of the selection.


Column Mode

In Column mode, the text selection contains all of the
characters within the rectangle whose upper-left and lower-
right corners are defined as the start and end of the
selection. The text contained in multiple-line column
selections is generally not contiguous. When a column
selection is cut, any text to the right of the selection is
scooted left to fill in the gap. No wrapping occurs, however. 


When a column selection is pasted, text under the selection
is pushed to the right to make room for it. Again, no
wrapping occurs.


Column Replace Mode

Column Replace mode is like Column mode, but differs in
how move or cut & paste operations behave: cutting a
selection leaves a "hole" (filled with blanks as needed)
behind; pasting replaces any text under the pasted selection,
rather than pushing it to the right.

The full utility of column and column-replace selection
modes may not be immediately obvious to one who has
never used them. Using them for any length of time
renders them indispensable.

Example:

A document is formatted into two columns of text, and
only then is it discovered that a small paragraph needs to be
inserted into the first column (or the second, for that
matter). Typing the paragraph into one column creates a
gap in the other. If only Normal mode is available, a
painstaking sequence of cut & paste operations must be
undertaken to remove the gap. With Column Replace
mode, however, the gap can be removed by selecting the
text below it and moving it upwards with a single "Move
Selection" command.


SELECTING TEXT

Several commands for selecting text are available. The
"Select Line" command (default key = F1) selects the current
line. The cursor does not have to be at the start of the line.
The "Set Start of Selection" command (default key = F5) sets
the start of the selection to the cursor position. The "Set End
of Selection" command sets the end of the selection to the 
cursor position.  Text can also be selected with a set of
"marking" cursor movement commands: 

              DEFAULT
COMMAND       KEY         DESCRIPTION

Left          Shift-      Move left one character.
Marking       Left

Right         Shift-      Move right one character.
Marking       Right

Up            Shift-      Move to the same column in 
Marking       Up          the previous line (if not in
                          line 1).

Down          Shift-      Move to the same column in 
Marking       Down        the next line (if not at EOF).

Page Up       Shift-      Attempt to move up one page.
Marking       PgUp

Page Down     Shift-      Attempt to move down one
Marking       PgDn        page.


End of Line   Shift-      Move to the end of the line.
Marking       End

Beginning     Shift-      Move to the beginning of the line.
of Line       Home
Marking
  
These commands change the size of the currently
highlighted selection if they are done with the cursor at
either the beginning or end of the current selection;
otherwise they start marking a new selection with the
beginning and end of the selection being the cursor
positions before and after execution of the command.

NOTE: In Column and Column Replace modes, the selection
      boundary can be dragged from any edge or corner.

The current selection can be turned on or off using the
"Toggle Selection" command (default key = Ctrl-K H). 


SELECTION EDITING

The "Copy Selection" command (default key = F2) inserts a
copy of the selection at the cursor. The "Move Selection"
command (default key = F3) moves the selection to the
current cursor position. The "Delete Selection" command
(default key = F4) deletes the current selection. If there is no
selection or the selection is toggled off, these commands
have no effect.


Copy, Cut, & Paste

Copy, cut, and paste operations are supported by a Paste
buffer implemented as a special-purpose file. When a "Copy
to Paste Buffer" command is executed (default key = Grey
Plus), the current text selection is appended to the Paste
buffer and highlighted there. The "Cut" command (default
key = Grey Minus) does the same thing, but also deletes the
text selection from the current file. The "Paste" command
(default key = Shift-Insert) copies text from the paste buffer
into the active file. Any text selected in the Paste buffer is
inserted at the cursor.

The paste buffer can be viewed and edited using the "Edit
Paste Buffer" command (default key = Alt-P). Text copied or
cut to the Paste buffer can thus be viewed and edited before
it is pasted. In fact, anything in the Paste buffer can be pasted
by simply manually selecting it, then using the "Paste"
command. It is even possible to paste into the Paste buffer
itself.

Note: If a selection cut from a file in one selection mode
and pasted into a file that is in a different selection mode,
the target file's selection mode is automatically changed to
match the source file's mode before the paste is done. The
exception to this rule is when the source file was in
column-replace mode; the destination file is then switched
to column mode rather than column replace mode, so no
surprise clobbering of text will occur.

Text selections can be sorted or printed independently from
the rest of the file. See the Utilities chapter for details.


Chapter 4: SEARCH & REPLACE

INTRODUCTION

The Environs Text Editor has a powerful tagged regular
expression Search & Replace facility. This chapter describes
search and replace string entry, search options, regular
expression syntax and use, and the use of tags.

The Search dialog box is invoked by the "Search" command
(default key = Alt-F); Search & Replace is invoked by the
"Search & Replace" command (default key = Alt-R). The
two dialog boxes are very similar, though the options differ
slightly. The Search & Replace dialog will be described, with
notes where the Search dialog differs.

The Search & Replace dialog has three panels: a search
string panel with a pop-up scrolling list of search/replace
strings that have been entered (if any); a replace string panel
that accesses the same pop-up scrolling list of search/replace
strings (Replace only); and a panel containing search/
replace options. Alt-(first letter) can be used to select
different panels and <Tab>/<Shift-Tab> can be used to
select the next/previous panel. In addition, <Enter> can be
used to select the next panel, or if in the last panel already,
to commence the search or search & replace operation.

The pop-up scrolling list stores a history of search/replace
strings that have been used before. When Search & Replace
is invoked, the search and replace strings are blank; but if
any search/replace strings are available in the search 


history, arrowing or paging down when the search or
replace string panels are selected will cause a scrolling list of
old search/replace strings to be displayed. Strings are
selected by arrowing or paging to them and pressing
<Enter>. This causes the scrolling list to close and the
selected string to be displayed in the search/replace string
bar. Strings may be edited in place in the scrolling list prior
to selection or in the main search /replace string bar. In-
place editing of a scrolling list item is lost if the item is not
then selected by pressing <Enter>.

Search/replace options are selected in the Options panel by
arrowing to them and pressing "X" or <Spacebar>, or by
simply pressing the first letter of the option. When the
desired options have been selected, the search or search &
replace operation is commenced by pressing <Enter>. The
operation can be aborted at any time by pressing <Escape>.


SEARCH & REPLACE OPTIONS

The following search & replace options are available:

OPTION          DESCRIPTION

Selected Text   Search only in selected text.

Ignore Case     Case insensitive search.

Backwards       Search backwards from
                the cursor.


Wrap Around     After searching to end of file,
                wrap to beginning of file and
                continue until the entire file
                has been searched.

Complete        Find only complete words
Words           matched by the search string.

Global          Replace all matches found
(Replace only)  from the cursor to the end of
                the file. (If the Wrap option
                is checked, all matches in the
                file will be replaced.)

Prompt          Display each match found
                and ask user whether to
                replace it.


REGULAR EXPRESSIONS

Regular expressions allow finding text matching a specified
pattern without knowing the exact contents of the text. For
example, if looking for all occurrences of "cat" or "caat" or
"caaat", etc., the regular expression "ca+t" (quotes added for
clarity) could be entered as the search string. The "+" in the
expression is a regular expression operator that means "one
or more of the preceding subexpression". What precedes it
can be any kind of subexpression: a single character, a
character set, or a curly- brace-delimited subexpression.
Subexpressions will be covered shortly; first, the various
kinds of operators will be described.


REGULAR EXPRESSION OPERATORS

The following regular expression operators are available:

OPERATOR   DESCRIPTION

@          zero or more occurrences of the preceding
           subexpression

+          one or more occurrences of the preceding
           subexpression

*          zero or more characters of any values

?          one character of any value

`          match at beginning of line

~          match at end of line

{ }        subexpression delimiters

[ ]        character set delimiters

^          match characters NOT in the character set

-          range indicator for set of characters

$          tag the following {}-delimited subexpression

$n         insert the text matched by the n'th tagged
           subexpression


|          the preceding subexpression OR the following
           subexpression


SUBEXPRESSION TYPES

Character

Any one character, including escaped operator characters,
special character notations like '\n', and characters entered
as decimal, octal, or hexadecimal ASCII codes.

Examples:

a...Z, 0...9, \f, \n, \r, \t, \0x4ff, \X2C, \0377, \127, \{, \|,
\0, \\


Character Set

A character set is delimited by square brackets, and describes
a set of characters it matches. If the first character in the set
is an unescaped "^" character, the set matches any character
it does NOT describe. Unescaped "-" characters between two
other characters in a set indicate sequences of characters.

Examples:

[A-Za-z]     (all alpha)
[^A-Za-z]    (all BUT alpha)
[12&%_=\-]   (includes "-")
[--Z]        ("-" - "Z"),


{ }-Delimited

Any number of subexpressions may be treated as a single
subexpression by surrounding them with curly braces. This
allows combining multiple subexpressions in arbitrarily
complex ways. Nesting of {}-delimited subexpressions is
permitted.

Examples:

cat|dog      matches "catog" or "cadog";
{cat}|{dog}  matches "cat" or "dog".
go!+         matches "go!", "go!!", etc.;
{go! }+      matches "go! ", "go! go! ", etc.


USING TAGGED SUBEXPRESSIONS

Tagged subexpressions are a powerful extension to the
standard regular expression language. They allow tagging a
{}-delimited search string subexpression, then using
whatever text that subexpression matches during searching
as a subsequent part of the same search string or as part of
the replacement text. {}-delimited subexpressions are tagged
by preceding them with a "$" character. Farther right in the
search string or anywhere in the replacement string, the text
matched by a tagged subexpression can be inserted using the
notation "$n", where n is a number in the range 0-9 that
indicates which tagged subexpression's matching text to
insert. Tagged subexpressions are
numbered from the start of the search string starting at zero.


Examples:

If a function is rewritten with reordered and/or a different
number of arguments, tagged regular expression search &
replace can be used to fix calls to the routine that were
broken by the modification. To replace

    oldfunc(name, number)    OR
    oldfunc (name,number)    OR
    oldfunc(biglongname,
            biglongnumber)

with:

    newfunc(number, name, errorcode)    OR
    newfunc(biglongnumber,
            biglongname, errorcode)

as appropriate ("name" and "number" being variables that
must remain unchanged by the search & replace operation),
the search string would be:

    oldfunc @(${[^,]+}${,[\t\n]@}${[^\t\n)]+})

and the replace string would be:

    newfunc($2$1$0$1errorcode)

The preceding example was intentionally complex to show
the power of both regular expressions and tags. Simpler
uses for tags also abound. Say it was necessary to assign the
integer values of a set of string variables to long variables 


with similar names. The search string for this operation
might be:

    ${[A-Za-z_0-9]+}_long

and the replacement string:

    $0_long = atol($0);

This would change:

    ssn_long
    dl_long
    date_long
    time_long
    phone_long

to:

    ssn_long = atol(ssn);
    dl_long = atol(dl);
    date_long = atol(date);
    time_long = atol(time);
    phone_long = atol(phone);

NOTE: Tagged regular expression searches cannot be done
      when searching backwards.

SPECIAL CHARACTERS IN SEARCH & REPLACE STRINGS

Any special character can be entered in a search or replace
string. Characters that are regular expression operators must
be escaped by preceding them with a backslash, unless their
context makes them non- special.


NOTE: "^" only has special meaning as the first character in a
      set; "-" only has special meaning as a character in a set other
      than the first character of the set; and "`" and "~" only have
      special meaning at the beginning or end of a search
      expression, respectively.

The following standard notations for special characters may
be used in search or replacement strings:

CHARACTER   NOTATION    ASCII VALUE

backslash   \\          92
formfeed    \f          12
newline     \n          10
null        \0          0
return      \r          13
tab         \t          9


In addition, any ASCII character may be entered as a
decimal, hexadecimal, or octal value:

BASE          NOTATION

decimal       \nnn

hexadecimal   \Xnn  OR
              \xnn  OR
              \0xnn OR
              \0Xnn
              
octal         \0nnn


Chapter 5: PROGRAMMING AIDS

The Environs Text Editor has several features designed to
ease software editing. These include auto-indent and
selection indent, scope matching, unlimited undo,
and a menu of convenient utilities.


INDENTING

Every time <Enter> is pressed while entering text, The
Environs Text Editor automatically matches the indent of
the new line created with that of the preceding line, if any.
This facilitates indenting of nested constructs in source
code. The "Toggle Indent Mode" command (default key =
F12) causes the editor to enter or exit Indent Mode, in which
selected lines of text may be indented more or less using the
arrow keys. While in Indent Mode, the selection can also be
changed using the shift-arrow keys, so that multiple blocks
of text may be conveniently indented or un-indented using
the arrow keys.


SCOPE MATCHING

The Environs Text Editor provides powerful scope-
matching features designed to allow navigating a source
code file completely without need for the arrow and page 


up/down keys. Five scope-navigating commands are
provided:

COMMAND
(DEFAULT KEY)    ACTION

Next Scope       Move to the start of the next scope (if any)
( Alt-Equals )   of the same kind (parens, braces, etc.) and
                 nesting level as the current scope (that is,
                 the scope currently containing the cursor).

Previous Scope   Move to the start of the previous scope (if
( Alt-Minus )    any) of the same kind and nesting level as
                 the current scope.

Start of Scope   Move to the start of the current scope; if
( Alt-[ )        already there, move to the start of the
                 enclosing scope of the same kind, if any. If
                 at the beginning of the outermost scope of
                 a kind, move to the beginning of the file.

End of Scope     Move to the end of the current scope; if
( Alt-] )        already there, move to the end of the
                 enclosing scope of the same kind, if any. If
                 at the end of the outermost scope of a
                 kind, move to the end of the file.

Next Nested      Move to the start of the next scope of the
Scope ( Alt-\)   same kind as the current scope and nested
                 within the current scope. If outside all
                 scopes, move to the start of the next scope
                 delimited by curly braces.


The default keys for these commands are conveniently
grouped to allow easy navigation of a source code file.
Scopes recognized are {...}, (...), and [...].


UNDO

The Environs Text Editor provides undo of all operations
back to the last time the file was opened or saved. All
operations can be undone, including file sorting, search &
replace, cut, paste, editing, and even highlighting and
cursor movement. If all editing operations done to a file
since it was opened or saved are undone, there will be no
need to save the file when exiting.


UTILITIES

Several utilities are available when using the Environs Text
Editor: A "Magnifier" used to aid in binary file editing; file
sorting; file printing; and loading of modified keyboard
configuration files. These are available from the Utilities
menu, which is invoked by the "Utilities Menu" command
(default key = Ctrl-X).


MAGNIFIER

The Magnifier is a special cursor that shows characters'
decimal values as well as the characters themselves. Its
purpose is to ease the editing of binary files that contain
many non-printing characters. It does this for the character
under the cursor and up to eight characters surrounding 


that character in the file, for context. All editing features
continue to be available while the magnifier cursor is
turned on. To turn the Magnifier cursor on, select
"Magnifier On" from the Utilities menu; to turn it back off,
select "Magnifier Off".


FILE SORTING

Three flavors of file sorting are available, depending on
whether there is a current selection in the file and on the
selection mode:

SELECTION
& MODE      SORT OPERATION DONE

None        Sort the lines of the entire file, starting at the
            column one of each line.

Normal      Sort the lines containing the current selection,
            starting at column one of each line.

Column or   Sort the entire lines containing the current 
Column      selection, based on the selected portion of
Replace     each line


Examples:

If the lines:

    The quick brown 19
    fox jumped      18
    over the        17


    lazy            16
    dog's           15
    back            14
    now             13
    is the          12
    time            11
    for             10
    all             09
    good            08
    men to          07
    come to the     06
    aid of          05
    their           04
    country.        03
    This            02
    means YOU!      01

are selected in normal mode, the sorting command in the
utility menu will read "Sort Selection", and will result in
the following:

    The quick brown 19
    This            02
    aid of          05
    all             09
    back            14
    come to the     06
    country.        03
    dog's           15
    for             10
    fox jumped      18
    good            08
    is the          12
    lazy            16
    means YOU!      01
    men to          07


    now             13
    over the        17
    their           04
    time            11


However, if in column or column replace selection mode,
the sorting command will read "Sort Selected Lines by
Selected Column". If the column of numbers is selected,
sorting will result in the following:

    means YOU!      01
    This            02
    country.        03
    their           04
    aid of          05
    come to the     06
    men to          07
    good            08
    all             09
    for             10
    time            11
    is the          12
    now             13
    back            14
    dog's           15
    lazy            16
    over the        17
    fox jumped      18
    The quick brown 19

If no text is selected, the Utility menu Sort command reads
"Sort File", and results in the sorting of the entire file,
starting from the beginning of each line.


PRINTING

Printing of the entire file, the lines containing the current
selection, or the selected column are supported. If there is
no selection or the selection is hidden, the command in the
Utility menu reads "Print File", and the entire file is
printed. If there is a selection in normal mode, the Print
command reads "Print Selection", and all lines containing
the selection (including all of any partially-selected lines)
are printed. If a column of text is selected, the command
reads "Print Selected Column", and only the text in the
selected column is printed.


UPPERCASE/LOWERCASE/MIXCASE SELECTION

Selected text can be made all uppercase, all lowercase, or
mixed case using the "Uppercase/Lowercase/Mixcase
Selection" commands in the utility menu. The Mixcase
command changes each word not found in the optional
ACRONYMS.INI file to capitalized lowercase. Words found
in the ACRONYMS.INI file are cased exactly as specified
there when they are encountered by the Mixcase utility. The
file must be in the same directory as the editor executable to
be used. It also must contain one word per line.


KEYBOARD SETTINGS

Throughout this manual, the "default key" for various
commands has been noted. The reason for this language is
that the key bindings for all Environs Text Editor 


commands can be easily changed to suit the user. These
changes are made by editing the KEYBOARD.CFG file found
in the same directory as the program executable. When this
file has been edited as desired, it can be immediately loaded
using the "Load Keyboard Configuration" command in the
Utility menu.

Care must be taken when editing the KEYBOARD.CFG file
to ensure that all commands continue to have a unique key
to invoke them. For example, if it is desired to use key
<Ctrl-X> to execute the "Close Current File" command,
then a new, unique key must also be assigned to the
"Utilities Menu" command, which uses <Ctrl-X> as its
default key. Otherwise, there will be two commands
associated with <Ctrl-X>, only one of which will be
available. If this situation exists when the KEYBOARD.CFG
file is loaded, a warning is displayed.

As a safety measure, the last ten versions of the
KEYBOARD.CFG file are saved as KEYBOARD.001 through
KEYBOARD.010 when keyboard configurations are loaded
"on the fly" using the Utilities menu "Load Keyboard
Configuration" command. Note that this safety mechanism
is NOT available if configurations are changed by editing,
exiting the editor, and re-entering the editor. It is
recommended that the "on the fly" method of keyboard
configuration updating be used for this reason, and also to
allow the editor to do immediate error checking on
configuration changes as described above. To return to the
initial defaults, simply delete the KEYBOARD.CFG file,
then invoke the editor. A new configuration file containing
the defaults will automatically be created.


Appendix A: COMMAND SUMMARY


FILE MANAGEMENT

               DEFAULT
COMMAND        KEY       DESCRIPTION

Open File      Ctrl-Ins  Bring up the File Finder window
                         and open the selected file.

Recent         Alt-      Allow reopening or activating a
Opens List     Zero      recently-opened file by selecting it
                         from a pop-up scrolling list.

Save File      Alt-S     Save any changes made to current
                         file, and continue editing it.

Quit File      Escape    Quit current file. If changes have
                         been made, user will be prompted
                         as to whether to save the file.

Save &         F10       Save and close current file; if any
Close File               files are still open, activate the
                         most recently opened one.

Next File      Ctrl-     Switch to the next file (in the order
               PgDn      in which they were opened).

Previous       Ctrl-     Switch to the previous file (in the
File           PgUp      order in which they were opened).


Save All       Alt-X     Save all modified files and exit the
& Exit                   editor.


CURSOR MOVEMENT

               DEFAULT
COMMAND        KEY       DESCRIPTION

Left           Left      Move left one character.

Right          Right     Move right one character.

Left           Ctrl-     Move left one word.
Word           Left

Right          Ctrl-     Move right one word.
Word           Right

End of Line    End       Move to the end of the line.

Beginning      Home      Move to the beginning of the line.
of Line

Up             Up        Move to the same column in the
                         previous line (if not already in the
                         first line).

Down           Down      Move to the same column in the
                         next line (if not in the last line).

Page Up        PgUp      Attempt to move up one page.


Page Down      PgDn      Attempt to move down one page.

Go to Line     Alt-3     Go to a specified line.

End of File    Ctrl-     Move to the end of the file.
               End

Top of         Ctrl-     Move to the top of the of
File           Home      file


EDITING COMMANDS

               DEFAULT
COMMAND        KEY       DESCRIPTION

Delete         Delete    Delete the character under the
                         cursor. If at or past EOL, next line is
                         joined to the end of the current
                         line.

Delete         Back-     Delete the character left of the
to Left        space     cursor. If at BOL, the current line is
                         joined to the previous line

Delete         Ctrl-T    Delete the word starting under the
Word                     cursor. If at or past EOL, the next
                         line is joined to the end of the
                         current line.

Delete         F7        Delete the current line.
Line


Delete to      F8        Delete from cursor to end of line
EOL, Move                and move down one line.
Down

Toggle         Insert    Toggle between cursor insert and
Insert Mode              overstrike modes.

Insert         Enter     The current line is split, with
Newline                  characters under and right of the
(Insert Mode)            cursor moving to a new line. If the
                         cursor is at or past EOL, an empty
                         line is inserted. If the cursor is past
                         EOL, the current line is padded out
                         to the cursor with blanks before it is
                         split. The cursor moves to the
                         beginning of the new line.

Insert         Enter     The cursor moves to the beginning
Newline                  of the next line. The current line is
(Overstrike              not  split.
Mode)

Insert         (*)       In insert mode, the character is
Character                inserted before the character under
                         the cursor. In overstrike mode the
                         character replaces the character
                         under the cursor.

ASCII          Alt-A     Pop up an ASCII table showing all
Table/Insert             256 characters and their decimal
                         and hexadecimal values. Allow
                         inserting a character by selecting it
                         from the table.


Insert a Tab   Tab       Insert spaces to the next tab stop.


Escape         Ctrl-\    Enter a character that would
Character                normally have special meaning.
                         The character typed after this
                         command is stripped of any
                         special meaning


SELECTION COMMANDS

               DEFAULT
COMMAND        KEY       DESCRIPTION

Beginning      Alt-B     Move to the beginning of the
of Selection             currently marked selection.

End of         Alt-E     Move to the end of the currently
Selection                marked selection.

Toggle         Ctrl-K H  Turn highlighting of current
Highlight                selection on or off.

Toggle         Alt-M     Switch between Normal, Column,
Selection                and Column Replace modes.
Mode

Select Line    F1        Select the current line and move to
                         the beginning of the line.


Set Start of   F5        Set the start of the selection to the
Selection                current cursor position.

Set End of     F6        Set the end of the selection to the
Selection                current cursor position.

The following commands change the size of the currently
highlighted selection if they are done with the cursor at
either the beginning or end of the current selection;
otherwise they start marking a new selection with the
beginning and end of the selection being the positions held
by the cursor before and after execution of the command.

Left           Shift-    Move left one character.
Marking        Left

Right          Shift-    Move right one character.
Marking        Right

Up             Shift-    Move to the same column in the
Marking        Up        previous line (if not in line 1).

Down           Shift-    Move to the same column in the
Marking        Down      next line (if not at EOF).

Page Up        Shift-    Attempt to move up one page.
Marking        PgUp

Page Down      Shift-    Attempt to move down one page.
Marking        PgDn

End of Line    Shift-    Move to the end of the line.
Marking        End


Beginning      Shift-    Move to the beginning of the line.
of Line        Home
Marking


SELECTION EDITING COMMANDS

               DEFAULT
COMMAND        KEY       DESCRIPTION

Copy           F2        Copy selection to current cursor
Selection                position. In Column Replace
                         mode the column replaces text
                         down and right from the cursor. In
                         other modes the selection is
                         inserted.

Move           F3        Move selection to current cursor
Selection                position. In Column Replace
                         mode the column replaces text
                         down and right from the cursor. In
                         other modes the selection is
                         inserted. The selection is deleted
                         from it's original position.

Delete         F4        Delete highlighted selection. In
Selection                Column Replace mode the
                         selection is replaced with all blanks;
                         In other modes text closes up
                         where the selection was.


Toggle         F12       Toggle indent mode on/off. When
Indent                   in indent mode, the right and left
Mode                     arrow keys indent and un-indent
                         the lines containing the current
                         selection.


PASTE BUFFER COMMANDS

               DEFAULT
COMMAND        KEY       DESCRIPTION

Cut            Grey-     Selection is copied to the paste
               Minus     buffer, then a selection delete is
                         performed.

Paste          Shift-    Most recently cut selection is
               Ins       inserted from the paste buffer.

Copy to        Grey-     Selection is copied to paste buffer.
Paste          Plus
Buffer

Edit Paste     Alt-P     View or modify contents of the
Buffer                   paste buffer.


SEARCH & REPLACE COMMANDS

               DEFAULT
COMMAND        KEY       DESCRIPTION

Search         Alt-F     Search for the specified pattern;
                         highlight it if found.

Search &       Alt-R     Replace text matching the specified
Replace                  pattern with the specified
                         replacement string.

Repeat         F9        Repeat the last search or search &
Search or                replace operation.
Replace

Repeat         Shift-    Repeat the last search or search &
Search         F9        replace operation, in the opposite
Backwards                direction.


SCOPE-MATCHING COMMANDS

               DEFAULT
COMMAND        KEY       DESCRIPTION

Next Scope     Alt-      Move to the start of the next scope
               Equals    of the same kind and nesting
                         level as the current scope.


Previous       Alt-      Move to the start of the previous
Scope          Minus     scope of the same kind and nesting
                         level as the current scope.

Start of       Alt-[     Move to the start of the current
Scope                    scope; if already there, move to the
                         start of the enclosing scope of the
                         same kind.

End of         Alt-]     Move to the end of the current
Scope                    scope; if already there, move to the
                         end of the enclosing scope of the
                         same kind.

Next           Alt-\     Move to the start of the next scope
Nested                   of the same kind as the current
Scope                    scope and nested within the
                         current scope.

OTHER COMMANDS

               DEFAULT
COMMAND        KEY       DESCRIPTION

Undo           Grey-     Undo the last action. Character
               Star      insertions (up to a newline), and
                         character or word deletions (up to a
                         newline), are grouped together as
                         single undoable actions.
                         Consecutive cursor movements
                         and highlighting changes are also
                         grouped together into single
                         undoable actions. 


Resize         Ctrl-F5   Enter window resizing / moving
Window                   mode. In resizing mode, windows
                         are moved using the arrow keys
                         and resized using the shift-arrow
                         keys. Use <Enter> to exit this mode.

Zoom           Alt-Z     toggle the active window between
Window                   its default or user-set size/location
                         and full-screen.

Utilities      Ctrl-X    Pop up the Utilities menu.
Menu

Shell Out      Alt-D     Shell out to DOS. Type EXIT at the
                         DOS prompt to resume editing.

Help           Alt-H     Pop up the on-line help window.

Display        Alt-V     Display program version
Version                  information.


REGULAR EXPRESSIONS (USED IN SEARCH AND SEARCH & REPLACE)

OPERATOR   DESCRIPTION

@          Zero or more occurrences of the preceding
           subexpression.

+          One or more occurrences of the preceding
           subexpression.


*          Zero or more characters of any value.
?          One character of any value.

`          Match at beginning of line.

~          Match at end of line.

{ }        Subexpression delimiters.

[ ]        Character set delimiters.

^          Match characters NOT in the set.

-          Range indicator for a set of characters.

$          Tag the following { }-delimited
           subexpression.

$n         Insert the text matched by the n'th tagged
           subexpression.

|          Match the preceding subexpression OR the
           following subexpression.

NOTE: Tagged regular expression searches cannot be done
      when searching backwards.


SUBEXPRESSION TYPES

TYPE            DESCRIPTION

Character       any one character, including escaped operator
                characters, special character notations like
                '\n', and characters entered as decimal, octal,
                or hexadecimal ASCII codes.

Set             A set is delimited by square brackets, and
                describes a set of characters it matches. If the
                first character in the set is an unescaped "^"
                character, the set matches any character it
                does not describe. Unescaped "-" characters
                between two other characters in a set indicate
                sequences of characters.

{ }-Delimited   Any number of subexpressions may be
                treated as a single subexpression by
                surrounding them with curly braces. This
                allows combining multiple subexpressions in
                arbitrarily complex ways. Nesting of { }-
                delimited subexpressions is permitted.


SPECIAL CHARACTERS IN SEARCH & REPLACE STRINGS

Any special character can be entered in a search or replace
string. Characters that are regular expression operators must
be escaped by preceding them with a backslash, unless their
context makes them non-special.


NOTE: "^" only has special meaning as the first character in a
      set; "-" only has special meaning as a character in a set other
      than the first character of the set; and "`" and "~" only have
      special meaning at the beginning or end of a search
      expression, respectively.

The following standard notations for special characters may
be used in search or replacement strings:

CHARACTER   NOTATION   ASCII VALUE

backslash   \\         92
formfeed    \f         12
newline     \n         10
null        \0         0
return      \r         13
tab         \t         9

In addition, any ASCII character may be entered as a
decimal, hexadecimal, or octal value:

BASE          NOTATION
                      
decimal       \nnn  

hexadecimal   \Xnn  -or-    
              \xnn  -or-    
              \0xnn -or-    
              \0Xnn   
              
octal         \0nnn   


Appendix B: KEY NAMES PERMITTED IN KEYBOARD.CFG

&         Alt-B            Alt-Right         Ctrl-N        Home            V
'         Alt-BS           Alt-S             Ctrl-O        I               W
(         Alt-Backslash    Alt-T             Ctrl-P        Ins             X
)         Alt-C            Alt-Tab           Ctrl-PgDn     J               Y
*         Alt-D            Alt-U             Ctrl-PgUp     K               Z
+         Alt-Del          Alt-Up            Ctrl-Q        L               [
-         Alt-Down         Alt-V             Ctrl-Right    Left            \
.         Alt-E            Alt-W             Ctrl-T        M               ]
/         Alt-End          Alt-X             Ctrl-U        N               ^
0         Alt-Equal        Alt-Y             Ctrl-Up       O               _
1         Alt-Esc          Alt-Z             Ctrl-V        P               `
2         Alt-F            Alt-[             Ctrl-W        PgDn            a
3         Alt-F1           Alt-]             Ctrl-X        PgUp            b
4         Alt-F10          Alt-`             Ctrl-Y        Q               c
5         Alt-F2           B                 Ctrl-Z        R               d
6         Alt-F3           BS                Ctrl-]        Right           e
7         Alt-F4           Blank             D             S               f
8         Alt-F5           C                 Del           Shft-Del        g
9         Alt-F6           Ctrl-2            Down          Shft-Down       h
:         Alt-F7           Ctrl-6            E             Shft-End        i
;         Alt-F8           Ctrl-BS           End           Shft-F1         j
<         Alt-F9           Ctrl-Backslash    Enter         Shft-F10        k
=         Alt-G            Ctrl-Del          Esc           Shft-F2         l
>         Alt-Grey-Minus   Ctrl-Down         F             Shft-F3         m
?         Alt-Grey-Plus    Ctrl-End          F1            Shft-F4         n
@         Alt-Grey-Slash   Ctrl-F1           F10           Shft-F5         o
A         Alt-Grey-Star    Ctrl-F10          F11           Shft-F6         p
Alt-'     Alt-H            Ctrl-F2           F12           Shft-F7         q
Alt-,     Alt-I            Ctrl-F3           F2            Shft-F8         r
Alt-.     Alt-Ins          Ctrl-F4           F3            Shft-F9         s
Alt-0     Alt-J            Ctrl-F5           F4            Shft-Home       t
Alt-1     Alt-K            Ctrl-F6           F5            Shft-Ins        u
Alt-2     Alt-L            Ctrl-F7           F6            Shft-Left       v
Alt-3     Alt-Left         Ctrl-F8           F7            Shft-PgDn       w
Alt-4     Alt-M            Ctrl-F9           F8            Shft-PgUp       x
Alt-5     Alt-Minus        Ctrl-G            F9            Shft-Right      y
Alt-6     Alt-N            Ctrl-Home         G             Shft-Tab        z
Alt-7     Alt-O            Ctrl-Ins          Grey-Minus    Shft-Up          
Alt-8     Alt-P            Ctrl-J            Grey-Plus     T                
Alt-9     Alt-PgDn         Ctrl-K            Grey-Slash    Tab              
Alt-;     Alt-Q            Ctrl-L            Grey-Star     U                
Alt-A     Alt-R            Ctrl-Left         H             Up               


KEY NAMES -NOT- PERMITTED IN KEYBOARD.CFG

KEY                      KEYBOARD.CFG EQUIVALENT

Ctrl-A                   Alt-0
Ctrl-Minus               Alt-End
Ctrl-C                   Alt-Equal
Ctrl-B                   Alt-Minus
Shft-F12                 BS
Shft-BS                  BS
Ctrl-H                   BS
Ctrl-S                   Ctrl-Del
Shft-F11                 Ctrl-G
Ctrl-R                   Ctrl-Ins
Ctrl-F12                 Ctrl-J
Alt-F11                  Ctrl-K
Alt-F12                  Ctrl-L
Ctrl-Grey Minus          Ctrl-N
Ctrl-Grey Plus           Ctrl-P
Ctrl-D                   Ctrl-PgUp
Ctrl-Tab                 Ctrl-T
Ctrl-Grey Slash          Ctrl-U
Ctrl-Grey Star           Ctrl-V
Alt-Home                 Ctrl-W
Alt-PgUp                 Ctrl-Y
Ctrl-M                   Enter
Shft-Esc                 Esc
Ctrl-Esc                 Esc
Ctrl-[                   Esc
Ctrl-E                   F11
Ctrl-F                   F12
Shft-Grey-Minus          Grey-Minus
Shft-Grey-Plus           Grey-Plus
Shft-Grey-Slash          Grey-Slash
Shft-Grey-Star           Grey-Star
Ctrl-I                   Tab
Ctrl-F11                 Tab


Appendix C: PROGRAM LIMITS.

The Environs Text Editor achieves nearly unlimited file
size, line length, and number-of-lines capacity by using a
virtual memory subsystem. This system requires no special
operating system resources. If XMS is available on the host
computer system, then all available extended memory will
be used in the level 2 cache of the virtual memory system,
resulting in high performance for files up to the size of all
extended memory. If XMS memory is not available, virtual
memory will use only the smaller level 1 cache in "low"
memory and the swap file on disk. Although performance
for large files will be lower, total virtual memory will still
be limited only by available disk space.

PARAMETER    LIMIT

File Size    Somewhat less than 1/2 of
             available disk space. Also limited
             by the 4.3 gigabyte virtual address
             space size.

NOTES: The editor maintains a swap file and a backup file on
       disk. The swap file will be large enough to hold all open
       files; if there is not enough disk space for both the backup
       file and the modified file, the backup file may be deleted to
       make room when saving the modified file.


Open files   32,767


NOTES: An overhead of 4448 bytes is used by the editor for
       each open file, not counting the text. An additional 104 
       bytes/line is used for lines up to 64 characters long. Longer
       lines use exactly

       int((length+1023)/1024)*40 +
       int((length+63)/64)*64

       bytes. Inserting text adds to this allocation in 104-byte
       chunks, each of which can hold up to 64 characters of text.
       Allocation is done from virtual memory, so total allocated
       space is disk-space limited.

Line length             About 2 billion characters.

Number of Lines         About 2 billion.

Search String Length    127 characters

Number of Search        10
String Tags

Minimum System          286 with 1 MB of memory, 1 MB of
                        available disk space, Dos 3.2 or later

Minimum Low             350K
Memory

Recently-Opened         20
Files List Size
