]> git.eshelyaron.com Git - emacs.git/commitdiff
New file (etc/edt-user.doc converted to Texinfo).
authorGlenn Morris <rgm@gnu.org>
Tue, 15 Dec 2009 03:00:30 +0000 (03:00 +0000)
committerGlenn Morris <rgm@gnu.org>
Tue, 15 Dec 2009 03:00:30 +0000 (03:00 +0000)
doc/misc/edt.texi [new file with mode: 0644]

diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi
new file mode 100644 (file)
index 0000000..646ec32
--- /dev/null
@@ -0,0 +1,1018 @@
+\input texinfo
+@setfilename ../../info/edt
+@settitle EDT Emulation for Emacs
+
+@copying
+This file documents the EDT emulation package for Emacs.
+
+Copyright @copyright{} 1986, 1992, 1994, 1995, 1999, 2000, 2001, 2002,
+2003, 2004, 2005, 2006, 2007, 2008, 2009
+Free Software Foundation, Inc.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+and with the Back-Cover Texts as in (a) below.  A copy of the license
+is included in the section entitled ``GNU Free Documentation License''.
+
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual.  Buying copies from the FSF supports it in
+developing GNU and promoting software freedom.''
+@end quotation
+@end copying
+
+@dircategory Emacs
+@direntry
+* EDT: (edt).   An Emacs emulation of the EDT editor.
+@end direntry
+
+@titlepage
+@title EDT Emulation User's Manual
+@author Kevin Gallagher
+@author @email{Kevin.Gallagher@@boeing.com}
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+@end titlepage
+
+@contents
+
+@ifnottex
+@node Top
+@top Emacs EDT emulation
+This manual describes the Emacs EDT package, which provides emulation
+of DEC's EDT editor.
+
+@insertcopying
+@end ifnottex
+
+@menu
+* Overview::                Overview of the EDT package.
+* Supported terminals::     Terminals/keyboards that are supported.
+* Starting emulation::      How to get started.
+* Platform-specific notes:: Notes specific to certain platforms.
+* Differences::             How does this EDT emulation differ from real EDT?
+* Highlights::              Some highlights, and comparisons to the
+                              original Emacs EDT emulation.
+* Customizing::             Customizing emulation.
+@end menu
+
+@node Overview
+@chapter Overview of the EDT Package
+
+This manual describes version 4.0 of the EDT Emulation for Emacs 19 and
+above.  It comes with special functions which replicate nearly all of
+EDT's keypad mode behavior.  It sets up default keypad and function key
+bindings which closely match those found in EDT.  Support is provided so
+that users may reconfigure most keypad and function key bindings to
+their own liking.
+
+Version 4.0 contains several enhancements (@pxref{Changes}).
+
+@menu
+* Quick start::             How to begin using EDT.
+* Changes::                 What's new in version 4.0.
+* Goals::                   The aims of this package.
+@end menu
+
+@node Quick start
+@section How to Begin Using EDT
+
+To start the EDT Emulation, first start Emacs and then enter @kbd{M-x
+edt-emulation-on} to begin the emulation.  After initialization is
+complete, the following message will appear below the status line
+informing you that the emulation has been enabled: ``Default EDT keymap
+active''.
+
+   You can have the EDT Emulation start up automatically, each time you
+initiate a GNU Emacs session, by adding the following line to your
+@file{.emacs} file:
+
+@example
+(add-hook term-setup-hook 'edt-emulation-on)
+@end example
+
+@noindent @strong{Important:} Be sure to read the rest of this manual.
+It contains very useful information on how the EDT Emulation behaves and
+how to customize it to your liking.
+
+@noindent The EDT emulation consists of the following files:
+
+@itemize
+
+@item
+@file{edt.texi} - This manual.
+
+@item
+@file{edt-user.el} - An example customization file.
+
+@item
+@file{edt.el} - EDT emulation functions and default configuration.
+
+@item
+@file{edt-lk201.el} - Built-in support for DEC LK-201 keyboards.
+
+@item
+@file{edt-vt100.el} - Built-in support for DEC VT-100 (and above) terminals.
+
+@item
+@file{edt-pc.el} - Built-in support for PC 101 Keyboards under MS-DOS.
+
+@item
+@file{edt-mapper.el} - Create an EDT LK-201 map file for keyboards
+without built-in support.
+
+@end itemize
+
+@node Changes
+@section What's New in Version 4.0
+
+Version 4.0 contains the following enhancements:
+
+@enumerate
+
+@item
+Scroll margins at the top and bottom of the window are now supported.
+(The design was copied from @file{tpu-extras.el}.)  By default, this
+feature is enabled with the top margin set to 10% of the window and the
+bottom margin set to 15% of the window.  To change these settings, you
+can invoke the function @code{edt-set-scroll-margins} in your
+@file{.emacs} file.  For example, the following line
+
+@example
+(edt-set-scroll-margins "20%" "25%")
+@end example
+
+@noindent sets the top margin to 20% of the window and the bottom margin
+to 25% of the window.  To disable this feature, set each margin to 0%.
+You can also invoke @code{edt-set-scroll-margins} interactively while
+EDT Emulation is active to change the settings for that session.
+
+@strong{Please note:} Another way to set the scroll margins is to use
+the Emacs customization feature (not available in Emacs 19) to set the
+following two variables directly: @code{edt-top-scroll-margin} and
+@code{edt-bottom-scroll-margin}.
+
+Enter the Emacs @code{customize} command.  First select the
+@samp{Editing} group and then select the @samp{Emulations} group.
+Finally, select the @samp{Edt} group and follow the directions.
+
+@item
+The @samp{SUBS} command is now supported and bound to @kbd{GOLD-Enter}
+by default.  (This design was copied from @file{tpu-edt.el}.)  Note, in
+earlier versions of EDT Emulation, @kbd{GOLD-Enter} was assigned to the
+Emacs function @code{query-replace}.  The binding of
+@code{query-replace} has been moved to @kbd{GOLD-/}.  If you prefer to
+restore @code{query-replace} to @kbd{GOLD-Enter}, then use an EDT user
+customization file, @file{edt-user.el}, to do this
+(@pxref{Customizing}).
+
+@item
+EDT Emulation now also works in XEmacs, including the highlighting of
+selected text.
+
+@item
+If you access a workstation using an X Server, observe that the
+initialization file generated by @file{edt-mapper.el} will now contain
+the name of the X Server vendor.  This is a convenience for those who
+have access to their Unix account from more than one type of X Server.
+Since different X Servers typically require different EDT emulation
+initialization files, @file{edt-mapper.el} will now generate these
+different initialization files and save them with different names.
+Then, the correct initialization file for the particular X server in use
+is loaded correctly automatically.
+
+@item
+Also, @file{edt-mapper.el} is now capable of binding an @acronym{ASCII}
+key sequence, providing the @acronym{ASCII} key sequence prefix is
+already known by Emacs to be a prefix.  As a result of providing this
+support, some terminal/keyboard/window system configurations, which
+don't have a complete set of sensible function key bindings built into
+Emacs in @code{function-key-map}, can still be configured for use with
+EDT Emulation.  (Note: In a few rare circumstances this does not work
+properly.  In particular, it does not work if a subset of the leading
+@acronym{ASCII} characters in a key sequence are recognized by Emacs as
+having an existing binding.  For example, if the keypad 7 (@key{KP7})
+key generates the sequence @samp{<ESC>Ow} and @samp{<ESC>O} is already
+bound to a function, pressing @key{KP7} when told to do so by
+@file{edt-mapper.el} will result in @file{edt-mapper.el} incorrectly
+mapping @samp{<ESC>O} to @key{KP7} and @samp{w} to @key{KP8}.  If
+something like this happens to you, it is probably a bug in the support
+for your keyboard within Emacs @strong{or} a bug in the Unix
+termcap/terminfo support for your terminal @strong{or} a bug in the
+terminal emulation software you are using.)
+
+@item
+The @code{edt-quit} function (bound to @kbd{GOLD-q} by default) has been
+modified to warn the user when file-related buffer modifications exist.
+It now cautions the user that those modifications will be lost if the
+user quits without saving those buffers.
+
+@end enumerate
+
+@node Goals
+@section The Aims of this Package
+
+@enumerate
+
+@item
+Emulate EDT Keypad Mode commands closely so that current EDT users will
+find that it easy and comfortable to use GNU Emacs with a small learning
+curve.
+
+@item
+Make it easy for a user to customize EDT emulation key bindings without
+knowing much about Emacs Lisp.
+
+@item
+Make it easy to switch between the original EDT default bindings and the
+user's customized EDT bindings, without having to exit Emacs.
+
+@item
+Provide support for some TPU/EVE functions not supported in EDT.
+
+@item
+Provide an easy way to restore @strong{all} original Emacs key bindings,
+just as they existed before the EDT emulation was first invoked.
+
+@item
+Support GNU Emacs 19 and higher.  (GNU Emacs 18 and below is no longer
+supported.)  XEmacs 19, and above, is also supported.
+
+@item
+Supports highlighting of marked text within the EDT emulation on all
+platforms on which Emacs supports highlighting of marked text.
+
+@item
+Handle terminal configuration interactively for most terminal
+configurations, when the emulation is invoked for the first time.
+
+@item
+Support a PC AT keyboard under MS-DOS.
+
+@end enumerate
+
+@node Supported terminals
+@chapter Terminals/Keyboards that are Supported
+
+Keyboards used under a Window System are supported via the
+@code{edt-mapper} function.  The first time you invoke the emulation
+under a window system, the @code{edt-mapper} function is run
+automatically and the user is prompted to identify which keys the
+emulation is to use for the standard keypad and function keys EDT
+expects (e.g., @key{PF1}, @key{PF2}, @key{KP0}, @key{KP1}, @key{F1},
+@key{F2}, etc.).  This configuration is saved to disk read each time the
+emulation is invoked.
+
+In character oriented connections not running a window manager, built-in
+support for the following terminals/keyboards is provided:
+
+@enumerate
+
+@item
+DEC VT-100 series and higher.  This includes well behaved VT clones and
+emulators.  If you are using a VT series terminal, be sure that the
+@env{TERM} environment variable is set properly before invoking emacs.
+
+@item
+PC AT keyboard under MS-DOS.
+
+@end enumerate
+
+Be sure to read @ref{Platform-specific notes} to see if those notes
+apply to you.
+
+@node Starting emulation
+@chapter How to Get Started
+
+Start up GNU Emacs and enter @kbd{M-x edt-emulation-on} to begin the
+emulation.  After initialization is complete, the following message will
+appear below the status line informing you that the emulation has been
+enabled: ``Default EDT keymap active''.
+
+You can have the EDT Emulation start up automatically, each time you
+initiate a GNU Emacs session, by adding the following line to your
+@file{.emacs} file:
+
+@example
+(add-hook term-setup-hook 'edt-emulation-on)
+@end example
+
+A reference sheet is included (later on) listing the default EDT
+Emulation key bindings.  This sheet is also accessible on line from
+within Emacs by pressing @key{PF2}, @kbd{GOLD-H}, or @samp{HELP} (when
+in the EDT Default Mode).
+
+It is easy to customize key bindings in the EDT Emulation
+(@pxref{Customizing}).  Customizations are placed in a file called
+@file{edt-user.el}.  The Emacs @file{etc/} directory contains an
+example.  If @file{edt-user.el} is found in your GNU Emacs load path
+during EDT Emulation initialization, then the following message will
+appear below the status line indicating that the emulation has been
+enabled, enhanced by your own customizations: ``User EDT custom keymap
+active''.
+
+Once enabled, it is easy to switch back and forth between your
+customized EDT Emulation key bindings and the default EDT Emulation key
+bindings.  (Look at the binding to @kbd{GOLD-Z} in the sample
+@file{edt-user.el} file.)  It is also easy to turn off the emulation
+(via the command @code{edt-emulation-off}).  Doing so completely
+restores the original key bindings in effect just prior to invoking the
+emulation.
+
+Emacs binds keys to @acronym{ASCII} control characters and so does the
+real EDT.  Where EDT key bindings and GNU Emacs key bindings conflict,
+the default GNU Emacs key bindings are retained by the EDT emulation by
+default.  If you are a diehard EDT user you may not like this.  The
+@ref{Control keys} section explains how to change this so that the EDT
+bindings to @acronym{ASCII} control characters override the default
+Emacs bindings.
+
+@node Platform-specific notes
+@chapter Notes Specific to Certain Platforms
+
+@menu
+* Sun workstations::  Sun workstations running X.
+* MS-DOS::            PC users running MS-DOS.
+* GNU/Linux::         PC users running GNU/Linux.
+* Unix::              Using @key{NumLock} for the @key{PF1} key on Unix systems.
+@end menu
+
+@node Sun workstations
+@section Sun Workstations Running X
+
+Some earlier Sun keyboards do not have arrow keys separate from the
+keypad keys.  It is difficult to emulate the full EDT keypad and still
+retain use of the arrow keys on such keyboards.
+
+The Sun Type 5 and other more recent Sun keyboards, however, do have
+separate arrow keys.  This makes them candidates for setting up a
+reasonable EDT keypad emulation.
+
+Depending upon the configuration of the version of X installed on your
+system, you may find the default X keynames for the keypad keys don't
+permit Emacs to interpret some or all the keypad keys as something other
+than arrow keys, numeric keys, @key{Home}, @key{PageUp}, etc.  Both Sun
+and HP have been particularly guilty of making bizarre keysym
+assignments to the keypad keys.
+
+In most cases, the X Windows command, @code{xmodmap}, can be used to
+correct the problem.  Here's a sample @file{.xmodmaprc} file which
+corrects this problem on one Sun workstation configuration using an
+older SunOS release configured with a Sun Type 5 keyboard:
+
+@example
+! File:  .xmodmaprc
+!
+! Set up Sun Type 5 keypad for use with the GNU Emacs EDT Emulation
+!
+keycode  53 = KP_Divide
+keycode  54 = KP_Multiply
+keycode  57 = KP_Decimal
+keycode  75 = KP_7
+keycode  76 = KP_8
+keycode  77 = KP_9
+keycode  78 = KP_Subtract
+keycode  97 = KP_Enter
+keycode  98 = KP_4
+keycode  99 = KP_5
+keycode 100 = KP_6
+keycode 101 = KP_0
+keycode 105 = F24
+keycode 119 = KP_1
+keycode 120 = KP_2
+keycode 121 = KP_3
+keycode 132 = KP_Add
+@end example
+
+If @file{edt-mapper.el} does not recognize your keypad keys as unique
+keys, use the command @samp{xmodmap -pke} to get a listing of the actual
+key codes and the keysyms mapped to them and then generate you own
+custom @file{.xmodmaprc} similar to the one above.
+
+Next, feed @file{.xmodmaprc} to the @code{xmodmap} command and all the
+Sun Type 5 keypad keys will now be configurable for the emulation of an
+LK-201 keypad (less the @key{,} key).  In this example, the line
+
+@example
+keycode 105 = F24
+@end example
+
+@noindent changes the X Windows name of the keypad @key{NumLock} key to
+be known internally as the @key{F24} key.  Doing so permits it to be
+configured to behave as the @key{PF1} (@key{GOLD}) key.
+
+The side effect of this change is that you will no longer have a
+@key{NumLock} key.  If you are using other software under X which
+requires a @key{NumLock} key, then examine your keyboard and look for
+one you don't use and redefine it to be the @key{NumLock} key.
+Basically, you need to clear the @key{NumLock} key from being assigned
+as a modifier, assign it to the key of your choice, and then add it back
+as a modifier.  (@ref{Unix} for further help on how to do this.)
+
+@node MS-DOS
+@section PC Users Running MS-DOS
+
+By default, F1 is configured to emulate the @key{PF1} (@key{GOLD}) key.
+But @key{NumLock} can be used instead if you load a freeware TSR
+distributed with MS-Kermit, call @samp{gold.com}.  This was once
+distributed in a file called @file{gold22.zip} and came with the source
+code as well as a loadable binary image.  (See @file{edt-pc.el} in the
+Emacs @file{lisp/emulation} directory for more information.)
+
+@node GNU/Linux
+@section PC Users Running GNU/Linux
+
+The default X server configuration varies from distribution to
+distribution and release to release of GNU/Linux.  If your system fails
+to recognize the keypad keys as distinct keys, change the NumLock state,
+turning it on or off, as the case may be, then try again.  If this
+doesn't solve your problem, you may have to modify the X keysym mappings
+with @code{xmodmap}.
+
+On one distribution on an Intel PC, the following @file{.xmodmaprc} set
+things up nicely.
+
+@example
+! File:  .xmodmaprc
+!
+! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation
+!
+clear  mod2
+keycode  77 = F12
+keycode  96 = Num_Lock Pointer_EnableKeys
+add mod2 = Num_Lock
+@end example
+
+In this example, after feeding the file to the @code{xmodmap} command,
+the PC @key{NumLock} keypad key will be configurable for the emulation
+of the @key{PF1} key.  The PC keypad can now emulate an LK-201 keypad
+(less the comma key), the standard keyboard supplied with DEC terminals
+VT-200 and above.  This @file{.xmodmaprc} file switches the role of the
+@key{F12} and @key{NumLock} keys.  It has been tested on RedHat
+GNU/Linux 5.2.  Other versions of GNU/Linux may require different
+keycodes.  (@ref{Unix} for further help on how to do this.)
+
+@strong{Please note:} Remember, it may be necessary to have @key{NumLock} in
+one position (ON) or the other (OFF) for the PC keypad to emulate the
+LK-201 keypad properly.
+
+@node Unix
+@section General Notes on Using @key{NumLock} for the @key{PF1} Key on Unix Systems
+
+Making the physical @key{NumLock} key available for use in the EDT Emulation
+requires some modification to the default X Window settings.  Since the
+keycode assignments vary from system to system, some investigation is
+needed to see how to do this on a particular system.
+
+You will need to look at the output generated by @code{xmodmap} invoked
+with the "-pm" switch.  For example, on RedHat GNU/Linux 5.2 on a PC, we
+get the following output when running @samp{xmodmap -pm}:
+
+@example
+xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):
+
+shift       Shift_L (0x32),  Shift_R (0x3e)
+lock        Caps_Lock (0x42)
+control     Control_L (0x25),  Control_R (0x6d)
+mod1        Alt_L (0x40),  Alt_R (0x71)
+mod2        Num_Lock (0x4d)
+mod3
+mod4
+mod5        Scroll_Lock (0x4e)
+@end example
+
+@noindent Note that Num_Lock is assigned to the modifier @samp{mod2}.  This is
+what hides Num_Lock from being seen by Emacs.
+
+Now, @samp{xmodmap -pke} yields:
+
+@example
+   .
+   .
+   .
+keycode  77 = Num_Lock Pointer_EnableKeys
+   .
+   .
+   .
+keycode  96 = F12
+   .
+   .
+   .
+@end example
+
+@noindent So, in RedHat GNU/Linux 5.2 on a PC, Num_Lock generates keycode 77.
+The following steps are taken:
+
+@enumerate
+@item
+clear the assignment of Num_Lock to mod2;
+@item
+swap the keycodes assigned to F12 and Num_Lock;
+@item
+assign Num_Lock back to mod2.
+@end enumerate
+
+@noindent The @file{.xmodmaprc} file looks like this:
+
+@example
+! File:  .xmodmaprc
+!
+! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation
+!
+clear  mod2
+keycode  77 = F12
+keycode  96 = Num_Lock Pointer_EnableKeys
+add mod2 = Num_Lock
+@end example
+
+So, after executing @samp{xmodmap .xmodmaprc}, a press of the physical
+@key{F12} key looks like a Num_Lock keypress to X.  Also, a press of the
+physical @key{NumLock} key looks like a press of the @key{F12} key to X.
+
+Now, @file{edt-mapper.el} will see @samp{f12} when the physical
+@key{NumLock} key is pressed, allowing the @key{NumLock} key to be used
+as the EDT @key{PF1} (@key{GOLD}) key.
+
+@node Differences
+@chapter How Does this EDT Emulation Differ from Real EDT?
+
+In general, you will find that this emulation of EDT replicates most,
+but not all, of EDT's most used Keypad Mode editing functions and
+behavior.  It is not perfect, but most EDT users who have tried the
+emulation agree that it is quite good enough to make it easy for
+die-hard EDT users to move over to using GNU Emacs.
+
+Here's a list of the most important differences between EDT and this GNU
+Emacs EDT Emulation.  The list is short but you must be aware of these
+differences if you are to use the EDT Emulation effectively.
+
+@enumerate
+
+@item
+Entering repeat counts works a little differently than in EDT.
+
+EDT allows users to enter a repeat count before entering a command that
+accepts repeat counts.  For example, when using the real EDT, pressing
+these three keys in sequence, @kbd{GOLD 5 KP1}, will move the cursor in
+the current direction 5 words.  This does @strong{not} work in Emacs!
+
+Emacs provides two ways to enter repeat counts and neither involves
+using the @key{GOLD} key.  First, repeat counts can be entered in Emacs
+by using the @key{ESC} key.  For example, pressing these keys in
+sequence, @kbd{ESC 1 0 KP1}, will move the cursor in the current
+direction 10 words.  Second, Emacs provides another command called
+@code{universal-argument} that can be used to do the same thing.
+Normally, in Emacs has this bound to @kbd{C-u}.
+
+@item
+EDT's line mode commands and nokeypad mode commands are @strong{not}
+supported (with one important exception; see item 8 in
+@ref{Highlights}).  Although, at first, this may seem like a big
+omission, the set of built-in Emacs commands provides a much richer set
+of capabilities which more than make up for this omission.
+
+To enter Emacs commands not bound to keys, you can press @kbd{GOLD KP7}
+or the @key{DO} key.  Emacs will display its own command prompt "M-x".
+This stands for the keypress @kbd{Meta-x}, where @key{Meta} is a special
+shift key.  The @key{Alt} key is often mapped to behave as a @key{Meta}
+key.  So, you can also invoke this prompt by pressing @kbd{Meta-x}.
+Typing the sequence @kbd{ESC x} will also invoke the prompt.
+
+@item
+Selected text is highlighted @strong{only} on systems where Emacs
+supports the highlighting of text.
+
+@item
+Just like in TPU/EVE, the @key{ENTER} key is @strong{not} used to
+terminate input when the editor prompts you for input.  The @key{RETURN}
+key is used, instead.  (@key{KP4} and @key{KP5} (the direction keys) do
+terminate input for the @samp{FIND} command, just like in EDT, however.)
+
+@end enumerate
+
+@node Highlights
+@chapter Some Highlights, and Comparisons to the Original Emacs EDT Emulation
+
+@enumerate
+
+@item
+The EDT define key command is supported (@code{edt-define-key}) and is
+bound to @kbd{C-k} in the default EDT mode when EDT control sequence
+bindings are enabled, or when the sample @file{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
+@file{edt-user.el} file.
+
+Unlike the TPU/EVE learn command, which uses one key to begin the learn
+sequence, @kbd{C-l}, and another command to remember the sequence,
+@kbd{C-r}, this version of the learn command (@code{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 @kbd{GOLD C-k} in the default EDT mode when
+EDT control sequence bindings are enabled or the sample
+@file{edt-user.el} customization file is used.
+
+@item
+Direction support is fully supported.
+
+@item
+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,
+@code{edt-emulation-off}, at the @samp{M-x} prompt and the original
+Emacs bindings will be restored.  To resume the EDT emulation, just
+enter @code{edt-emulation-on}.
+
+@item
+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.
+
+@item
+The Emacs functions in @file{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 @samp{SUBS} command.  Instead, we chose to use the Emacs
+@code{query-replace} function, which we find to be easier to use.
+
+@item
+Emacs uses the regexp assigned to @code{page-delimiter} to determine
+what marks a page break.  This is normally @samp{^\f}, which causes the
+@code{edt-page} command to ignore form feeds not located at the
+beginning of a line.  To emulate the EDT @samp{PAGE} command exactly,
+page-delimiter is set to @samp{\f} when EDT emulation is turned on, and
+restored to @samp{^\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
+
+@example
+(setq edt-keep-current-page-delimiter t)
+@end example
+
+@noindent in your @file{.emacs} file.  Or, you can used the Emacs customize
+command to change its setting.
+
+@item
+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 @samp{SECT} command
+bound to @key{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
+@code{edt-scroll-window} function which you may prefer over the
+@samp{SECT} emulation.)
+
+@item
+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 @samp{SET ENTITY WORD} command is
+provided, for those users who like to customize movement by a word at a
+time to their own liking.
+
+@item
+EDT's @samp{FIND} and @samp{FNDNXT} are supported.
+
+@item
+EDT's @samp{APPEND}, @samp{REPLACE}, and @samp{SUBS} commands are supported.
+
+@item
+@samp{CHNGCASE} is supported.  It works on individual characters or
+selected text, if @samp{SELECT} is active.  In addition, two new
+commands are provided: @code{edt-lowercase} and @code{edt-uppercase}.
+They work on individual @strong{words} or selected text, if
+@samp{SELECT} is active.
+
+@item
+Form feed and tab insert commands are supported.
+
+@item
+A new command, @code{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 @kbd{C-j}
+in the sample @file{edt-user.el} customization file.
+
+@item
+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 @key{F7}, @key{F8}, @kbd{GOLD-F8}, @key{F9},
+@kbd{GOLD-F9}, @key{F10}, and @kbd{GOLD-F10} in the default EDT mode.
+
+@item
+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 @file{edt.el} not bound to any key.
+So, you will find it worthwhile to look through @file{edt.el} for
+functions you may wish to add to your personal customized bindings.
+
+@item
+The VT200/VT300 series terminals steal the function keys @key{F1} to
+@key{F5} for their own use.  These do not generate signals which are
+sent to the host.  So, @file{edt.el} does not assign any default
+bindings to @key{F1} through @key{F5}.
+
+In addition, our VT220 terminals generate an interrupt when the @key{F6}
+key is pressed (@samp{^C} or @samp{^Y}, can't remember which) and not
+the character sequence documented in the manual.  So, binding Emacs
+commands to @key{F6} will not work if your terminal behaves the same
+way.
+
+@item
+The VT220 terminal has no @key{ESC}, @key{BS}, nor @key{LF} keys, as
+does a VT100.  So the default EDT bindings adopt the standard DEC
+convention of having the @key{F11}, @key{F12}, and @key{F13} keys, on a
+VT200 series (and above) terminal, assigned to the same EDT functions
+that are bound to @key{ESC}, @key{BS}, and @key{LF} on a VT100 terminal.
+
+@item
+Each user, through the use of a private @file{edt-user.el} file, can
+customize, very easily, personal EDT emulation bindings.
+
+@item
+The EDT @samp{SELECT} and @samp{RESET} functions are supported.
+However, unlike EDT, pressing @samp{RESET} to cancel text selection does
+@strong{not} reset the existing setting of the current direction.
+
+We also provide a TPU/EVE like version of the single @samp{SELECT/RESET}
+function, called @code{edt-toggle-select}, which makes the EDT
+@samp{SELECT} function into a toggle on/off switch.  That is, if
+selection is on, pressing @samp{SELECT} again turns selection off
+(cancels selection).  This function is used in the sample
+@file{edt-user.el} customization file.
+
+@item
+EDT scroll margins are supported, but are disabled by default.
+(@ref{Scroll margins} for instructions on how to enable them.)
+
+@end enumerate
+
+@node Customizing
+@chapter Customizing Emulation
+
+Most EDT users, at one time or another, make some custom key bindings,
+or use someone else's custom key bindings, which they come to depend
+upon just as if they were built-in bindings.  This EDT Emulation for GNU
+Emacs is designed to make it easy to customize bindings.
+
+If you wish to customize the EDT Emulation to use some of your own key
+bindings, you need to make a private version of @file{edt-user.el} in
+your own private lisp directory.  The Emacs @file{etc/} directory
+contains an example for you to use as a template and for ideas.
+@c This seems to be untrue.
+@ignore
+There are two sample files @file{edt-user.el1} and @file{edt-user.el2}
+for you to use as templates and for ideas.  Look at @file{edt-user.el1}
+first.  Unless you will be using two or more very different types of
+terminals on the same system, you need not look at @file{edt-user.el2}.
+@end ignore
+
+First, you need to have your own private lisp directory, say
+@file{~/lisp}, and you should add it to the GNU Emacs load path.
+
+@strong{Please note:} A few sites have different load-path requirements,
+so the above directions may need some modification if your site has such
+special needs.
+
+@menu
+* edt-user.el::          Creating your own @file{edt-user.el} file.
+* Words::                Specifying word entities.
+* Control keys::         Enabling EDT control key sequence bindings.
+* Scroll margins::       Setting scroll margins.
+@c * Default keypad::       Default EDT keypad.
+@end menu
+
+@node edt-user.el
+@section Creating your own @file{edt-user.el} File
+
+A sample @file{edt-user.el} file is provided in the Emacs @file{etc/}
+directory.  You should use it as a guide to learn how you can customize
+EDT emulation bindings to your own liking.  Names used to identify the
+set of LK-201 keypad and function keys are:
+
+@example
+Keypad Keys:
+                PF1 PF2 PF3 PF4
+                KP7 KP8 KP9 KP-
+                KP4 KP5 KP6 KP,
+                KP1 KP2 KP3
+                KP0     KPP KPE
+@end example
+
+@example
+Arrow Keys:
+                LEFT RIGHT DOWN UP
+@end example
+
+@example
+Function Keys:
+                F1 F2 F3 F4 F5  F6 F7 F8 F9 F10  F11 F12 F13 F14
+                HELP DO  F17 F18 F19 F20
+
+                FIND   INSERT   REMOVE
+                SELECT PREVIOUS NEXT
+@end example
+
+Note: Many VT-200 terminals, and above, steal function keys @key{F1}
+through @key{F5} for terminal setup control and don't send anything to
+the host if pressed.  So customizing bindings to these keys may not work
+for you.
+
+There are three basic functions that do the EDT emulation custom
+bindings: @code{edt-bind-key}, @code{edt-bind-gold-key}, and
+@code{edt-bind-function-key}.
+
+The first two are for binding functions to keys which are standard
+across most keyboards.  This makes them keyboard independent, making it
+possible to define these key bindings for all terminals in the file
+@file{edt.el}.
+
+The first, @code{edt-bind-key}, is used typically to bind emacs commands
+to control keys, although some people use it to bind commands to other
+keys, as well.  (For example, some people use it to bind the VT200
+seldom used back-tick key (@samp{`}) to the function @samp{ESC-prefix}
+so it will behave like an @key{ESC} key.)  The second function,
+@code{edt-bind-gold-key}, is used to bind emacs commands to gold key
+sequences involving alpha-numeric keys, special character keys, and
+control keys.
+
+The third function, @code{edt-bind-function-key}, is terminal dependent
+and is defined in a terminal specific file (see @file{edt-vt100.el} for
+example).  It is used to bind emacs commands to LK-201 function keys, to
+keypad keys, and to gold sequences of those keys.
+
+@node Words
+@section Specifying Word Entities
+
+The variable @code{edt-word-entities} is used to emulate EDT's @samp{SET
+ENTITY WORD} command.  It contains a list of characters to be treated as
+words in themselves.  If the user does not define
+@code{edt-word-entities} in his/her @file{.emacs} file, then it is set
+up with the EDT default containing only @key{TAB}.
+
+The characters are stored in the list by their numerical values, not as
+strings.  Emacs supports several ways to specify the numerical value of
+a character.  One method is to use the question mark: @samp{?A} means
+the numerical value for @samp{A}, @samp{?/} means the numerical value
+for @samp{/}, and so on.  Several unprintable characters have special
+representations:
+
+@example
+?\b  specifies  BS, C-h
+?\t  specifies  TAB, C-i
+?\n  specifies  LFD, C-j
+?\v  specifies  VTAB, C-k
+?\f  specifies  FF, C-l
+?\r  specifies  CR, C-m
+?\e  specifies  ESC, C-[
+?\\  specifies  \
+@end example
+
+Here are some examples:
+
+@example
+(setq edt-word-entities '(?\t ?- ?/)) ; specifies TAB, - , and /
+(setq edt-word-entities '(?\t)        ; specifies TAB, the default
+@end example
+
+@noindent You can also specify characters by their decimal ascii values:
+
+@example
+(setq edt-word-entities '(9 45 47))   ; specifies TAB, - , and /
+@end example
+
+@node Control keys
+@section Enabling EDT Control Key Sequence Bindings
+
+Where EDT key bindings and GNU Emacs key bindings conflict, the default
+GNU Emacs key bindings are retained by default.  Some diehard EDT users
+may not like this.  So, if the variable
+@code{edt-use-EDT-control-key-bindings} is set to true in a user's
+@file{.emacs} file, then the default EDT Emulation mode will enable most
+of the original EDT control key sequence bindings.  If you wish to do
+this, add the following line to your @file{.emacs} file:
+
+@example
+(setq edt-use-EDT-control-key-bindings t)
+@end example
+
+@node Scroll margins
+@section Setting Scroll Margins
+
+Scroll margins at the top and bottom of the window are now supported.
+(The design was copied from @file{tpu-extras.el}.)  By default, this
+feature is enabled with the top margin set to 10% of the window and the
+bottom margin set to 15% of the window.  To change these settings, you
+can invoke the function @code{edt-set-scroll-margins} in your
+@file{.emacs} file.  For example, the following line
+
+@example
+(edt-set-scroll-margins "20%" "25%")
+@end example
+
+@noindent sets the top margin to 20% of the window and the bottom margin
+to 25% of the window.  To disable this feature, set each margin to 0%.
+You can also invoke @code{edt-set-scroll-margins} interactively while
+EDT Emulation is active to change the settings for that session.
+
+@strong{Please note:} Another way to set the scroll margins is to use
+the Emacs customization feature (not available in Emacs 19) to set the
+following two variables directly: @code{edt-top-scroll-margin} and
+@code{edt-bottom-scroll-margin}.
+
+Enter the Emacs @code{customize} command.  First select the
+@samp{Editing} group and then select the @samp{Emulations} group.
+Finally, select the @samp{Edt} group and follow the directions.
+
+@c This is just `edt-keypad-help'.
+@ignore
+@node Default keypad
+@section Default EDT Keypad
+
+@verbatim
+   F7: Copy Rectangle           +----------+----------+----------+----------+
+   F8: Cut Rect Overstrike      |Prev Line |Next Line |Bkwd Char |Frwd Char |
+ G-F8: Paste Rect Overstrike    |   (UP)   |  (DOWN)  |  (LEFT)  | (RIGHT)  |
+   F9: Cut Rect Insert          |Window Top|Window Bot|Bkwd Sent |Frwd Sent |
+ G-F9: Paste Rect Insert        +----------+----------+----------+----------+
+  F10: Cut Rectangle
+G-F10: Paste Rectangle
+  F11: ESC
+  F12: Beginning of Line        +----------+----------+----------+----------+
+G-F12: Delete Other Windows     |   GOLD   |   HELP   |  FNDNXT  |  DEL L   |
+  F13: Delete to Begin of Word  |   (PF1)  |   (PF2)  |   (PF3)  |  (PF4)   |
+ HELP: Keypad Help              |Mark Wisel|Desc Funct|   FIND   |  UND L   |
+G-HELP: Emacs Help              +----------+----------+----------+----------+
+   DO: Execute extended command |   PAGE   |   SECT   |  APPEND  |  DEL W   |
+  C-g: Keyboard Quit            |    (7)   |    (8)   |    (9)   |   (-)    |
+G-C-g: Keyboard Quit            |Ex Ext Cmd|Fill Regio| REPLACE  |  UND W   |
+  C-h: Beginning of Line        +----------+----------+----------+----------+
+G-C-h: Emacs Help               |  ADVANCE |  BACKUP  |   CUT    |  DEL C   |
+  C-i: Tab Insert               |    (4)   |    (5)   |    (6)   |   (,)    |
+  C-j: Delete to Begin of Word  |   BOTTOM |    TOP   |   Yank   |  UND C   |
+  C-k: Define Key               +----------+----------+----------+----------+
+G-C-k: Restore Key              |   WORD   |    EOL   |   CHAR   |   Next   |
+  C-l: Form Feed Insert         |    (1)   |    (2)   |    (3)   |  Window  |
+  C-n: Set Screen Width 80      | CHNGCASE |  DEL EOL |Quoted Ins|          !
+  C-r: Isearch Backward         +---------------------+----------+  (ENTER) |
+  C-s: Isearch Forward          |         LINE        |  SELECT  |          !
+  C-t: Display the Time         |         (0)         |    (.)   |   Query  |
+  C-u: Delete to Begin of Line  |      Open Line      |  RESET   |  Replace |
+  C-v: Redraw Display           +---------------------+----------+----------+
+  C-w: Set Screen Width 132
+  C-z: Suspend Emacs                    +----------+----------+----------+
+G-C-\: Split Window                     |  FNDNXT  |   Yank   |   CUT    |
+                                        |  (FIND)  | (INSERT) | (REMOVE) |
+  G-b: Buffer Menu                      |   FIND   |          |   COPY   |
+  G-c: Compile                          +----------+----------+----------+
+  G-d: Delete Window                    |SELECT/RES|SECT BACKW|SECT FORWA|
+  G-e: Exit                             | (SELECT) |(PREVIOUS)|  (NEXT)  |
+  G-f: Find File                        |          |          |          |
+  G-g: Find File Other Window           +----------+----------+----------+
+  G-h: Keypad Help
+  G-i: Insert File
+  G-k: Toggle Capitalization Word
+  G-l: Lowercase Word or Region
+  G-m: Save Some Buffers
+  G-n: Next Error
+  G-o: Switch to Next Window
+  G-q: Quit
+  G-r: Revert File
+  G-s: Save Buffer
+  G-u: Uppercase Word or Region
+  G-v: Find File Other Window
+  G-w: Write file
+  G-y: EDT Emulation OFF
+  G-z: Switch to User EDT Key Bindings
+  G-1: Delete Other Windows
+  G-2: Split Window
+  G-%: Go to Percentage
+  G- : Undo  (GOLD Spacebar)
+  G-=: Go to Line
+  G-`: What line
+  G-/: Query-Replace
+@end verbatim
+@end ignore
+
+@bye
+
+@ignore
+   arch-tag: 1b7ebe01-754b-4834-a12b-f152ef7db9e0
+@end ignore