z@cca.UUCP (Steve Zimmerman) (03/14/84)
Version 162.43z of CCA EMACS has now been released. This version contains the following new features: File version numbers As Unix has moved more into the arena of large operating systems, one feature that has been noticeably lacking is automatic numbering of file versions. In this scheme, when a new file is created with the same name as an existing file, or when an existing file is modified, instead of the existing file being replaced with the new file, a file is created with the same name as the existing file but with a higher version number. This feature is usually implemented directly in the operating system. However, EMACS has now implemented this feature at the user level as an extension of the currently existing backup file facility. If the new variable File Versions is set to a positive number, EMACS will keep that many numbered versions around as backup files. It does so by appending a number directly after the tilde in the backup file name; succeeding backups receive increasingly higher numbers. For easy reference, the highest numbered backup file is always linked to a standard backup file name that ends only in a tilde. Associated with this new feature is a modification to the DIRED B command, which places deletion marks in front of backup files. The B command with no argument will now place deletion marks in front of all backup versions of the current file, which is defined to be the file named on the line where the cursor is located. If given an argument, the B command will place deletion marks in front of all backup versions of all files. Buffer and file name completion EMACS now supports full buffer and file name completion for all commands that prompt for buffer or file names. This feature works essentially the same as M-X command name completion, except that Space has no special meaning. Typing an Escape while entering the buffer or file name will cause EMACS to complete as much of the name is as unambiguous; if EMACS is able to complete the whole name, it prints a dollar sign at the end. If EMACS is unable to complete the name any more than it is already typed in, it beeps. Typing a question mark at any point will cause EMACS to list the possible valid completions for the name at this point. Automatic Buffer Names When the Find File command is used, EMACS uses the last component of the file name to create a name for the file's buffer. If the buffer already exists and contains a different file, EMACS will ask the user what name to use for the new buffer instead. If the new variable Automatic Buffer Names is set, EMACS will not ask the user, but will instead create a new buffer name by appending a unique number (starting with 2) to the last component of the file name. C Mode enhancements The default size of an indentation level for C mode is eight spaces. Up until now, the only way to change this was by modifying the size of a tab stop. The disadvantage of this method was that the indentation level still ended up being eight spaces when the file was printed out or examined by a program other than EMACS. The new variable C Indent has been introduced to solve this problem. C Indent is by default eight spaces, but can be set to any number, and represents the actual number of spaces in an indentation level. EMACS will indent to the proper level by using the optimum combination of spaces and tabs unless the variable Indent Using Tabs is zero, in which case it will use all spaces. When C Indent is set to its default value of eight, unindenting a level is easy, as typing Delete will delete a tab stop and thereby unindent exactly one level. When C Indent is anything else, unindenting a level is no longer so easy. For example, if C Indent is four, the user ends up either deleting four spaces, or deleting a tab and inserting four spaces. For this reason, the command C-C - (^R Unindent for C) has been introduced. C-C - will unindent exactly one indentation level, breaking up tabs if necessary. If given an argument, C-C - will unindent that many indentation levels. Ada Mode Up until now, the command Set Case for Ada always adjusted the case of the current line. This command has now been modified to accept positive or negative arguments, adjusting the case of that many lines forward or backward. Autoarg Mode Autoarg mode means that you don't need to type C-U to specify a numeric argument. Instead, you type just the digits. Digits followed by an ordinary inserting character are themselves inserted, but digits followed by an Escape or Control character serve as an argument to it and are not inserted. A minus sign can also be part of an argument, but only at the beginning. If you type a minus sign following some digits, both the digits and the minus sign are inserted. To use Autoarg Mode, set the variable Autoarg Mode nonzero. Autoargument digits echo at the bottom of the screen; the first nondigit causes them to be inserted or uses them as an argument. To insert some digits and nothing else, you must follow them with a Space and then rub it out. C-G cancels the digits, while Rubout inserts them all and then rubs out the last. Changing directories If you like to have EMACS automatically set a buffer's default directory to be that of the file that it contains when EMACS finds a file in another window, you may want to set the variable Change to File's Directory. This causes the C-X 4 F and C-C 4 F commands to execute the command Find File in Directory to read the file into the buffer, instead of using the default Find File command. Character searches EMACS now has two new search commands, ^R Character Search and ^R Reverse Character Search, which are useful for searching forward or backward for a single character. When these commands are executed, they read a single character from the terminal and then immediately search for that character. Their behavior is exactly the same as if you had started an incremental search and then exited after typing the first character. After invoking a character search, a C-A can be used to turn the search into a string search, a C-R can be used to reverse the direction of the search, a C-S can be used to search for the last character searched for by one of these commands, and a C-Q can be used to quote the next character. These two commands are not normally bound to any keys; many people who use them like to bind them to C-S and C-R and then use the C-A option of these commands to enter a full string search when necessary. ---------------------- Elisp Excellent progress is being made on the Elisp extension language for CCA EMACS. The core of the interpreter is now operational, and the entire extension language should be ready for release in a couple of months. Elisp is a subset of Common Lisp, and will contain all the basic functions of a true Lisp.