comparison etc/edt-user.doc @ 35122:19818763d299

Updated to reflect EDT Emulation version 4.0 enhancements.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 08 Jan 2001 13:15:59 +0000
parents e96ffe544684
children 11d4f1454748
comparison
equal deleted inserted replaced
35121:903e5617df18 35122:19818763d299
1 File: edt-user.doc --- EDT Emulation User Instructions 1 File: edt-user.doc --- EDT Emulation User Instructions
2 2
3 For GNU Emacs 19 3 For GNU Emacs 19
4 4
5 Copyright (C) 1986, 1992, 1994, 1995, 1999 Free Software Foundation, Inc. 5 Copyright (C) 1986, 1992, 1994, 1995, 1999, 2000 Free Software Foundation, Inc.
6 6
7 Author: Kevin Gallagher <kevingal@onramp.net> 7 Author: Kevin Gallagher <kevingal@onramp.net>
8 Maintainer: Kevin Gallagher <kevingal@onramp.net> 8 Maintainer: Kevin Gallagher <kevingal@onramp.net>
9 Keywords: emulations 9 Keywords: emulations
10 10
11 This file is part of GNU Emacs. 11 This file is part of GNU Emacs.
12 12
13 GNU Emacs is free software; you can redistribute it and/or modify 13 GNU Emacs is free software; you can redistribute it and/or modify it under the
14 it under the terms of the GNU General Public License as published by 14 terms of the GNU General Public License as published by the Free Software
15 the Free Software Foundation; either version 2, or (at your option) 15 Foundation; either version 2, or (at your option) any later version.
16 any later version. 16
17 17 GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY
18 GNU Emacs is distributed in the hope that it will be useful, 18 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
19 but WITHOUT ANY WARRANTY; without even the implied warranty of 19 PARTICULAR PURPOSE. See the GNU General Public License for more details.
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20
21 GNU General Public License for more details. 21 You should have received a copy of the GNU General Public License along with
22 22 GNU Emacs; see the file COPYING. If not, write to the Free Software
23 You should have received a copy of the GNU General Public License 23 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 along with GNU Emacs; see the file COPYING. If not, write to the
25 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA.
27 24
28 ============================================================================ 25 ============================================================================
29 26
30 I. OVERVIEW: 27 I. OVERVIEW:
31 28
32 This version of the EDT emulation package for GNU Emacs is a substantially 29 This is Version 4.0 of the EDT Emulation for Emacs 19 and above.
33 enhanced version of the original. A large part of the original can still be 30 It comes with special functions which replicate nearly all of EDT's
34 found here, of course, but much of it has been modified and quite a bit is 31 keypad mode behavior. It sets up default keypad and function key
35 new. Many of the ideas found here are borrowed from others. In particular, 32 bindings which closely match those found in EDT. Support is
36 some of the code found here was drawn from an earlier re-write of the EDT 33 provided so that users may reconfigure most keypad and function key
37 package done at DSC in 1989 by Matthew Frohman. 34 bindings to their own liking.
35
36 NOTE: Version 4.0 contains several enhancements. See the
37 Enhancements section below for the details.
38
39
40 Quick Start:
41
42 To start the EDT Emulation, first start Emacs and then enter
43
44 M-x edt-emulation-on
38 45
39 Send bug fixes, suggestions for enhancements, and corrections to this 46 to begin the emulation. After initialization is complete, the
40 documentation to Kevin Gallagher (kevingal@onramp.net). 47 following message will appear below the status line informing you
48 that the emulation has been enabled: "Default EDT keymap active".
49
50 You can have the EDT Emulation start up automatically, each time
51 you initiate a GNU Emacs session, by adding the following line to
52 your .emacs file:
53
54 (add-hook term-setup-hook 'edt-emulation-on)
55
56 IMPORTANT: Be sure to read the rest of this file. It contains very
57 useful information on how the EDT Emulation behaves and how
58 to customize it to your liking.
41 59
42 The EDT emulation consists of the following files: 60 The EDT emulation consists of the following files:
43 61
44 edt-user.doc - User instructions (which you are reading now) 62 edt-user.doc - User Instructions and Sample Customization File
45 edt.el - EDT Emulation Functions and Default Configuration 63 edt.el - EDT Emulation Functions and Default Configuration
46 edt-lk201.el - Support for DEC LK-201 Keyboards 64 edt-lk201.el - Built-in support for DEC LK-201 Keyboards
47 edt-vt100.el - Support for DEC VT-100 (and above) terminals 65 edt-vt100.el - Built-in support for DEC VT-100 (and above) terminals
48 edt-mapper.el - Support for Keyboards used under X Windows 66 edt-pc.el - Built-in support for PC 101 Keyboards under MS-DOS
49 edt-pc.el - Support for the PC AT Keyboard under MS-DOS 67 edt-mapper.el - Create an EDT LK-201 Map File for Keyboards Without
50 68 Built-in Support
51 Several goals were kept in mind when making this version: 69
52 70 Enhancements:
53 1. Emulate EDT Keypad Mode commands closely so that current 71
54 EDT users will find that it easy and comfortable to use 72 Version 4.0 contains the following enhancements:
55 GNU Emacs with a small learning curve; 73
74 1. Scroll margins at the top and bottom of the window are now
75 supported. (The design was copied from tpu-extras.el.) By
76 default, this feature is enabled with the top margin set to
77 10% of the window and the bottom margin set to 15% of the
78 window. To change these settings, you can invoke the function
79 edt-set-scroll-margins in your .emacs file. For example, the
80 following line
81
82 (edt-set-scroll-margins "20%" "25%")
83
84 sets the top margin to 20% of the window and the bottom margin
85 to 25% of the window. To disable this feature, set each
86 margin to 0%. You can also invoke edt-set-scroll-margins
87 interactively while EDT Emulation is active to change the
88 settings for that session.
89
90 NOTE: Another way to set the scroll margins is to use the
91 Emacs customization feature (not available in Emacs 19) to set
92 the following two variables directly:
93
94 edt-top-scroll-margin and edt-bottom-scroll-margin
95
96 Enter the Emacs `customize' command. First select the Editing
97 group and then select the Emulations group. Finally, select
98 the Edt group and follow the directions.
99
100 2. The SUBS command is now supported and bound to GOLD-Enter by
101 default. (This design was copied from tpu-edt.el.) Note, in
102 earlier versions of EDT Emulation, GOLD-Enter was assigned to
103 the Emacs function `query-replace'. The binding of
104 `query-replace' has been moved to GOLD-/. If you prefer to
105 restore `query-replace' to GOLD-Enter, then use an EDT user
106 customization file, edt-user.el, to do this. See edt-user.doc
107 for details.
108
109 3. EDT Emulation now also works in XEmacs, including the
110 highlighting of selected text.
111
112 4. If you access a workstation using an X Server, observe that
113 the initialization file generated by edt-mapper.el will now
114 contain the name of the X Server vendor. This is a
115 convenience for those who have access to their Unix account
116 from more than one type of X Server. Since different X
117 Servers typically require different EDT emulation
118 initialization files, edt-mapper.el will now generate these
119 different initialization files and save them with different
120 names. Then, the correct initialization file for the
121 particular X server in use is loaded correctly automatically.
122
123 5. Also, edt-mapper.el is now capable of binding an ASCII key
124 sequence, providing the ASCII key sequence prefix is already
125 known by Emacs to be a prefix. As a result of providing this
126 support, some terminal/keyboard/window system configurations,
127 which don't have a complete set of sensible function key
128 bindings built into Emacs in `function-key-map', can still be
129 configured for use with EDT Emulation. (Note: In a few rare
130 circumstances this does not work properly. In particular, it
131 does not work if a subset of the leading ASCII characters in a
132 key sequence are recognized by Emacs as having an existing
133 binding. For example, if the keypad 7 (KP-7) key generates
134 the sequence \"<ESC>Ow\" and \"<ESC>O\" is already bound to a
135 function, pressing KP-7 when told to do so by edt-mapper.el
136 will result in edt-mapper.el incorrectly mapping \"<ESC>O\" to
137 KP-7 and \"w\" to KP-8. If something like this happens to
138 you, it is probably a bug in the support for your keyboard
139 within Emacs OR a bug in the Unix termcap/terminfo support for
140 your terminal OR a bug in the terminal emulation software you
141 are using.)
142
143 6. The edt-quit function (bound to GOLD-q by default) has been
144 modified to warn the user when file-related buffer
145 modifications exist. It now cautions the user that those
146 modifications will be lost if the user quits without saving
147 those buffers.
148
149
150 Goals:
151
152 1. Emulate EDT Keypad Mode commands closely so that current EDT users
153 will find that it easy and comfortable to use GNU Emacs with a
154 small learning curve;
56 155
57 2. Make it easy for a user to customize EDT emulation key 156 2. Make it easy for a user to customize EDT emulation key bindings
58 bindings without knowing much about Emacs Lisp; 157 without knowing much about Emacs Lisp;
59 158
60 3. Make it easy to switch between the original EDT default bindings 159 3. Make it easy to switch between the original EDT default bindings
61 and the user's customized bindings, without having to exit Emacs. 160 and the user's customized EDT bindings, without having to exit
62 161 Emacs.
63 4. Provide support for some TPU/EVE functions not supported in 162
64 EDT. 163 4. Provide support for some TPU/EVE functions not supported in EDT.
65 164
66 5. Provide an easy way to restore ALL original Emacs key bindings, 165 5. Provide an easy way to restore ALL original Emacs key bindings,
67 just as they existed before the EDT emulation was first invoked. 166 just as they existed before the EDT emulation was first invoked.
68 167
69 6. Support GNU Emacs 19. (Support for GNU Emacs 18 has been dropped. 168 6. Support GNU Emacs 19 and higher. (GNU Emacs 18 and below is no
70 Also, although there is some code designed to support Xemacs 19 169 longer supported.) XEmacs 19, and above, is also supported.
71 (formerly Lucid Emacs), this is not fully implemented at this 170
72 time. 171 7. Supports highlighting of marked text within the EDT emulation on
73 172 all platforms on which Emacs supports highlighting of marked text.
74 7. When running under X, support highlighting of marked text. 173
75 174 8. Handle terminal configuration interactively for most terminal
76 8. Handle terminal configuration under X interactively when the 175 configurations, when the emulation is invoked for the first time.
77 emulation is invoked for the first time.
78 176
79 9. Support a PC AT keyboard under MS-DOS. 177 9. Support a PC AT keyboard under MS-DOS.
178
80 179
81 II. TERMINALS/KEYBOARDS SUPPORTED: 180 II. TERMINALS/KEYBOARDS SUPPORTED:
82 181
83 Keyboards used under X Windows are supported via the edt-mapper function. The 182 Keyboards used under a Window System are supported via the edt-mapper function.
84 first time you invoke the emulation under X, the edt-mapper function is run 183 The first time you invoke the emulation under a window system, the edt-mapper
85 automatically and the user is prompted to identify which keys the emulation is 184 function is run automatically and the user is prompted to identify which keys
86 to use for the standard keypad and function keys EDT expects (e.g., PF1, PF2, 185 the emulation is to use for the standard keypad and function keys EDT expects
87 etc.). This configuration is saved to disk read each time the emulation is 186 (e.g., PF1, PF2, KP0, KP1, F1, F2, etc.). This configuration is saved to disk
88 invoked. 187 read each time the emulation is invoked.
89 188
90 In character oriented connections not running a window manager, the following 189 In character oriented connections not running a window manager, built-in
91 terminals/keyboards are supported. (1) DEC VT-100 series and higher. This 190 support for the following terminals/keyboards is provided:
92 includes well behaved VT clones and emulators. If you are using a VT series 191
93 terminal, be sure that the term environment variable is set properly before 192 (1) DEC VT-100 series and higher. This includes well behaved VT clones and
94 invoking emacs. (2) PC AT keyboard under MS-DOS. 193 emulators. If you are using a VT series terminal, be sure that the term
194 environment variable is set properly before invoking emacs.
195
196 (2) PC AT keyboard under MS-DOS.
95 197
96 Be sure to read the SPECIAL NOTES FOR SOME PLATFORMS sections to see if those 198 Be sure to read the SPECIAL NOTES FOR SOME PLATFORMS sections to see if those
97 notes apply to you. 199 notes apply to you.
98 200
99 201
106 Default EDT keymap active 208 Default EDT keymap active
107 209
108 You can have the EDT Emulation start up automatically, each time you initiate 210 You can have the EDT Emulation start up automatically, each time you initiate
109 a GNU Emacs session, by adding the following line to your .emacs file: 211 a GNU Emacs session, by adding the following line to your .emacs file:
110 212
111 (setq term-setup-hook 'edt-emulation-on) 213 (add-hook term-setup-hook 'edt-emulation-on)
112 214
113 A reference sheet is included (later on) listing the default EDT Emulation key 215 A reference sheet is included (later on) listing the default EDT Emulation key
114 bindings. This sheet is also accessible on line from within Emacs by pressing 216 bindings. This sheet is also accessible on line from within Emacs by pressing
115 PF2, GOLD H, or HELP (when in the EDT Default Mode). 217 PF2, GOLD H, or HELP (when in the EDT Default Mode).
116 218
123 customizations: 225 customizations:
124 226
125 User EDT custom keymap active 227 User EDT custom keymap active
126 228
127 Once enabled, it is easy to switch back and forth between your customized EDT 229 Once enabled, it is easy to switch back and forth between your customized EDT
128 Emulation key bindings and the default EDT Emulation key bindings. It is also 230 Emulation key bindings and the default EDT Emulation key bindings. (See the
129 easy to turn off the emulation. Doing so completely restores the original key 231 sample edt-user.el file below. Look at the binding to GOLD Z.) It is also
130 bindings in effect just prior to invoking the emulation. 232 easy to turn off the emulation (via the command edt-emulation-off). Doing so
131 233 completely restores the original key bindings in effect just prior to invoking
132 Where EDT key bindings and GNU Emacs key bindings conflict, the default GNU 234 the emulation.
133 Emacs key bindings are retained by the EDT emulation by default. If you are a 235
134 diehard EDT user you may not like this. The CUSTOMIZING section explains how 236 Emacs binds keys to ASCII control characters and so does the real EDT. Where
135 to change this default. 237 EDT key bindings and GNU Emacs key bindings conflict, the default GNU Emacs key
238 bindings are retained by the EDT emulation by default. If you are a diehard
239 EDT user you may not like this. The CUSTOMIZING section explains how to change
240 this so that the EDT bindings to ASCII control characters override the default
241 Emacs bindings.
136 242
137 243
138 IV. SPECIAL NOTES FOR SOME PLATFORMS: 244 IV. SPECIAL NOTES FOR SOME PLATFORMS:
139 245
140 Sun Workstations running X: 246 Sun Workstations running X:
141 247
142 Some earlier Sun keyboards do not have arrow keys separate from the 248 Some earlier Sun keyboards do not have arrow keys separate from the keypad
143 keypad keys. It is difficult to emulate the full EDT keypad and still 249 keys. It is difficult to emulate the full EDT keypad and still retain use
144 retain use of the arrow keys on such keyboards. 250 of the arrow keys on such keyboards.
145 251
146 The Sun Type 5 keyboard, however, does have separate arrow keys. This 252 The Sun Type 5 and other more recent Sun keyboards, however, do have
147 makes it a candidate for setting up a reasonable EDT keypad emulation. 253 separate arrow keys. This makes them candidates for setting up a
148 Unfortunately, Sun's default X keynames for the keypad keys don't permit 254 reasonable EDT keypad emulation.
149 GNU Emacs to interpret the keypad 2, 4, 6, and 8 keys as something other 255
150 than arrow keys, nor use all the top row of keys for PF1 thru PF4 keys. 256 Depending upon the configuration of the version of X installed on your
151 Here's the contents of an .xmodmaprc file which corrects this problem for 257 system, you may find the default X keynames for the keypad keys don't
152 Sun Type 5 keyboards: 258 permit Emacs to interpret some or all the keypad keys as something other
259 than arrow keys, numeric keys, Home, PgUP, etc. Both Sun and HP have been
260 particularly guilty of making bizarre keysym assignments to the keypad
261 keys.
262
263 In most cases, the X Windows command, xmodmap, can be used to correct the
264 problem. Here's a sample .xmodmaprc file which corrects this problem on
265 one Sun workstation configuration using an older SunOS release configured
266 with a Sun Type 5 keyboard:
153 267
154 ! File: .xmodmaprc 268 ! File: .xmodmaprc
155 ! 269 !
156 ! Set up Sun Type 5 keypad for use with the GNU Emacs EDT Emulation 270 ! Set up Sun Type 5 keypad for use with the GNU Emacs EDT Emulation
157 ! 271 !
171 keycode 119 = KP_1 285 keycode 119 = KP_1
172 keycode 120 = KP_2 286 keycode 120 = KP_2
173 keycode 121 = KP_3 287 keycode 121 = KP_3
174 keycode 132 = KP_Add 288 keycode 132 = KP_Add
175 289
176 Feed .xmodmaprc to the xmodmap command and all the Sun Type 5 keypad keys 290 If edt-mapper.el does not recognize your keypad keys as unique keys, use
177 will now be configurable for the emulation of an LK-201 keypad (less the 291 the command
178 comma key). The line 292
293 xmodmap -pke
294
295 to get a listing of the actual key codes and the keysyms mapped to them
296 and then generate you own custom .xmodmaprc similar to the one above.
297
298 Next, feed .xmodmaprc to the xmodmap command and all the Sun Type 5 keypad
299 keys will now be configurable for the emulation of an LK-201 keypad (less
300 the comma key). In this example, the line
179 301
180 keycode 105 = F24 302 keycode 105 = F24
181 303
182 modifies the NumLock key to be the F24 key which can then be configured 304 changes the X Windows name of the keypad NumLock key to be known
183 to behave as the PF1 (Gold) key. In doing so, you will no longer 305 internally as the F24 key. Doing so permits it to be configured to behave
184 have a NumLock key. If you are using other software under X 306 as the PF1 (Gold) key.
185 which requires a NumLock key, then examine your keyboard and look 307
186 for one you don't use and redefine it to be the NumLock key. 308 The side effect of this change is that you will no longer have a NumLock
187 Basically, you need to clear the NumLock key from being assigned 309 key. If you are using other software under X which requires a NumLock
188 as a modifier, assign it to the key of your choice, and then add 310 key, then examine your keyboard and look for one you don't use and
189 it back as a modifier. (See the "General Notes on Using NumLock 311 redefine it to be the NumLock key. Basically, you need to clear the
190 for the PF1 Key on a Unix System" section below for further help 312 NumLock key from being assigned as a modifier, assign it to the key of
191 on how to do this.) 313 your choice, and then add it back as a modifier. (See the "General Notes
314 on Using NumLock for the PF1 Key on a Unix System" section below for
315 further help on how to do this.)
192 316
193 PC users running MS-DOS: 317 PC users running MS-DOS:
194 318
195 By default, F1 is configured to emulate the PF1 (GOLD) key. But NumLock 319 By default, F1 is configured to emulate the PF1 (GOLD) key. But NumLock
196 can be used instead if you load a freeware TSR distributed with 320 can be used instead if you load a freeware TSR distributed with MS-Kermit,
197 MS-Kermit, call gold.com. It is distributed in a file called gold22.zip 321 call gold.com. This was once distributed in a file called gold22.zip and
198 and comes with the source code as well as a loadable binary image. 322 came with the source code as well as a loadable binary image. (See
199 (See edt-pc.el for more information.) 323 edt-pc.el in the Emacs lisp/emulation directory for more information.)
200 324
201 PC users running GNU/Linux: 325 PC users running GNU/Linux:
202 326
203 The default X server configuration of three keys PC AT keyboard keys 327 The default X server configuration varies from distribution to
204 needs to be modified to permit the PC keyboard to emulate an LK-201 328 distribution and release to release of GNU/Linux. If your system fails to
205 keyboard properly. Here's the contents of an .xmodmaprc file which makes 329 recognize the keypad keys as distinct keys, change the NumLock state,
206 these changes for your: 330 turning it on or off, as the case may be, then try again. If this doesn't
331 solve your problem, you may have to modify the X keysym mappings with
332 xmodmap.
333
334 On one distribution on an Intel PC, the following .xmodmaprc set things up
335 nicely.
207 336
208 ! File: .xmodmaprc 337 ! File: .xmodmaprc
209 ! 338 !
210 ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation 339 ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation
211 ! 340 !
212 clear mod2 341 clear mod2
213 keycode 77 = F12 342 keycode 77 = F12
214 keycode 96 = Num_Lock Pointer_EnableKeys 343 keycode 96 = Num_Lock Pointer_EnableKeys
215 add mod2 = Num_Lock 344 add mod2 = Num_Lock
216 345
217 Feed the file to the xmodmap command and the PC NumLock keypad 346 In this example, after feeding the file to the xmodmap command, the PC
218 key will now be configurable for the emulation of the PF1 key. 347 NumLock keypad key will be configurable for the emulation of the PF1 key.
219 The PC keypad can now emulate an LK-201 keypad (less the comma 348 The PC keypad can now emulate an LK-201 keypad (less the comma key), the
220 key), the standard keyboard supplied with DEC terminals VT-200 and above. 349 standard keyboard supplied with DEC terminals VT-200 and above. This
221 This .xmodmaprc file switches the role of the F12 and NumLock 350 .xmodmaprc file switches the role of the F12 and NumLock keys. It has
222 keys. It has been tested on RedHat GNU/Linux 5.2. Other 351 been tested on RedHat GNU/Linux 5.2. Other versions of GNU/Linux may
223 versions of GNU/Linux may require different keycodes. (See the 352 require different keycodes. (See the "General Notes on Using NumLock for
224 "General Notes on Using NumLock for the PF1 Key on a Unix System" 353 the PF1 Key on a Unix System" section below for further help on how to do
225 section below for further help on how to do this.) 354 this.)
226 355
227 NOTE: It is necessary to have NumLock ON for the PC keypad to emulate the 356 NOTE: Remember, it may be necessary to have NumLock in one position (ON)
228 LK-201 keypad properly. 357 or the other (OFF) for the PC keypad to emulate the LK-201 keypad
358 properly.
229 359
230 General Notes on Using NumLock for the PF1 Key on a Unix System: 360 General Notes on Using NumLock for the PF1 Key on a Unix System:
231 361
232 Making the physical NumLock key available for use in the EDT 362 Making the physical NumLock key available for use in the EDT
233 Emulation requires some modification to the default X Window 363 Emulation requires some modification to the default X Window
234 settings. Since the keycode assignments vary from system to 364 settings. Since the keycode assignments vary from system to
235 system, some investigation is needed to see how to do this on 365 system, some investigation is needed to see how to do this on
236 a particular system. 366 a particular system.
237 367
238 The following commands should be run and the output examined. 368 You will need to look at the output generated by xmodmap invoked with the
239 On RedHat GNU/Linux 5.2 on a PC, we get the following output when 369 "-pm" switch. examined. For example, on RedHat GNU/Linux 5.2 on a PC, we
240 running xmodmap. 370 get the following output when running xmodmap.
241 371
242 "xmodmap -pm" yields: 372 "xmodmap -pm" yields:
243 373
244 xmodmap: up to 2 keys per modifier, (keycodes in parentheses): 374 xmodmap: up to 2 keys per modifier, (keycodes in parentheses):
245 375
309 if you are to use the EDT Emulation effectively. 439 if you are to use the EDT Emulation effectively.
310 440
311 1. Entering repeat counts works a little differently than in EDT. 441 1. Entering repeat counts works a little differently than in EDT.
312 442
313 EDT allows users to enter a repeat count before entering a command that 443 EDT allows users to enter a repeat count before entering a command that
314 accepts repeat counts. For example, when in EDT, pressing these three 444 accepts repeat counts. For example, when using the real EDT, pressing
315 keys in sequence, GOLD 5 KP1, will move the cursor in the current 445 these three keys in sequence, GOLD 5 KP1, will move the cursor in the
316 direction 5 words. 446 current direction 5 words. This does NOT work in Emacs!
317 447
318 Emacs provides two ways to enter repeat counts, though neither involves 448 Emacs provides two ways to enter repeat counts and neither involves using
319 using the GOLD key. In Emacs, repeat counts can be entered by using the 449 the GOLD key. First, repeat counts can be entered in Emacs by using the
320 ESC key. For example, pressing these keys in sequence, ESC 1 0 KP1, will 450 ESC key. For example, pressing these keys in sequence, ESC 1 0 KP1, will
321 move the cursor in the current direction 10 words. 451 move the cursor in the current direction 10 words. Second, Emacs provides
322 452 another command called universal-argument that can be used to do the same
323 Emacs provides another command called universal-argument that can do the 453 thing. Normally, in Emacs has this bound to C-u.
324 same thing, plus a few other things. Normally, Emacs has this bound to 454
325 C-u. 455 2. EDT's line mode commands and nokeypad mode commands are NOT supported
326
327 2. The EDT SUBS command, bound to GOLD ENTER, is NOT supported. The built-in
328 Emacs query-replace command has been bound to GOLD ENTER, instead. It is
329 much more convenient to use than SUBS.
330
331 3. EDT's line mode commands and nokeypad mode commands are NOT supported
332 (with one important exception; see item 8 in the Highlights section 456 (with one important exception; see item 8 in the Highlights section
333 below). Although, at first, this may seem like a big omission, the set of 457 below). Although, at first, this may seem like a big omission, the set of
334 built-in Emacs commands provides a much richer set of capabilities which 458 built-in Emacs commands provides a much richer set of capabilities which
335 more than make up for this omission. 459 more than make up for this omission.
336 460
337 To enter Emacs commands not bound to keys, you can press GOLD KP7 or the 461 To enter Emacs commands not bound to keys, you can press GOLD KP7 or the DO
338 DO key. Emacs will display its own command prompt called Meta-x (M-x). 462 key. Emacs will display its own command prompt "M-x". This stands for the
339 You can also invoke this prompt the normal Emacs way by entering ESC x. 463 keypress Meta-x, where Meta is a special shift key. The Alt key is often
340 464 mapped to behave as a Meta key. So, you can also invoke this prompt by
341 4. Selected text is highlighted ONLY when running under X Windows. Gnu Emacs 465 pressing Meta-x. Typing the sequence "ESC x" will also invoke the prompt.
342 19 does not support highlighting of text on VT series terminals, at this 466
343 time. 467 3. Selected text is highlighted ONLY on systems where Emacs supports the
344 468 highlighting of text.
345 5. Just like TPU/EVE, The ENTER key is NOT used to terminate input when the 469
470 4. Just like in TPU/EVE, the ENTER key is NOT used to terminate input when the
346 editor prompts you for input. The RETURN key is used, instead. (KP4 and 471 editor prompts you for input. The RETURN key is used, instead. (KP4 and
347 KP5 do terminate input for the FIND command, just like in EDT, however.) 472 KP5 (the direction keys) do terminate input for the FIND command, just like
473 in EDT, however.)
348 474
349 475
350 476
351 477
352 VI. SOME HIGHLIGHTS IN THIS EDT EMULATION, AND SOME COMPARISONS TO THE 478 VI. SOME HIGHLIGHTS IN THIS EDT EMULATION, AND SOME COMPARISONS TO THE
354 480
355 1. The EDT define key command is supported (edt-define-key) and is bound to 481 1. The EDT define key command is supported (edt-define-key) and is bound to
356 C-k in the default EDT mode when EDT control sequence bindings are enabled 482 C-k in the default EDT mode when EDT control sequence bindings are enabled
357 or one of the sample edt-user.el customization files is used. The TPU/EVE 483 or one of the sample edt-user.el customization files is used. The TPU/EVE
358 learn command is supported but not bound to a key in the default EDT mode 484 learn command is supported but not bound to a key in the default EDT mode
359 but is bound in the sample edt-user.el files. 485 but is bound in the sample edt-user.el file.
360 486
361 Unlike the TPU/EVE learn command, which uses one key to begin the learn 487 Unlike the TPU/EVE learn command, which uses one key to begin the learn
362 sequence, C-l, and another command to remember the sequence, C-r, this 488 sequence, C-l, and another command to remember the sequence, C-r, this
363 version of the learn command (edt-learn) serves as a toggle to both begin 489 version of the learn command (edt-learn) serves as a toggle to both begin
364 and to remember the learn sequence. 490 and to remember the learn sequence.
369 provided to do just that. When invoked, it prompts you to press the key 495 provided to do just that. When invoked, it prompts you to press the key
370 to which you wish the last replaced key definition restored. It is bound 496 to which you wish the last replaced key definition restored. It is bound
371 to GOLD C-k in the default EDT mode when EDT control sequence bindings are 497 to GOLD C-k in the default EDT mode when EDT control sequence bindings are
372 enabled or one of the sample edt-user.el customization files is used. 498 enabled or one of the sample edt-user.el customization files is used.
373 499
374 2. Direction support is fully supported. It is no longer accomplished by 500 2. Direction support is fully supported.
375 re-defining keys each time the direction is changed. Thus, commands 501
376 sensitive to the current direction setting may be bound easily to any key. 502 3. All original Emacs bindings are fully restored when EDT emulation is turned
377 503 off. So, if a fellow worker comes over to your terminal to help you with a
378 3. All original emacs bindings are fully restored when EDT emulation is 504 software problem, for example, and is completely confused by your EDT
379 turned off. 505 emulation bindings, just enter the command, edt-emulation-off, at the M-x
506 prompt and the original Emacs bindings will be restored. To resume the EDT
507 emulation, just enter edt-emulation-on.
380 508
381 4. User custom EDT bindings are kept separate from the default EDT bindings. 509 4. User custom EDT bindings are kept separate from the default EDT bindings.
382 One can toggle back and forth between the custom EDT bindings and default 510 One can toggle back and forth between the custom EDT bindings and default
383 EDT bindings. 511 EDT bindings.
384 512
399 wish to preserve a customized definition of page break, one can override 527 wish to preserve a customized definition of page break, one can override
400 the EDT definition by placing 528 the EDT definition by placing
401 529
402 (setq edt-keep-current-page-delimiter t) 530 (setq edt-keep-current-page-delimiter t)
403 531
404 in your .emacs file. 532 in your .emacs file. Or, you can used the Emacs customize command
533 to change its setting.
405 534
406 7. The EDT definition of a section of a terminal window is hardwired to be 16 535 7. The EDT definition of a section of a terminal window is hardwired to be 16
407 lines of its one-and-only 24-line window (the EDT SECT command bound to 536 lines of its one-and-only 24-line window (the EDT SECT command bound to
408 KP8). That's two-thirds of the window at a time. Since Emacs, like 537 KP8). That's two-thirds of the window at a time. Since Emacs, like
409 TPU/EVE, can handle multiple windows of sizes of other than 24 lines, the 538 TPU/EVE, can handle multiple windows of sizes of other than 24 lines, the
417 for those users who like to customize movement by a word at a time to 546 for those users who like to customize movement by a word at a time to
418 their own liking. 547 their own liking.
419 548
420 9. EDT's FIND and FNDNXT are supported. 549 9. EDT's FIND and FNDNXT are supported.
421 550
422 10. EDT's APPEND and REPLACE commands are supported. 551 10. EDT's APPEND, REPLACE, and SUBS commands are supported.
423 552
424 11. CHNGCASE is supported. It works on individual characters or selected 553 11. CHNGCASE is supported. It works on individual characters or selected
425 text, if SELECT is active. In addition, two new commands are provided: 554 text, if SELECT is active. In addition, two new commands are provided:
426 edt-lowercase and edt-uppercase. They work on individual WORDS or 555 edt-lowercase and edt-uppercase. They work on individual WORDS or
427 selected text, if SELECT is active. 556 selected text, if SELECT is active.
475 We also provide a TPU/EVE like version of the single SELECT/RESET 604 We also provide a TPU/EVE like version of the single SELECT/RESET
476 function, called edt-toggle-select, which makes the EDT SELECT function 605 function, called edt-toggle-select, which makes the EDT SELECT function
477 into a toggle on/off switch. That is, if selection is ON, pressing SELECT 606 into a toggle on/off switch. That is, if selection is ON, pressing SELECT
478 again turns selection off (cancels selection). This function is used in 607 again turns selection off (cancels selection). This function is used in
479 the sample edt-user.el customization files. 608 the sample edt-user.el customization files.
609
610 20. EDT scroll margins are supported, but are disabled by default. (See
611 CUSTOMIZING section below for instructions on how to enable them.)
480 612
481 613
482 VII. CUSTOMIZING: 614 VII. CUSTOMIZING:
483 615
484 Most EDT users, at one time or another, make some custom key bindings, or 616 Most EDT users, at one time or another, make some custom key bindings, or
529 Many VT-200 terminals, and above, steal function keys F1 thru 661 Many VT-200 terminals, and above, steal function keys F1 thru
530 F5 for terminal setup control and don't send anything to the 662 F5 for terminal setup control and don't send anything to the
531 host if pressed. So customizing bindings to these keys may 663 host if pressed. So customizing bindings to these keys may
532 not work for you. 664 not work for you.
533 665
534 There are three basic functions that do the EDT emulation bindings: 666 There are three basic functions that do the EDT emulation custom bindings:
535 edt-bind-standard-key, edt-bind-gold-key, and edt-bind-function-key. 667 edt-bind-key, edt-bind-gold-key, and edt-bind-function-key.
536 668
537 The first two are for binding functions to keys which are standard across most 669 The first two are for binding functions to keys which are standard across most
538 keyboards. This makes them keyboard independent, making it possible to define 670 keyboards. This makes them keyboard independent, making it possible to define
539 these key bindings for all terminals in the file edt.el. 671 these key bindings for all terminals in the file edt.el.
540 672
541 The first, edt-bind-standard-key, is used typically to bind emacs commands to 673 The first, edt-bind-key, is used typically to bind emacs commands to
542 control keys, although some people use it to bind commands to other keys, as 674 control keys, although some people use it to bind commands to other keys, as
543 well. (For example, some people use it to bind the VT200 seldom used 675 well. (For example, some people use it to bind the VT200 seldom used
544 back-tick key (`) to the function "ESC-prefix" so it will behave like an ESC 676 back-tick key (`) to the function "ESC-prefix" so it will behave like an ESC
545 key.) The second function, edt-bind-gold-key, is used to bind emacs commands 677 key.) The second function, edt-bind-gold-key, is used to bind emacs commands
546 to gold key sequences involving alpha-numeric keys, special character keys, 678 to gold key sequences involving alpha-numeric keys, special character keys,
547 and control keys. 679 and control keys.
548 680
549 The third function, edt-bind-function-key, is terminal dependent and is 681 The third function, edt-bind-function-key, is terminal dependent and is defined
550 defined in a terminal specific file (see edt-vt100.el for example). It is 682 in a terminal specific file (see edt-vt100.el for example). It is used to bind
551 used to bind emacs commands to function keys, to keypad keys, and to gold 683 emacs commands to LK-201 function keys, to keypad keys, and to gold sequences
552 sequences of those keys. 684 of those keys.
553
554 WARNING: Each of the three functions, edt-bind-function-key,
555 edt-bind-gold-key, and edt-bind-standard-key, has an optional
556 last argument. The optional argument should NOT be used in
557 edt-user.el! When the optional argument is missing, each
558 function knows to make the key binding part of the user's EDT
559 custom bindings, which is what you want to do in edt-user.el!
560
561 The EDT default bindings are set up in edt.el by calling these
562 same functions with the optional last argument set to "t". So, if
563 you decide to copy such function calls from edt.el to edt-user.el
564 for subsequent modification, BE SURE TO DELETE THE "t" AT THE END
565 OF EACH PARAMETER LIST!
566 685
567 686
568 SPECIFYING WORD ENTITIES: 687 SPECIFYING WORD ENTITIES:
569 688
570 The variable edt-word-entities is used to emulate EDT's SET ENTITY WORD 689 The variable edt-word-entities is used to emulate EDT's SET ENTITY WORD
606 most of the original EDT control key sequence bindings. If you wish to do 725 most of the original EDT control key sequence bindings. If you wish to do
607 this, add the following line to your .emacs file: 726 this, add the following line to your .emacs file:
608 727
609 (setq edt-use-EDT-control-key-bindings t) 728 (setq edt-use-EDT-control-key-bindings t)
610 729
730
731 SETTING SCROLL MARGINS:
732
733 Scroll margins at the top and bottom of the window are now supported. (The
734 design was copied from tpu-extras.el.) By default, this feature is enabled
735 with the top margin set to 10% of the window and the bottom margin set to 15%
736 of the window. To change these settings, you can invoke the function
737 edt-set-scroll-margins in your .emacs file. For example, the following line
738
739 (edt-set-scroll-margins "20%" "25%")
740
741 sets the top margin to 20% of the window and the bottom margin to 25% of the
742 window. To disable this feature, set each margin to 0%. You can also invoke
743 edt-set-scroll-margins interactively while EDT Emulation is active to change
744 the settings for that session.
745
746 NOTE: Another way to set the scroll margins is to use the Emacs customization
747 feature (not available in Emacs 19) to set the following two variables
748 directly:
749
750 edt-top-scroll-margin and edt-bottom-scroll-margin
751
752 Enter the Emacs `customize' command. First select the Editing group and then
753 select the Emulations group. Finally, select the Edt group and follow the
754 directions.
611 755
612 DEFAULT EDT Keypad 756 DEFAULT EDT Keypad
613 757
614 F7: Copy Rectangle +----------+----------+----------+----------+ 758 F7: Copy Rectangle +----------+----------+----------+----------+
615 F8: Cut Rect Overstrike |Prev Line |Next Line |Bkwd Char |Frwd Char | 759 F8: Cut Rect Overstrike |Prev Line |Next Line |Bkwd Char |Frwd Char |
621 F11: ESC 765 F11: ESC
622 F12: Begining of Line +----------+----------+----------+----------+ 766 F12: Begining of Line +----------+----------+----------+----------+
623 G-F12: Delete Other Windows | GOLD | HELP | FNDNXT | DEL L | 767 G-F12: Delete Other Windows | GOLD | HELP | FNDNXT | DEL L |
624 F13: Delete to Begin of Word | (PF1) | (PF2) | (PF3) | (PF4) | 768 F13: Delete to Begin of Word | (PF1) | (PF2) | (PF3) | (PF4) |
625 HELP: Keypad Help |Mark Wisel|Desc Funct| FIND | UND L | 769 HELP: Keypad Help |Mark Wisel|Desc Funct| FIND | UND L |
626 DO: Execute extended command +----------+----------+----------+----------+ 770 G-HELP: Emacs Help +----------+----------+----------+----------+
627 | PAGE | SECT | APPEND | DEL W | 771 DO: Execute extended command | PAGE | SECT | APPEND | DEL W |
628 C-g: Keyboard Quit | (7) | (8) | (9) | (-) | 772 C-g: Keyboard Quit | (7) | (8) | (9) | (-) |
629 G-C-g: Keyboard Quit |Ex Ext Cmd|Fill Regio| REPLACE | UND W | 773 G-C-g: Keyboard Quit |Ex Ext Cmd|Fill Regio| REPLACE | UND W |
630 C-h: Beginning of Line +----------+----------+----------+----------+ 774 C-h: Beginning of Line +----------+----------+----------+----------+
631 G-C-h: Emacs Help | ADVANCE | BACKUP | CUT | DEL C | 775 G-C-h: Emacs Help | ADVANCE | BACKUP | CUT | DEL C |
632 C-i: Tab Insert | (4) | (5) | (6) | (,) | 776 C-i: Tab Insert | (4) | (5) | (6) | (,) |
669 G-2: Split Window 813 G-2: Split Window
670 G-%: Go to Percentage 814 G-%: Go to Percentage
671 G- : Undo (GOLD Spacebar) 815 G- : Undo (GOLD Spacebar)
672 G-=: Go to Line 816 G-=: Go to Line
673 G-`: What line 817 G-`: What line
818 G-/: Query-Replace
674 819
675 ;;; File: edt-user.el --- Sample User Customizations for the Enhanced 820 ;;; File: edt-user.el --- Sample User Customizations for the Enhanced
676 ;;; EDT Keypad Mode Emulation 821 ;;; EDT Keypad Mode Emulation
677 ;;; 822 ;;;
678 ;;; For GNU Emacs 19 823 ;;; For GNU Emacs 19 and Above
679 ;;; 824 ;;;
680 ;; Copyright (C) 1986, 1992, 1993 Free Software Foundation, Inc. 825 ;; Copyright (C) 1986, 1992, 1993, 2000 Free Software Foundation, Inc.
681 826
682 ;; Author: Kevin Gallagher <kevingal@onramp.net> 827 ;; Author: Kevin Gallagher <kgallagh@spd.dsccc.com>
683 ;; Maintainer: Kevin Gallagher <kevingal@onramp.net> 828 ;; Maintainer: Kevin Gallagher <kgallagh@spd.dsccc.com>
684 ;; Keywords: emulations 829 ;; Keywords: emulations
685 830
686 ;; GNU Emacs is free software; you can redistribute it and/or modify 831 ;; GNU Emacs is free software; you can redistribute it and/or modify
687 ;; it under the terms of the GNU General Public License as published by 832 ;; it under the terms of the GNU General Public License as published by
688 ;; the Free Software Foundation; either version 2, or (at your option) 833 ;; the Free Software Foundation; either version 2, or (at your option)
698 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, 843 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
699 ;; Boston, MA 02111-1307, USA. 844 ;; Boston, MA 02111-1307, USA.
700 845
701 ;;; Commentary: 846 ;;; Commentary:
702 847
703 ;; This file contains GNU Emacs User Custom EDT bindings and functions. In 848 ;; This file contains GNU Emacs User Custom EDT bindings and functions.
704 ;; this example file, there is no special test for the type of terminal being
705 ;; used. The assumption is that all key bindings here apply to all terminals
706 ;; that may be used. (In fact, it was written by an individual who uses only
707 ;; VT series terminals when logging into a VAX.)
708 ;;
709 ;; WARNING: Each of the three functions, edt-bind-function-key,
710 ;; edt-bind-gold-key, and edt-bind-standard-key, has an optional
711 ;; last argument. The optional argument should NOT be used in
712 ;; edt-user.el! When the optional argument is missing, each
713 ;; function knows to make the key binding part of the user's EDT
714 ;; custom bindings, which is what you want to do in edt-user.el!
715 ;;
716 ;; The EDT default bindings are set up in edt.el by calling these
717 ;; same functions with the optional last argument set to "t". So, if
718 ;; you decide to copy such function calls from edt.el to edt-user.el
719 ;; for subsequent modification, BE SURE TO DELETE THE "t" AT THE END
720 ;; OF EACH PARAMETER LIST!
721 ;;
722 849
723 ;;; Usage: 850 ;;; Usage:
724 851
725 ;; See edt-user.doc in the emacs etc directory. 852 ;; See edt-user.doc in the emacs etc directory.
726 853
758 (edt-bind-gold-key "h" 'edt-electric-user-keypad-help) 885 (edt-bind-gold-key "h" 'edt-electric-user-keypad-help)
759 (edt-bind-gold-key "H" 'edt-electric-user-keypad-help) 886 (edt-bind-gold-key "H" 'edt-electric-user-keypad-help)
760 887
761 ;; Control bindings for regular keys. 888 ;; Control bindings for regular keys.
762 ;;; Leave binding of C-c as original prefix key. 889 ;;; Leave binding of C-c as original prefix key.
763 (edt-bind-standard-key "\C-j" 'edt-duplicate-word) 890 (edt-bind-key "\C-j" 'edt-duplicate-word)
764 (edt-bind-standard-key "\C-k" 'edt-define-key) 891 (edt-bind-key "\C-k" 'edt-define-key)
765 (edt-bind-gold-key "\C-k" 'edt-restore-key) 892 (edt-bind-gold-key "\C-k" 'edt-restore-key)
766 (edt-bind-standard-key "\C-l" 'edt-learn) 893 (edt-bind-key "\C-l" 'edt-learn)
767 ;;; Leave binding of C-m to newline. 894 ;;; Leave binding of C-m to newline.
768 (edt-bind-standard-key "\C-n" 'edt-set-screen-width-80) 895 (edt-bind-key "\C-n" 'edt-set-screen-width-80)
769 (edt-bind-standard-key "\C-o" 'open-line) 896 (edt-bind-key "\C-o" 'open-line)
770 (edt-bind-standard-key "\C-p" 'fill-paragraph) 897 (edt-bind-key "\C-p" 'fill-paragraph)
771 ;;; Leave binding of C-r to isearch-backward. 898 ;;; Leave binding of C-r to isearch-backward.
772 ;;; Leave binding of C-s to isearch-forward. 899 ;;; Leave binding of C-s to isearch-forward.
773 (edt-bind-standard-key "\C-t" 'edt-display-the-time) 900 (edt-bind-key "\C-t" 'edt-display-the-time)
774 (edt-bind-standard-key "\C-v" 'redraw-display) 901 (edt-bind-key "\C-v" 'redraw-display)
775 (edt-bind-standard-key "\C-w" 'edt-set-screen-width-132) 902 (edt-bind-key "\C-w" 'edt-set-screen-width-132)
776 ;;; Leave binding of C-x as original prefix key. 903 ;;; Leave binding of C-x as original prefix key.
777 ) 904 )
778 905
779 ;;; 906 ;;;
780 ;;; LK-201 KEYBOARD USER EDT KEYPAD HELP 907 ;;; LK-201 KEYBOARD USER EDT KEYPAD HELP
795 F11: ESC +----------+----------+----------+----------+ 922 F11: ESC +----------+----------+----------+----------+
796 F12: Begining of Line | GOLD |Query Repl| FNDNXT |Del Ent L | 923 F12: Begining of Line | GOLD |Query Repl| FNDNXT |Del Ent L |
797 G-F12: Delete Other Windows | (PF1) | (PF2) | (PF3) | (PF4) | 924 G-F12: Delete Other Windows | (PF1) | (PF2) | (PF3) | (PF4) |
798 F13: Delete to Begin of Word |Mark Wisel|Other Wind| FIND | UND L | 925 F13: Delete to Begin of Word |Mark Wisel|Other Wind| FIND | UND L |
799 HELP: Keypad Help +----------+----------+----------+----------+ 926 HELP: Keypad Help +----------+----------+----------+----------+
800 DO: Execute extended command | PAGE |Scroll Win|Open Line | DEL W | 927 G-HELP: Emacs Help | PAGE |Scroll Win|Open Line | DEL W |
801 | (7) | (8) | (9) | (-) | 928 DO: Execute extended command | (7) | (8) | (9) | (-) |
802 C-a: Beginning of Line |Ex Ext Cmd|Fill Parag|Elim Tabs | UND W | 929 C-a: Beginning of Line |Ex Ext Cmd|Fill Parag|Elim Tabs | UND W |
803 C-b: Switch to Buffer +----------+----------+----------+----------+ 930 C-b: Switch to Buffer +----------+----------+----------+----------+
804 C-d: Delete Character | ADVANCE | BACKUP | CUT/COPY | DEL C | 931 C-d: Delete Character | ADVANCE | BACKUP | CUT/COPY | DEL C |
805 C-e: End of Line | (4) | (5) | (6) | (,) | 932 C-e: End of Line | (4) | (5) | (6) | (,) |
806 C-f: Forward Character | BOTTOM | TOP | Yank | UND C | 933 C-f: Forward Character | BOTTOM | TOP | Yank | UND C |
850 G-z: Switch to Default EDT Key Bindings 977 G-z: Switch to Default EDT Key Bindings
851 G-2: Split Window 978 G-2: Split Window
852 G-%: Go to Percentage 979 G-%: Go to Percentage
853 G- : Undo (GOLD Spacebar) 980 G- : Undo (GOLD Spacebar)
854 G-=: Go to Line 981 G-=: Go to Line
855 G-`: What line" 982 G-`: What line
983 G-/: Query-Replace"
856 984
857 (interactive) 985 (interactive)
858 (describe-function 'edt-user-keypad-help)) 986 (describe-function 'edt-user-keypad-help))