edt: Highlights
6 Some Highlights, and Comparisons to the Original Emacs EDT Emulation
**********************************************************************
1. The EDT define key command is supported (‘edt-define-key’) and is
bound to ‘C-k’ in the default EDT mode when EDT control sequence
bindings are enabled, or when the sample ‘edt-user.el’
customization file is used. The TPU/EVE learn command is supported
but not bound to a key in the default EDT mode but is bound in the
sample ‘edt-user.el’ file.
Unlike the TPU/EVE learn command, which uses one key to begin the
learn sequence, ‘C-l’, and another command to remember the
sequence, ‘C-r’, this version of the learn command (‘edt-learn’)
serves as a toggle to both begin and to remember the learn
sequence.
Many users who change the meaning of a key with the define key and
the learn commands, would like to be able to restore the original
key binding without having to quit and restart emacs. So a restore
key command is provided to do just that. When invoked, it prompts
you to press the key to which you wish the last replaced key
definition restored. It is bound to ‘GOLD C-k’ in the default EDT
mode when EDT control sequence bindings are enabled or the sample
‘edt-user.el’ customization file is used.
2. Direction support is fully supported.
3. All original Emacs bindings are fully restored when EDT emulation
is turned off. So, if a fellow worker comes over to your terminal
to help you with a software problem, for example, and is completely
confused by your EDT emulation bindings, just enter the command,
‘edt-emulation-off’, at the ‘M-x’ prompt and the original Emacs
bindings will be restored. To resume the EDT emulation, just enter
‘edt-emulation-on’.
4. User custom EDT bindings are kept separate from the default EDT
bindings. One can toggle back and forth between the custom EDT
bindings and default EDT bindings.
5. The Emacs functions in ‘edt.el’ attempt to emulate, where
practical, the exact behavior of the corresponding EDT keypad mode
commands. In a few cases, the emulation is not exact, but we hope
you will agree it is close enough. In a very few cases, we chose
to use the Emacs way of handling things. As mentioned earlier, we
do not emulate the EDT ‘SUBS’ command. Instead, we chose to use
the Emacs ‘query-replace’ function, which we find to be easier to
use.
6. Emacs uses the regexp assigned to ‘page-delimiter’ to determine
what marks a page break. This is normally ‘^\f’, which causes the
‘edt-page’ command to ignore form feeds not located at the
beginning of a line. To emulate the EDT ‘PAGE’ command exactly,
page-delimiter is set to ‘\f’ when EDT emulation is turned on, and
restored to ‘^\f’ when EDT emulation is turned off. But, since
some users prefer the Emacs definition of a page break, or may wish
to preserve a customized definition of page break, one can override
the EDT definition by placing
(setq edt-keep-current-page-delimiter t)
in your ‘.emacs’ file. Or, you can used the Emacs customize
command to change its setting.
7. The EDT definition of a section of a terminal window is hardwired
to be 16 lines of its one-and-only 24-line window (the EDT ‘SECT’
command bound to <KP8>). That’s two-thirds of the window at a
time. Since Emacs, like TPU/EVE, can handle multiple windows of
sizes of other than 24 lines, the definition of section used here
has been modified to two-thirds of the current window. (There is
also an ‘edt-scroll-window’ function which you may prefer over the
‘SECT’ emulation.)
8. Cursor movement and deletion involving word entities is identical
to EDT. This, above all else, gives the die-hard EDT user a sense
of being at home. Also, an emulation of EDT’s ‘SET ENTITY WORD’
command is provided, for those users who like to customize movement
by a word at a time to their own liking.
9. EDT’s ‘FIND’ and ‘FNDNXT’ are supported.
10. EDT’s ‘APPEND’, ‘REPLACE’, and ‘SUBS’ commands are supported.
11. ‘CHNGCASE’ is supported. It works on individual characters or
selected text, if ‘SELECT’ is active. In addition, two new
commands are provided: ‘edt-lowercase’ and ‘edt-uppercase’. They
work on individual *words* or selected text, if ‘SELECT’ is active.
12. Form feed and tab insert commands are supported.
13. A new command, ‘edt-duplicate-word’, is provided. If you
experiment with it, you might find it to be surprisingly useful and
may wonder how you ever got along without it! It is assigned to
‘C-j’ in the sample ‘edt-user.el’ customization file.
14. TPU/EVE’s Rectangular Cut and Paste functions (originally from the
EVE-Plus package) are supported. But unlike the TPU/EVE versions,
these here support both insert and overwrite modes. The seven
rectangular functions are bound to <F7>, <F8>, ‘GOLD-F8’, <F9>,
‘GOLD-F9’, <F10>, and ‘GOLD-F10’ in the default EDT mode.
15. The original EDT emulation package set up many default regular and
GOLD bindings. We tried to preserve most (but not all!) of these,
so users of the original emulation package will feel more at home.
Nevertheless, there are still many GOLD key sequences which are not
bound to any functions. These are prime candidates to use for your
own customizations.
Also, there are several commands in ‘edt.el’ not bound to any key.
So, you will find it worthwhile to look through ‘edt.el’ for
functions you may wish to add to your personal customized bindings.
16. The VT200/VT300 series terminals steal the function keys <F1> to
<F5> for their own use. These do not generate signals which are
sent to the host. So, ‘edt.el’ does not assign any default
bindings to <F1> through <F5>.
In addition, our VT220 terminals generate an interrupt when the
<F6> key is pressed (‘^C’ or ‘^Y’, can’t remember which) and not
the character sequence documented in the manual. So, binding Emacs
commands to <F6> will not work if your terminal behaves the same
way.
17. The VT220 terminal has no <ESC>, <BS>, nor <LF> keys, as does a
VT100. So the default EDT bindings adopt the standard DEC
convention of having the <F11>, <F12>, and <F13> keys, on a VT200
series (and above) terminal, assigned to the same EDT functions
that are bound to <ESC>, <BS>, and <LF> on a VT100 terminal.
18. Each user, through the use of a private ‘edt-user.el’ file, can
customize, very easily, personal EDT emulation bindings.
19. The EDT ‘SELECT’ and ‘RESET’ functions are supported. However,
unlike EDT, pressing ‘RESET’ to cancel text selection does *not*
reset the existing setting of the current direction.
We also provide a TPU/EVE like version of the single ‘SELECT/RESET’
function, called ‘edt-toggle-select’, which makes the EDT ‘SELECT’
function into a toggle on/off switch. That is, if selection is on,
pressing ‘SELECT’ again turns selection off (cancels selection).
This function is used in the sample ‘edt-user.el’ customization
file.
20. EDT scroll margins are supported, but are disabled by default.
(Scroll margins for instructions on how to enable them.)