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