|
|
1.1 root 1: SUBJECT: new features and old bugs
2:
3: Version 2.4 will soon be installed as EMACS (it is now NEMACS).
4: This version allows longer files to be edited (up to about 9,000
5: lines), and has several other changes.
6:
7: The M-w command puts a "wall chart" of commands (the combined output
8: of "M-?*" and "M-?^X*" into the current buffer. This is a handy reference.
9:
10: If you try to quit via ^X^C and tell emacs to write a buffer that
11: has been modified, it will not quit if it encounters a problem (such
12: as a protection violation).
13:
14: Several problems in the manual have been fixed. These were first
15: discovered when Brad, a new user totally unfamiliar with emacs,
16: tried to learn emacs from the manual. The manual is in
17: /n1/warren/emacs/emacs.doc
18:
19: SUBJECT: Version 2.6
20:
21: Version 2.6 (now /usr/obin/nemacs) has several new features. This
22: version has some modifications to the file and buffer handling, and
23: there may be bugs that cause garbled files. It will probably stay
24: as nemacs for some time until I am sure that it is sound.
25:
26: Non-Destructive buffer reading: The ^X^R and M-$ commands now take
27: the value of their argument to specify whether or not clear the buffer
28: before reading. If no argument is given (just
29: invoke ^X^R or M-$), they clear, as they did in past versions. If
30: an argument is given, the text read is inserted into the buffer at
31: the current cursor position, or at the end for M-$. Thus if you
32: type ^U^X^R and a file name, it is inserted. If you type ^UM-$ and
33: a command line, the output of the command is appended to the buffer .exec.
34:
35: (almost) Unlimited Kill Buffer. The limit on the amount of text you
36: can kill and still receive is now 256K characters. The kill buffer
37: is kept in a file, and the only limit is the amount of stuff you
38: want to clutter up the file system with. As before, only the last 8
39: deletions are remembered.
40:
41: Reading a file without re-initializing the buffer, or retrieving
42: lots of killed text, take lots of time if the cursor is in the
43: middle of a line (i.e. there is text to the right of the cursor).
44: You can save a lot of time by opening up a line, doing the read or
45: retrieval, and then killing the leftovers.
46:
47: SUBJECT: version 2.7
48:
49: version 2.7 contains many non-visible changes to reduce memory usage
50: and improve efficiency. The visible changes in version 2.7 are
51:
52: support for HP terminals (terminal type hp)
53:
54: An improved re-display algorithm that sometimes scrolls the screen.
55:
56: ^Z now does exactly what ^X^C did.
57:
58: The ^X^T command takes the marked region in the current buffer and
59: inserts it into a second buffer.
60:
61: Mail will now take any number of lines starting TO: or CC: for the
62: destination of the mail.
63:
64: EMACS will not try to write buffers with a null file name after ^X^C
65: or ^X^S
66:
67: SUBJECT: new features in EMACS 2.8
68:
69: New commands:
70:
71: ^X= will print out the character position of the cursor in
72: the buffer and the total number of characters in the buffer.
73:
74: M-" will re-adjust the lines in the buffer so that each line
75: has 72 or fewer characters. Blank lines, or lines starting with '.'
76: or '`' are not changed (these are nroff control lines).
77:
78: Other new features:
79: You now have 12 marks available for the commands dealing
80: with marks. If you specify no argument to commands using marks,
81: they will use a different mark in each buffer. By specifying an
82: argument to commands using marks, you can explicitly set two or more
83: marks in the same buffer. See the documentation for more details.
84:
85: You can now set default modes for a file by putting the
86: string EMACS_MODES: anywhere in the first 10 lines of a file,
87: followed by a description of the modes to set. For example, the string
88: /* EMACS_MODES: c, !fill, tabstop=3 */
89: in a c source file will turn on c mode, turn off fill mode, and set
90: the number of spaces per tab in the display to 3. For more details,
91: see the document.
92:
93: When EMACS asks "continue?" after executing a unix command
94: or listing active buffers, if you type 'y', ' ', or (return), EMACS
95: will go back to the buffer. Otherwise, it will ask for another unix
96: command or another buffer name. You can also get a list of active
97: buffers by entering (return) in response to any of the commands
98: that ask for a buffer name.
99:
100: SUBJECT: new features in EMACS 3.0
101:
102: There is now a way to pass the contents of the current buffer as
103: standard input to a command. Preceding meta-! (execute unix
104: command) with ^U causes it to pass the buffer as standard input.
105: This does not work for meta-$. (Sorry, but there is no obvious way
106: to do this without the possibility of deadlock.)
107:
108: There are several minor bug fixes in this version.
109:
110: The undocumented game of life command (M-#) has been deleted. If
111: there is any interest in it, I will keep a version that has this feature.
112:
113: The big change here is the ability to define new commands. Basically,
114: any sequence of emacs commands can be defined as a command. There
115: are additional commands for sequencing execution, and for obtaining
116: information from the terminal. A brief description of the new
117: commands is available in /n1/warren/emacs/macro.mm (mm source) or
118: /n1/warren/emacs/macro.xopr (xopr'able copy). Some sample macro
119: definitions are available in the directory /n1/warren/emacs/macros.
120:
121: SUBJECT: new features in EMACS 3.1
122:
123: Several new features relating to macros:
124: The ^X% command which exchanges the top of the kill stack with
125: the item identified by the argument.
126:
127: All of the commands that access the kill stack
128: (^Y,^X-,^X>,^X%, etc) now return 1 as a result if successful
129: and 0 if there are not enough items in the kill stack to
130: satisfy the request.
131:
132: EMACS will not ask Continue? after commands, buffer display,
133: statistics, and similar commands when the command is invoked
134: in a macro. You can use ^X< to ask Continue? if you like.
135:
136: M-s now displays the amount of buffer space left for editing
137: or macro text. You need a minimum of 1024 characters.
138:
139: The buffer name ... is now special. If you create a buffer
140: named ..., it will create a new buffer with a unique name
141: instead. This is useful for creating temporary buffers in macros.
142:
143: M-x can now be used to call macros by names, rather than always
144: invoking a macro by a character. This should help in the
145: construction of macro libraries.
146:
147: ^X& compares two strings for a macro
148:
149: SUBJECT: new features in EMACS 3.2
150:
151: Several miscelaneous display bugs have been fixed
152:
153: A new mode parameter (keepscroll) has been added. This is initially
154: 0 and can be set to the number of lines that you wish to keep from
155: the last screen when going forward or backward by pages (^V or M-V)
156:
157: If you give an argument to ^L, it specifies the number of lines to
158: appear on the screen before the current line when the display is rereshed.
159:
160: The command ^X^^ causes one line to be added to the current window
161: when in two window mode.
162:
163: The command ^X^U causes the display to be updated and causes EMACS
164: to delay for n seconds, where n is the argument to ^X^U. This is
165: useful in macros.
166:
167: The command M-] causes the last numeric argument to a macro to be
168: passed as the argument to the current command.
169:
170: By popular demand, EMACS will now ask whether or not to write a
171: buffer that contains text and has no file name associated with it.
172:
173: SUBJECT: new features in EMACS 3.3
174:
175: The command ^X! starts a case statement in a macro (see the macros
176: memo for details)
177:
178: The redisplay heuristics have been improved for terminals that have
179: insert/delete line and insert/delete character capabilities (hp,
180: adm31, vt100, etc.)
181:
182: The command M-~ marks a buffer as not being up to date without
183: writing it out.
184:
185: The .emacs_init file is now run before reading in a file specified
186: on the command line. This should reduce unwanted display on
187: starting up.
188:
189: I am now maintaining a library of macros in /n1/warren/emacs/macros.
190: There are macros for various purposes, such as dealing with unix
191: mail, keeping track of refrences for mm, a help function for emacs
192: commands, balancing parentheses, etc. Anyone interested in
193: submitting macros should follow the rules outlined in the
194: LIBRARY_RULES file, and send them to me.
195:
196: SUBJECT: new features in EMACS 3.4
197:
198: EMACS will now expand environment variables, such as $HOME or $MAIL,
199: in pathnames for reading, writing, and finding files. Asteristisks
200: in file names (ie *.c) are still not expanded.
201:
202: EMACS will not print prompts from commands read from an init file or
203: form files read with ^X^I. This should cut down on annoying output
204: at startup.
205:
206: A negative argument to a command can be specified with escape, '-',
207: followed by the number. Most commands treat their argument as
208: unsigned, so a negative argument is treated like a large positive
209: argument. For some commands, negative arguments cause special effects.
210:
211: Passing a negative argument to ^X< causes a prompt to be given, and
212: a single character to be read from the terminal as the result.
213:
214: The command M-: allows you to re-map character commands. It prompts
215: for a character (or a meta or ^X sequence) and a command (also a
216: character sequence) to put on that character. This allows you to
217: re-configure EMACS to your liking.
218:
219: The regular expression search facility (M-^S) has been improved. You can
220: now search forward or backward, either ending at the beginning or end of
221: buffer, or wrapping around (like ed). With a positive argument, the
222: search is forward, while a negative argument searches backwards. An
223: argument of 1 or -1 causes the search to wrap, failing only if there
224: is no occurance of the expression in the buffer. Any other argument
225: causes the search to stop at the beginning or end of file. Note
226: that the default (argument = 1) does exactly what the old one did.
227: Entering ^S or ^R immediately following a regular expression search
228: will find the next or previous occurance of the expression.
229:
230: ***********Note to EMACS maintainers*************
231:
232: As of version 3.4, the file regexp.h is no longer needed. The
233: makefile has been updated to reflect this, and you will not receive
234: this file in future updates.
235:
236: Beginning with version 3.5, EMACS will maintain error messages in a
237: separate file (errfile). This is produced like the helpfile. Also
238: beginning with this version the pathnames for the help and error
239: files will be automatically set to the directory from which make is
240: invoked. Thus you do not need to change any pathnames unless you
241: plan to keep the error, help, and statistics files in some other
242: location on your system. This should simplify making EMACS.
243:
244: ***************************************************************
245:
246: SUBJECT: new features in EMACS 3.5
247:
248: Passing an argument to ^X^W (i.e. ^U^X^W) will cause the contents of the
249: buffer to be appended to the specified file, rather than replacing it.
250:
251: There is a new mode: caseless. Setting this mode will cause case to be
252: ignored in searches and replaces.
253:
254: EMACS will now periodically check to see if you have received mail.
255: If so, it will print a warning at the bottom of the screen and beep.
256:
257: You can now use \ folowed by a single digit in the "To? " string for
258: regular expression query replace to specify replacement by a
259: sub-expression of what was matched. This works just like it does in ed.
260:
261: You can now have local variables within a macro. This is done through
262: the ^] ad M-^] commands. ^] returns as its result the value of a
263: local variable selected by its argument. M-^] assigns the result of
264: the following command to a local variable selected by the argument
265: to M-^] and returns as its result the previous value held by the
266: variable. You can have up to 10 local variables in each macro. For
267: compatibility with the previous definition of ^], local variable
268: number 1 in each macro invocation is initialized to the argument
269: given to the macro.
270:
271: There is a new mode, rigid_newline, that will cause a newline or carriage
272: return to always insert a newline into the file, even if the
273: following line is blank.
274:
275: Typing ^Z in response to an error message will no longer result in a
276: core dump, but will ask if you want to write out modified buffers
277: before exiting.
278:
279: Regular expression querry replace will check for matching something
280: at the end of a line, and move to the next line if so, so that you
281: will not get into an infinite loop replacing the end of a line with
282: something else.
283:
284: ^N will no longer go beyond the end of the buffer.
285:
286: The displays for search and querry replace have been changed somewhat to
287: give you immediate feedback in response to characters typed before
288: long searches.
289:
290: SUBJECT: new features in EMACS 3.6
291:
292: There is now a default match in the macro case construct. See the
293: macro memo for details.
294:
295: The display algorithm has been changed somewhat to avoid centering
296: the window every time that you change buffers. This should make
297: macros like abbrev, that changes to another buffer to look up the
298: abbreviation, more acceptable on slow terminals.
299:
300: The special character sequences \< and \> can be used to delimit a
301: word in a regular expression. The regular expression "\<the\>"
302: matches an occurance of the word "the" (but not the delimiters on
303: either side). Words are delimited by line boundaries, white space,
304: punctuation, and control characters.
305:
306: The new command ^X+ causes the next item put in the kill stack to be
307: appended to the last item put in the kill stack. See the macros manual for
308: more details and cautions.
309:
310: Minor changes:
311:
312: ^X^S on a buffer without a file name will fail in a
313: macro, rather than asking for a file name.
314:
315: The algorithm used to find sentence beginning and end has
316: been changed somewhat.
317:
318: The change mode command (^X^M) now returns the previous value of
319: the mode set as its result.
320:
321: There is a new mode (end_newline) which when set causes ^N
322: at the end of a buffer to extend the buffer by one line like
323: it used to before version 3.5.
324:
325: New Macros:
326:
327: There is a new macro package called tags in
328: /n1/warren/emacs/macros that facilitates working with a
329: group of related files. See /n1/warren/emacs/macros/CATALOG
330: for details
331:
332: DIRED changes:
333: If you give dired an argument beginning with a dash, it is taken
334: as additional arguments to the ls -al command used to
335: produce a listing for dired. Thus "dired -t" produces a
336: time sorted listing of the current directory, "dired -t
337: /usr/bin" produces a similar listing of /usr/bin.
338:
339: SUBJECT: new features in EMACS 4.0
340:
341: There is a new terminal support mechanism in EMACS 3.7. This allows
342: me (or anyone) to construct terminal description files for terminals
343: without re-compiling. This will allow many more terminal
344: descriptions and synonyms, easing compatibility problems with EX.
345: It also lets us define "funny" terminals, such as vt100 in 80 column mode.
346:
347: This version makes use of the (crude) terminal improvements in UNIX
348: 3.0 to read-ahead, and hopefully reduce re-display somewhat on slow
349: terminals. System support for this is still very poor, thus there
350: is little I can do.
351:
352: There are lots of new features for DIRED, see the manual page or
353: memo for details.
354:
355: ^X= has been changed to give lots more information.
356:
357: There are two new modes, tspeed and usilent.
358:
359: tspeed is the speed of
360: your terminal in miliseconds per character. tspeed is used by emacs
361: in determining how to update the screen, and is set automatically
362: whenever you enter or exit emacs.
363:
364: usilent causes emacs not to display the command line or output of
365: M-$ commands. This is useful for running unix commands silently
366: from macros.
367:
368: The new command ^X^N allows you to change the buffer name or the
369: file name associated with a buffer without changing the contents of
370: the buffer.
371:
372: The buffer re-display algorithm has been changed. This should eliminate
373: several display bugs and make it much easier to maintain. Report
374: any bugs in terminal support or display.
375:
376: There is a new macro library (/n1/warren/emacs/macros/crypt) for
377: those who like encrypted files. See /n1/warren/emacs/macros/CATALOG
378: for details.
379:
380: SUBJECT: new features in EMACS 4.2
381:
382: There is a new command line option, "-i <filename>" which lets you specify
383: an additional initialization file. The file <filename> will be run after
384: your standard init file and before any file name specified on the
385: command line is read in. Recall that init files contain sequences
386: of emacs commands.
387:
388: The algorithm for determining terminal type has changed slightly. It
389: first checks $TERM, then runs your init file, and if terminal type
390: still hasn't been determined, asks for it.
391:
392: The command ^X= has been changed to return status information when
393: invoked in a macro, depending on its argument. You can get file or screen
394: line and character positions. See the macros document for details.
395:
396: ^X^F or ^X^R will not give an error if the file cannot be read when
397: invoked with a negative argument.
398:
399: You can now re-map any command using M-:. This allows, for example,
400: mapping some more convenient key to escape on a terminal where
401: escape is not in a convenient place.
402:
403: NEW modes:
404:
405: notabs mode causes emacs to display tabs as ^I (rather than
406: white space), and to insert spaces up to the next tab
407: boundary when the tab key is pressed (unless the tab is
408: quoted with ^Q).
409:
410: readonly mode causes emacs to refuse to save the current
411: buffer back to the associated file and to not save the
412: buffer in auto save mode. You can still save by writting to
413: a file explicitly with ^X^W.
414:
415: controlify mode allows you to use the character ^^
416: (control-uparrow) to make the next character a control
417: character. This is primarily useful for using emacs over cu
418: (uucall, cuu) links, which swallow ^S and ^Q, or on a
419: console terminal, which swallows ^O.
420:
421: SUBJECT: new features in EMACS 4.3
422:
423: Failing Searches inside of macros no longer beep.
424:
425: The mail command has been modified to support the header format used
426: by other unix tools and by the arpanet community. The principal
427: changes are to define the header of a mail item to be all of the
428: lines up to the first blank line, and to have M-^M look for lines
429: beginning To: or Cc: (Instead of TO: and CC:) to specify the recipients.
430: The old format will continue to be supported for some time, and old
431: header lines will be converted to new headers before the mail is sent.
432:
433: New support has been added for terminals that underline, and terminals with
434: a forms-editing style insert character mode (like the concept-100).
435: On terminals with underlining capabilities, the backspace mode is on
436: by default, and positions that are over struck with an underscore
437: will be underscored on the display. Turning backspace mode off
438: causes backspaces to appear as ^H, and nothing to be underscored.
439:
440: Emacs will now send you mail when it is killed (i.e. hung up on from
441: a dialup terminal) and saves buffers.
442:
443: Emacs will only ring the terminal bell after the first "you have
444: mail" warning. If you don't read the mail, the warning will stay on
445: the screen but emacs will not beep.
446:
447: Emacs will now preserve owner and group when writing files. It also
448: warns you when you try to write to a file that you do not own.
449:
450: New command: ^X^A. This command puts the first un-processed command
451: line argument on the kill stack. See macros document for details.
452:
453: MACRO changes:
454:
455: rmail has been extended to provide local, btl-wide, and arpanet signatures,
456: for mail replies depending on the destination. It has also been
457: modified to support standard mail headers.
458:
459: There is a new macro package (vmail) that automatically responds to
460: your mail while you are on vacation.
461:
462: SUBJECT: changes in emacs_4.4
463:
464: Several bugs in regular expressions having to do with ranges of
465: repeats (\{n,m\}) have been fixed. Also, a new operator '+' has
466: been defined to mean 1 or more occurance of what preceeds it, as it
467: does in common use of regular expressions.
468:
469: The newline function has been changed so that the only time it does
470: not insert a new line is when you are at the end of the current
471: line, the next line is blank, and you are not in "rigid_newline" mode.
472:
473: Autofill and fill buffer have been slightly modified. Autofill will
474: now consider the whole line for possible breaking whenever you type
475: a space or tab. This means that if the line is several words over
476: the line length, and you type space, several words will move to the
477: next line instead of just the last word.
478:
479: Fill buffer will now act
480: just on the marked region (Actually the first character of the first
481: line marked to the last character of the last line marked) when
482: given an argument. The whole region is considered as one block to
483: fill, irrespective of paragraph boundaries or blank lines, although
484: it still avoids breaking lines in such a way that a '.' or ''' is
485: put at the front of a line.
486:
487: The new command ^X@ works just like ^^X<, except that it takes the
488: string used for prompting
489: from the kill stack (or from the user if invoked from the
490: terminal) This allows you to alter the string used for prompting
491: rather than compiling it in.
492:
493: The ^X^O command now returns 1 if both windows contain the same
494: buffer, 0 if the windows contain different buffers, and -1 if it is
495: called in one window mode.
496:
497: Querry replace will now display the from and to strings at the
498: bottom of the screen. It also has a new option 'b' which causes it
499: to go backwards to the previous occurance of the To string. (Note
500: that this means find the previous occurance in the current file and
501: does not find something that has already been replaced!). Query
502: replace also remembers the most recent replacement string and will
503: substitute it for a replacement string consisting of a single '%'
504: character.
505:
506: The grow/shrink window command (^X^^) will now expand or contract
507: the display window while in 1 window mode as well as two window
508: mode. The mode and echo lines remain at the bottom of the screen
509: independent of window size.
510:
511: Emacs will now expand all of the usual shell meta characters in
512: filenames. Thus you can read "*.c", or `logdir usa`/.profile. In
513: all cases, only the first "word" (up to the first whitespace
514: character) is used from the expansion. Thus when specifying files
515: with "*", only the first match is found. The expansion of shell
516: meta characters is slow, since emacs runs a subshell to do it.
517:
518: There is a new mode (display_percent) which will display the current
519: file position as a percentage of the number of lines in the file
520: when turned on.
521:
522: Two new operators have been added to convert between numeric and
523: string values. With an argument of 16, ^X~ will convert the result
524: of the next command to a string and put it on the kill stack. With
525: an argument of 17, The top item on the kill stack is converted to an
526: integer and returned as the result of ^X~. See the macros document
527: for details.
528:
529: Emacs now strips leading tabs and blanks from macro definitions when
530: they are loaded in order to reduce storage requirements. Although
531: it is possible to construct a macro that would be effected by this
532: change, it does not occur with normal coding practices.
533:
534: SUBJECT: changes in emacs_4.5
535:
536: Added a new command (M-E) which expands an environment variable and
537: returns its value (or a null string) on the kill stack. The return
538: value of M-E is 1 if the string fed to it matched an environment
539: variable, and 0 otherwise. (12/22/81)
540:
541: Added a new option to query replace. When you respond with ".",
542: query replace replaces the current occurance and exits query
543: replace. (12/29/81)
544:
545: New Meta character for file names: (12/30/81)
546:
547: Emacs now interprets the tilde character (~) in filenames as meaning
548: "home directory" like the C shell. Emacs will take the
549: characters following the ~ up to the next word separator as
550: the login name of a user and translate the entire sequence
551: to that user's home directory. A null user name is taken as
552: your own, while the special user name EMACS is mapped to the
553: emacs data directry (contains the macro library and other
554: emacs related files). Thus ~/.profile references
555: your .profile, ~foo/.profile references the .profile for
556: user foo, and ~EMACS/macros/crypt references the crypt macro
557: package.
558:
559: Emacs will now take a full path name to specify the terminal
560: description file either in the TERM environment variable or
561: with the M-t command. This allows a user who does not have
562: control of the terminals database to customize his own
563: terminal description to meet special needs.
564:
565: Emacs now responds to a break signal. When a break is detected,
566: emacs stops what it is doing and prompts the user. You have 5 options:
567:
568: 'y' or ' ' causes a "recursive edit" to be invoked on top of
569: whatever you were doing. Entering ^Z from the recursive
570: edit will return you to the break message.
571:
572: 'n' (no break) causes emacs to resume whatever was in
573: progress when break was detected.
574:
575: '^G' (quit) causes emacs to abandon what was interrupted and
576: unwind to the top level. Any macros or init files being
577: executed are abandoned.
578:
579: '^Z' Causes emacs to exit, after asking about saving any
580: modified buffers.
581:
582: '^]' Causes emacs to crash leaving behind a core dump. (Not
583: terribly useful except for my debugging!)
584:
585: This allows you to interrupt a looping macro or long running search
586: and to escape from it if necessary.
587:
588: MAILER parameter: If you set the environment variable $MAILER,
589: emacs will take it as the name of the command to run to send mail
590: when M-^M is invoked.
591:
592: More editing for string parameters: (3/1/82)
593:
594: You can now edit string-valued parameters (Like filenames or
595: unix commands) Using ^A, ^E, ^F, ^B, ^D, ^K ^U and ^?
596: If you type characters in the middle of a line, they are
597: inserted in place.
598:
599: Keyboard Macros: (6/15/82)
600:
601: You can now tell emacs to remember a sequence of keystrokes
602: to be re-executed whenever you want. ^X( tells emacs to
603: start remembering, ^X) ends the remembered sequence, and ^XE
604: executes it. ^X( and ^X) do not interfere with normal
605: editing, however the saving causes some overhead, as
606: characters received from the keyboard are written one at a
607: time into a file ($HOME/.emacs_kbd) to be re-invoked. Note
608: that you can use this feature to record a backup script of
609: your editing session.
610:
611: Picture Editing Modes: (6/6/82)
612:
613: Two new modes have been added to facilitate editing of pictures:
614:
615: "picture" mode treats the buffer as an electronic blackboard
616: extending infinitely to the right and down. The screen is a
617: window into this blackboard. Text to the right of the window is
618: not shown (As in normal mode, a ! appears at the right margin,
619: but the rest of the line is invisible.) The horizontal position
620: of the left most character position displayed is given on the
621: mode line to the left of the editor name, if it is not zero.
622: The screen automatically scrolls left or right to keep the
623: cursor in view. Several commands behave differently in
624: picture mode:
625:
626: ^N/^P These keep the same character position. If the line
627: being moved to is not long enough, it is extended.
628:
629: ^F/^B These will not go off of the current line. Movement
630: to the right causes the line to extend, movement to
631: the left stops at the left margin.
632:
633: Deletions and ^Y. These treat the region to be deleted as a
634: rectangle on the screen. For example, ^W takes the
635: mark as one corner and the cursor position as the
636: other corner of a rectangle and deletes its
637: contents. Likewise, ^Y retrieves text in the same
638: fashion. (This makes most sense with nodelete mode
639: and overwrite mode. See below).
640:
641: "nodelete" mode directs emacs not to remove text that is
642: deleted via text deletion commands, but to overwrite it with
643: blanks. This should probably be the behavior associated
644: with overwrite mode, but for compatibility, they are treated
645: separaterly.
646:
647: These two modes are intended to work together with overwrite
648: mode to give you an editor designed to work with two
649: dimensional displays of textual information. Using these
650: modes in other combinations may cause somewhat strange
651: behavior. In addition, commands may not behave exactly as
652: expected if the file being edited contains tabs, backspaces,
653: or control and meta characters. If this is a serious
654: problem, I can consider fixing it, but this would not be a
655: simple fix!
656:
657: Enjoy
658:
659: SUBJECT: changes in emacs_4.6
660:
661: Dired now does recursive edits in the same process, allowing you to
662: peruse a directory structure much quicker. If you try to read a
663: file with dired, it will display the contents, not the directory
664: listing.
665:
666: Emacs has some hooks to interface to the blit terminal. These
667: include a new command (^Xg) for use in positioning from input from
668: the mouse, and a new method of spewing out raw text to the terminal
669: (M-3^X<) that can be used to download control information directly
670: into the terminal, and a feature that enables emacs to discover the
671: window size of the current layer. For more information, see the
672: blit.info file in the macros directory.
673:
674: Emacs will read and write encrypted files via the unix crypt
675: program. The command ^Xk prompts for an encryption key. All
676: subsequent reads, writes, and saves use that key in saving. This
677: also applies to files saved in case of crashes, and to the temporary
678: files used by emacs (though the encryption algorithm used for
679: temporary files is not the standard one). Running emacs with the
680: command line flag "-x" will cause emacs to prompt for a key name
681: before reading the file specified on the command line. For both
682: this and ^Xk, the key is echoed on the screen, but disappears as
683: soon as you hit return.
684:
685: Performance on editing large files should be improved substantially.
686: Startup for all size files should be faster.
687:
688: There is a new option to querry replace. Typing <escape> to the
689: prompt during querry replace will cause it to ask for a new string
690: to substitute. Unless you type ^G, this will become the new string
691: to substitute in subsequent instances (^G exits querry replace).
692:
693: Lowercase letter command: M-l. Converts the next character to lower
694: case.
695:
696: Screen goto command: ^Xg
697:
698: This command goes to a screen position. It is intended to
699: help interface to terminals with a mouse, or other
700: positioning device. The command takes its argument and
701: decodes it as: Row=arg%128,Col=arg/128, where row 0,col 0 is
702: the upper left hand corner of the screen. It then goes to
703: the requested position, changing windows if appropriate.
704: Attempts to position to most "illegal" positions result in
705: going to the nearest legal position, however positioning
706: into the echo area or off the bottom of the screen result in
707: no movement.
708:
709: The display of time and "you have mail" has been changed somewhat.
710: The effect should be that both messages will now appear on the line
711: below the mode line when appropriate, and both will be updated when
712: your terminal sits idle. You may notice the mail message appearing
713: and disappearing at different times than it did before.
714:
715: New Modes:
716:
717: ctl_char: The character to be used to specify that the next
718: character is to be made a control character when
719: controlify mode is on. The mode is the ascii value
720: of the character.
721:
722: flow_lim: An integer specifying control over xon/xoff flow
723: control. If flow_lim is non-zero, emacs will enable
724: xon/xoff flow control whenever more than flow_lim
725: characters are sent to the terminal at one time.
726: This will also cause typeahead of ^S or ^Q to be
727: mis-interpreted. This mode should be set only if
728: xon/xoff flow control is absolutely required for
729: correct operation. Under normal conditions, emacs
730: supplies sufficient padding to terminals to allow
731: operation at all speeds without xon/xoff flow
732: control.
733:
734: eofnl: an on/off mode specifying that a newline will be
735: appended to any file written from a buffer not
736: containing a newline. This mode defaults to ON. If
737: you want to edit files that you do not want to end
738: in a newline, turn this mode off.
739:
740: SUBJECT: changes in emacs_4.7
741:
742: 4.6a,b,c: Added checks on reading/writing files for concurrent
743: access by other processes. Emacs will complain if
744: you try and write to something that someone modified
745: while you were editing it. It will not let you
746: overwrite the other changes. You must save your
747: buffer in some other file, then find out what's
748: wrong.
749:
750: 4.6d: Lots of minor bug fixes, including fixes to dired.
751:
752:
753: 4.6d: Macro trace command (^XT). This command traces the
754: execution of the next command. Each primitave
755: command is printed as it is executed, along with the
756: argument and result. Retrievals from the kill stack
757: are also displayed so that you can see the arguments
758: passed to commands that take string arguments.
759: Emacs pauses after every command for you to hit a
760: key.
761:
762: 4.7: Improved macro capabilities. A macro compiler that
763: compiles a lisp like language into the familiar and
764: uncomprehensible macro language of the past. This
765: is separately described (in the nroff file
766: ecompile). In connection with this change, the
767: following additions/changes were made to the basic
768: macro language:
769:
770: a) Expanded naming. There is now no limit on
771: the number of named macros. calling/called
772: names must matched exactly now. (The old
773: system allowed any prefix, and just caused
774: confusion.)
775: b) New numeric operations for bitwise and, or,
776: and xor. (see macro.mm for details)
777:
778: c) New string operations for append strings,
779: substring, index, and string length.
780:
781: d) New operation to convert strings to pointers
782: and vice versa. This supports the string
783: variables.
784:
785: e) Named global variables (seem macro
786: documentation for details)
787:
788: new modes:
789:
790: autoload mode (defaults to on)
791:
792: causes a call of a macro by name from another macro
793: to try to load a file with the same name as the
794: macro from either the directory specified by
795: environment variable $EMACS_LIB, or the directory
796: ~EMACS/macros.
797:
798: 4.7: Display enhancement. Emacs will now display the current line
799: first whenever re-drawing a large portion of the screen, provided
800: that your terminal has either insert/delete line or selective
801: scrolling capability.
802:
803: Subject: New features in emacs versions 4.8 and 4.9
804:
805: 1) Undo command. M-u will undo the last significant text
806: change. Deletions, insertions, the effect of m-y, can all
807: be undone. Replacements can sometimes be undone. (If there
808: weren't more than about 10 individual replacements done).
809: Undo is it's own inverse.
810:
811: 2) Macro hooks. Macros defined with particular names will be
812: invoked automatically under appropriate circumstances,
813: allowing you to customize the behavior of emacs.
814:
815: 3) New macro programming commands:
816:
817: format -- do string format conversion, substituting
818: parameter strings for format specifiers.
819:
820: (unget-character <arg>) pushes a character back onto the
821: input queue.
822:
823: input-count Returns the number of characters typed and not
824: yet processed by emacs.
825:
826: window-top screen-line of top of window
827: window-bottom screen-line at bottom of window
828: first-visible-line file-line at top of window
829: last-visible-line file-line at bottom of window
830:
831: (format <format> <string 1> <string 2 > ...)
832: This is a kind of primitive printf allowing you to
833: substitute string arguments into a format string.
834:
835: Several macro compiler bugs were fixed, allowing more
836: flexible syntax and avoiding errors that caused coredumps in
837: earlier versions.
838:
839: Due to changes in the ways that key bindings are done,
840: macros should now run about 3 times as fast as they did in
841: previous versions.
842:
843: 4) Berkeley unix tty I/O changes. Emacs now supports flow_lim
844: mode, handles break from the keyboard, and updates the time
845: and mail messages while the terminal is idle on 4.2BSD
846: systems as well as on AT&T unix. As a result of this
847: change, the mark command cannot be typed as ^@ on the
848: keyboard from berkeley unix systems. Please use meta-space
849: instead. (^@ and meta-space both continue to work in macros
850: as usual).
851:
852: 5 (11/1) 7bit_ascii mode: This mode changes the display of meta
853: characters, showing them as underlined rather than prefixed
854: with M-, to make displays of files using the high order bit
855: for graphics or format control more readable.
856:
857:
858: 6 New command: M-^Z. This command causes emacs to try to suspend
859: itself and return control to the shell on any system
860: using berkeley job control, or on a system using
861: "shl". On systems using "shl", emacs will print a
862: message requesting you to type your normal character
863: for suspending jobs, while on berkeley systems,
864: emacs suspends itself automatically.
865:
866: 7 New command -- M-0M-$. This command runs a sub-process in a buffer
867: on emacs. The process is started and runs
868: assynchronously. All output that is produced is
869: appended to the buffer. You can send input to the
870: sub-process by entering a line of text and hitting
871: return in the buffer in which it is run, or by using
872: the ^X^T command to send text to that buffer. The
873: mark in this buffer is maintained at the end of the
874: last output from the process. When you hit return,
875: if you are on the same line as the mark, everything
876: after the mark is sent. This avoids sending back
877: prompts typed by the process. (If you are anywhere
878: else, it sends the whole line.)
879:
880: Key Bindings: As of version 4.9, the key bindings used by macros
881: are different from those of the terminal. This
882: allows you to re-map the keyboard without
883: interfering with the execution of macros. Macro
884: code will use the built-in command attached to a key
885: (if any), no matter how the keyboard may have been
886: re-mapped by changing key bindings around with M-:,
887: and no matter what macros have been bound to
888: keyboard keys. If there is no default binding, and
889: if there is a macro bound to the key, then it will
890: execute the macro. You can restore the default
891: keyboard key bindings with by invoking the M-:
892: command with an argument of 0.
893:
894:
895: Macros: Many macros have been enhanced, and source is now
896: available for more of them.
897:
898:
899: Of particular interest are the new netty and
900: emacsterm macros for use with blits and dmd 5620
901: terminals. For documentation, see
902: ~EMACS/macro_source/blit-or-dmd. Also included are
903: new macros for lisp editing and for editing of emacs
904: macros. These provide the parentheses matching and
905: indenting functions of the old lisp macros, plus
906: some new functions for navigating in a lisp file and
907: interacting with a lisp interpreter running in a
908: buffer.
909:
910: Documentation: The users manual and macros manual have both been
911: completely rewritten to try to achieve a logical
912: organization rather than a historical one.
913:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.