The Edt editor is a simple text editor for rapid text manipulation.
Common operations are accessed by single keys on the numeric key-pad (to the right of the character
key-board). Styled after the DEC VMS EDt/EVE/TPU editors,
Edt is simple to use. It maximizes flexibility from the
fewest number of commands and key-operators. Like most
modern editors, you normally operate in full-screen insert mode,
while moving around, deleting/pasting, etc..

Edt contains four built-in buffers:

character buffer,

word buffer (delineated by white-space),

line buffer (delineated by <carriage-returns>),

paste buffer (arbitrary length).

Additionally, you may create and switch
between an arbitrary number of separate -user-named- text buffers.

The editor maintains one level of back-up for any file edited so
you can always revert to the previous version even in the unlikely
event of a save error. The editor maintains continuous journaling
for error recovery down to within a few keystrokes, in the event
of a system failure during an editing session.

To invoke EDT, you should be using an ANSI Standard compliant
terminal or window, such as an X-term window.

Type:

edt file_name

The editor contains two modes:

Line Modeand

Screen Mode

Upon entering, the editor will be in line mode (* prompt). To go to
full-screen mode, type "c" and return. To return to line mode from
the screen mode, type control-z.

The line-mode and screen
mode operations are elaborated below. Additionally, there is
a command-line option that can be used when invoking the
editor:

-readonly

When the -read_only or -read command-line option is placed
anywhere on the command-line when the editor is invoked, then the editor will be placed
in a read-only mode. In read-only mode, the editor will not
allow modification of the original file by way of an exit and save
to that file. This is helpful when you need a powerful viewer, but
want to avoid accidental changes to an important file. If you
attempt to save from readonly mode, you will be reminded that you
are in readonly mode and cannot save. If you however want to
preserve your edits anyway, you may write to any arbitrary file
name using the w write to file-name command.

The editor checks the size of your viewing window upon entering screen-mode.
If you should change the window size during an editing session, you should
notify the editor by going to line-mode and back to screen-mode,
EDt will automatically establish new size parameters. You can also set the size
parameters explicitly, if needed, to arbitrary values by using the "set rows/cols"
commands described below.

Note that the editor considers the text buffer to be a single linear string of
characters which are wrapped across the screen to form lines of characters.
Therefore, you can move to the end of the previous line by hitting <left-arrow>
until the beginning of the current line is reached.

You can likewise exploit this same property for joining lines by deleting the
intervening carriage-return, or breaking lines by inserting a carriage-return, etc..

To delete characters backward use the delete key.
Exit from screen-editing mode with ^Z.

This key selects
the second function of many of the keypad keys. Defined as key-"7"
on newer keypads. (On older systems, the upper-left-most key was traditionally
the gold key. However, many newer systems have a hardware-implemented
num-lock key in that position which does not produce a key input.
Consequently, the gold-key has been moved the 7-key directly below.)

Help

-

Displays this help file.

Search/Find

-

Use the key
as follows: To enter a search string, hit the <Gold> <Search> keys.
This will bring up an entry area at the bottom of your screen for
typing in your search string. The search string can contain any
type of characters, including <carriage-return> and
non-alpha-numeric characters such as punctuation etc..

Upon completing the search string, initiate the search by hitting the
<Dir-Frwrd> or <Dir-Bckwrd> key-pad keys according to which
direction relative to the cursor you want to search.

To search
(ie. again or repeatedly) for the current search string, simply
hit the <Search> keypad key.

Delete-Line-Forward

-

The
<delete-line> key deletes the remaining characters on the line
from the cursor position to the end of the line, including the
<carriage-return>. The deleted characters are held in the
"delete-line-buffer".

<Gold><delete-line> pastes the characters
held in the "delete-line-buffer" to wherever the cursor is. This
can be used to undo an accidental deletion, or to replicate.

Delete-Word-Forward

-

The
<delete-word> key deletes the remaining characters in the word to
the right of the cursor. Words are delineated by the white space
characters: <space>, <tab>, and <carriage-return>. The deleted
characters are held in the "delete-Word-buffer".

<Gold><delete-Word> pastes the characters held in the
"delete-Word-buffer" to wherever the cursor is. This can be used to
undo an accidental deletion, or to replicate.

Delete-Char-Forward

-

The
<delete-char> key deletes the character to the right of the
cursor. The deleted character is held in the "delete-char-buffer".

<Gold><delete-char> paste the character held in the
"delete-line-buffer" to wherever the cursor is. This can be used
to undo an accidental deletion, or to replicate.

Jump by Page(keypad 8)

-

