Next: Customizing, Previous: Differences, Up: Top

## 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.)