The <jump-page> key moves the cursor position by 16
lines, either up or down based on the current direction setting.
You can use this key to scroll through a document quickly.

<Gold><jump-page> re-formats a selected text region to the current
margin width. The margin setting defaults to 65, and can be set
using the set margin command-line command described above.

Jump by Word(keypad 1)

-

The <jump-word> key moves the cursor either right or left
based on the current direction setting. This helps to quickly move
to a position within a line.

<Gold><jump-word> = <change-case> ,
reverses the capitalization of the character to the right or left
of the cursor according to the direction setting. If the cursor is
positioned at the start of an instance of the current
search-string, then the capitalization of that instance of the
search-string will be reversed. Or, if there is a selection region
active (see Set-Mark), then the capitalization of the selected
region will be reversed.

Jump to Begin of Line(keypad 0)

-

The <jump-BOL> key moves the cursor to the first
character of the next line if the direction is set to forward, or
to the first character of the current line if the direction is set
to backward, unless it is already on the first character in which
case it moves to the first character of the previous line. The key can be pressed repeatedly to move through a file.

Jump to End of Line(keypad 2)

-

The key moves the cursor to the last character
of the previous line if the direction is set to backward, or to
the last character of the current line if the direction is set to
forward, unless it is already on the last character of the current
line in which case it moves to the last character of the next
line. The key can be pressed repeatedly to move through a file.

Enter character as ASCII Decimal Value(keypad 3)

-

This key is useful when you need to enter an ASCII value
which you do not have a key for, such as non-alpha-numerics. For
instance, to insert a <control> value into a file, such as
<cntrl-G> , you would hit <keypad-3> , an entry window at the bottom
of your screen prompts you for the ASCII value, which for
<control-G> is "7", then you hit <keypad-3> again, and the ASCII
value is inserted into the file.

Set Direction Forward(keypad-4)

-

This key sets the direction of many of the other keypad
functions to forward, such as jumps and searches. Once set, the
direction remains, until changed by the <set-direction-backward>
key.

<Gold><set-direction-forward> moves the cursor to the very end (or bottom) of the file.

Set Direction Backward(keypad-5)

-

This key sets the direction of many of the other keypad
functions to backward, such as jumps and searches. Once set, the
direction remains, until changed by the <set-direction-forward>
key.

<Gold><set-direction-backward> moves the cursor to the very
beginning (or top) of the file.

Cut/Paste(keypad-6)

-

This
key cuts a selected section of text from the file, and places it
into the paste-buffer. Note that the cutting action only occurs
when a marker has been set and is valid. (See the <Set-Mark> key.)
This can be used to put text into the paste-buffer for
<search/replace> operations. (See <search/replace> key.)This
can also be used to cut very large regions from a file. For
instance, you could set a mark on line 30,000, move to line 60,000
and perform the cut to remove 30,000 lines. This is much faster
than using <delete-line&gt.

<Gold><paste> pastes the contents of the
paste buffer into the file at the location of the cursor. This can
be used to undo an accidental cut, or to replicate sections of
text many times.

Set Mark(keypad ".")

-

This key sets a marker in the file corresponding to the
current cursor position. The cursor can then be moved by any of
the movement commands, such as arrow-keys, jump-keys, search-keys,
or direct line number command. When moved, the text between the
cursor and the marker defines a selection region that can be
operated on by various other keys, such as the <cut/paste> key,
the <reformat> key, or the <change-case>

Replace(keypad 9)

-

If the
cursor is positioned at the start of an instance of the current
search-string, then the instance of the search-string will be
replaced by the contents of the paste-buffer when you hit
<replace>. If <Gold><replace> is used, Then he search function
will be automatically invoked after the replacement to position
the cursor at the next instance of the search-string if there is one.

Quit from editor
without saving file. You are asked to confirm this command if you modified the file.
(q! - Forces quit, and does not ask to save, even when there were changes.)

ex [exit]

-

Exit from the editor and save the edited file.
The previous version of the file (if it exists) is moved
to a file of the same root name but with a .bak
suffix just prior to the save operation. This provides a backup file.

w [write]

-

Writes a copy of the current edit buffer to a named file.
Example: write doc.txt
Write command followed by no file name, writes to the curent file-name, but does not create .bak file.
Example: w
(wq and wq! - Combinations Write and Quit without copying backup file.
Sometimes useful for minor changes on huge files.)

r [read]

-

Same as include.

incl [include]

-

Brings contents of named file into the active edit buffer.
The new contents are inserted at the current cursor position
as if they were typed in. Example: incl data.txt

s [substitute]

-

Perform character string substitution.
Example: s/string1/string2/
Searches for all instances of string1 and replaces them with string2.

Note that any non-alphanumeric character can be used as the delimiter,
but the same one must be used in all three positions.
This allows you to search for and replace strings containing any delimiters.
Example: s!string1!string2!

case

-

Toggles case sensitivity for searches and search/replace.
The default is case-insensitive.

resize

-

Resets the editor's window row and col size parameters according to
the current window size. This is useful when the size of the viewing window
is changed. (This old function is no longer needed.)

set rows

-

Sets the editor screen mode to display the specified number of rows.
Example: set rows 24

set cols

-

Sets the editor screen mode to display the specified number of
character columns. Example: set cols 80
This sets the screen to display a maximum of 80 columns.

set margin

-

Sets the right margin parameter, used by the re-format operation,
to a specified number of columns.
Example: set margin 65
See re-format key-pad operation below.

<line number>

-

Typing a number at the line prompt moves the cursor to
that line number. The line and number are displayed.

! <Unix command>

-

The exclamation mark can be used to escape to a Unix
command without leaving or exiting from the editor.
This is useful for listing directories, etc.. Example: ! ls -la file

= <buffer_name>

-

Switch text buffers. The default buffer is called "main".
You can give any arbitrary buffer name to create a new buffer.
You can switch between them at any time by naming them after the equals sign.

Be careful at "saving" / "file-writing" - time however. Only the contents of the
currently active buffer will be saved. (If you are not in the main buffer,
Edt will warn you.)

list

-

Lists the names of the currently defined text buffers.

configure_keypad

-

Enables you to acquaint Edt to your keyboard.
Key-pad keys on different platforms send varying key-codes.
To configure the editor to your key-pad when first installing, invoke the
editor and type configure_keypad at the prompt. The editor will then
prompt you to press each of the key-pad keys. It will record the code sent
by each key, and enable you to save the configuration to a set-up file.

begin {prog-lang}

-

Where program-language is one of c or cprog, c++ or c++prog, java or javaprog, or html.
Causes editor to insert an outer program shell, of the selected language, into the edit buffer.
Handy for starting new programs or web pages. Also accepts start {prog-lang}.
Example: begin cprog

When first using Edt, the editor must learn the key-codes returned
by your particular keypad. On first invocation, you will see
a warning:

Warning: EDT_KEYPAD_SETUP not set. (Type help_config.)

Typing help_config will produce the following instructions.

When first installing EDT, the key-pad configuration procedure
can be run to acquaint EDT with your particular keyboard.
This process makes the 'edt_keypad.xml' file that EDT references
when starting all future sessions. (Formerly .edt_rc)

Alternatively, some default edt_keypad.xml files are included in the download package for various keyboard layouts.
The default often works OK for many keyboards. However, it may require some adjustment or customization for PC.
It is a readable file, and the mapping is easily edited.

Use the edt_keypad_xx.xml file by setting your EDT_KEYPAD_SETUP environment
variable to point to where you have placed it. (For example in bash: export EDT_KEYPAD_SETUP=/home/bart/edt_keypad.xml )
The laptop version maps the function keys F1-F9 to their respective functions on the keypad,
with F10 mapped to keypad-0, F11 being delete-line, F12 being delete-word, Insert being dot/mark, and
End being Find. If none of the default keypad maps work for your computer, then proceed to
the following steps for configuring custom keyboards.

To run the configuration procedure, at the editor's prompt, type:

configure_keypad

It will lead you through a set of instructions involving pressing the
keypad keys. When complete, it will store the configuration file as
'edt_keypad.xml'. The editor will rely on the environment variable:

EDT_KEYPAD_SETUP

to point to that file on future invocations. We recommend
moving the edt_keypad.xml file to your main directory, and placing a line in
your .cshrc or .bashrc file to set the variable automatically on future sessions.

If you have previously created the configuration, but get a warning
when starting EDT that it cannot find it, and the keypad bindings
do not take their functions, then the environment variable needs
to be set to properly point to the edt_keypad.xml file.

KeyPad Configuration:
This is a two-step process. The first step finds the 'raw X-key-codes'
of each of your key-pad's keys. It will be skipped if you are not in
an environment where X-window calls can execute, such as a telnet window.
Otherwise, a small (Xev) window will appear, and a list of keys to
strike will be listed in the Edt window. Click your mouse on the
Xev window and type the keypad keys exactly in the order listed.
BE CAREFUL!!! What you type will affect your keyboard if you accept the changes.
If you mess up, simply abort (it gives the chance to abort), and try it again.
(Hint due to buffering, it is help to hit several extra spaces before exiting the Xev window.)

The second step learns the actual values returned by the keys.
It asks you to press each of the listed keys, followed by Enter or Return.
Again, do this carefully. If successful, you should save the edt_keypad.xml file
and set your EDT_KEYPAD_SETUP environment variable to point to that setup file for future editing sessions.

Make an alias for the editor, to invoke it from anywhere with a simple command, and
set your EDT_KEYPAD_SETUP environment variable to point at the edt_keypad.xml file.
Example, for C-shell, place the following into your .cshrc or .tcshrc file:

If the default edt_keypad.xml file does not match your keypad (your keypad keys don't work properly), then
you may need to either modify your edt_keypad.xml file, or run the configure_keypad procedure from the editor's
line-mode. See above.

For speed, the editor comes up by default within your existing terminal window.
However, you may wish for it to come up in its own window, especially for example if you are using a non-compatible window
such as DOS-CMD or Gnome-terminal. In this case, launch as:xterm -e /home/bart/stuff/edt_1.9

New Features

Open directly to a given line, by appending line-number after file-name and colon.
Often during program development, compiler warning/error messages appear as:filename:345 - Warning: No l-value ...

You can cut&paste the filename:345 into your shell command-line, as in:ed filename:345
The editor will open to line 345 in this case.

Starting with version 1.7, you can edit gzip compressed files directly.
Edt now recognizes the *.gz file suffix, and will automatically (temporarily) decompress
gzip'd files for editing. It re-zips when you exit or quit the edit session. This is convenient if you keep larger or older
files compressed. Without this feature, you would need to manually decompress the file before editing, and then remember
to re-compress it afterward. Now this process is transparent, and it encourages keeping more files compressed on disk.

In version 1.8, the ability was added to accept 'wq', 'wq!', 'q!' at the editor's line-prompt.
Also in this version, the ability to accept 'begin cprog', 'begin c++prog', and 'begin javaprog' commands at the line-prompt was added.
Starting in this version, for convenience, it is no longer necessary to precede directory listing commands, ls or dir, at the line-prompt
with the shell-command-escape character '!'.

Version 1.9 added a check against accidently attempting to edit a directory.
It adds the ability to start an HTML file by inserting the HTML tags for header and page-body, when you type
begin html at the line-prompt. A makefile and Sun keyboard map were also added.

Bugs - A few minor and new functions should still be implemented, such as, delete word+line backwards,
and a new command to write the paste-buffer itself directly to a file without needing to paste it to a text-buffer.
A method to highlight selected text is still needed, but the selected text works even though it is not highlighted.
Overall works properly in XTERM windows, but not Gnome terminal windows. Apparently Gnome terminal does not
respect some of the screen control sequences that Edt uses, though Xterm does.
Would be interesting to convert to using the Curses screen management package.
See Screen Management Discussion for more info.

Notes - 1. This version implements many of the commonly used features of the original Edt, perhaps 70%-80%.
It attempts to emulate faithfully, unlike the "Edt-modes" of some other large editors, which tend to be
influenced (tainted) more-or-less by the host editor. Some unusual (by today's standards) features of the original Edt,
such as the ability to edit entries in columns, are not implemented, but could be.2. By default, this editor runs as a console-application; not a graphic or X-windows/Motif application.
Therefore it can easily be used on remote hosts and through limited bandwidth connections, such as telnet or ssh through telephone
modems, or cases where X-protocol transport is restricted. This also allows the editor to open and close very quickly,
and facilitates rapid edit-compile-run-edit development cycles. (There is no need to keep the editor open between steps, so
you can use a single window.) Another advantage is that some of the text you were last editing stays on your screen after exiting
the editor, which can be helpful if you opened file to see text for subsequent operations.3. Because of (2) above, Edt does not detect window resize events when in the screen-edit mode. Therefore, whenever you
resize the window, simply go out-of and then back-into screen-edit mode (^Z, c, <enter>). Edt checks the window
size whenever you enter screen-mode editing (from line- or command- mode).4. Because of (2) above, clicking the mouse does not reposition your cursor (entry-point). This allows you to use your
mouse to quickly select (copy) text from one spot, and paste it into your entry/cursor position without needing to repeatedly re-establish your
entry position each time, as is the case with many GUI-based editors. In other words, Edt is like having two-hands, instead of one-hand
(where you need to put down whatever you were holding, to pick up something else, etc.).

Credits - The screen handling sections were originally written by Eric Elisney, Dean Henlason, and others.
The Edt features were later enhanced by A. Krumheuer and J. Chamberlain.
Major sections were ported to Unix by R. Pesch.
This version maintained and released with with permission by carlkindman@yahoo.com.
These web pages were created by EDT.