📄 oonews
字号:
Old GNU Emacs NEWS -- history of user-visible changes thru version 15.Copyright (C) 1985 Richard M. Stallman.See the end for copying conditions.Changes in Emacs 15* Emacs now runs on Sun and Megatest 68000 systems; also on at least one 16000 system running 4.2.* Emacs now alters the output-start and output-stop characters to prevent C-s and C-q from being considered as flow control by cretinous rlogin software in 4.2.* It is now possible convert Mocklisp code (for Gosling Emacs) to Lisp code that can run in GNU Emacs. M-x convert-mocklisp-buffer converts the contents of the current buffer from Mocklisp to GNU Emacs Lisp. You should then save the converted buffer with C-x C-w under a name ending in ".el" There are probably some Mocklisp constructs that are not handled. If you encounter one, feel free to report the failure as a bug. The construct will be handled in a future Emacs release, if that is not not too hard to do. Note that lisp code converted from Mocklisp code will not necessarily run as fast as code specifically written for GNU Emacs, nor will it use the many features of GNU Emacs which are not present in Gosling's emacs. (In particular, the byte-compiler (m-x byte-compile-file) knows little about compilation of code directly converted from mocklisp.) It is envisaged that old mocklisp code will be incrementally converted to GNU lisp code, with M-x convert-mocklisp-buffer being the first step in this process.* Control-x n (narrow-to-region) is now by default a disabled command. This means that, if you issue this command, it will ask whether you really mean it. You have the opportunity to enable the command permanently at that time, so you will not be asked again. This will place the form "(put 'narrow-to-region 'disabled nil)" in your .emacs file.* Tags now prompts for the tag table file name to use. All the tags commands ask for the tag table file name if you have not yet specified one. Also, the command M-x visit-tag-table can now be used to specify the tag table file name initially, or to switch to a new tag table.* If truncate-partial-width-windows is non-nil (as it intially is), all windows less than the full screen width (that is, made by side-by-side splitting) truncate lines rather than continuing them.* Emacs now checks for Lisp stack overflow to avoid fatal errors. The depth in eval, apply and funcall may not exceed max-lisp-eval-depth. The depth in variable bindings and unwind-protects may not exceed max-specpdl-size. If either limit is exceeded, an error occurs. You can set the limits to larger values if you wish, but if you make them too large, you are vulnerable to a fatal error if you invoke Lisp code that does infinite recursion.* New hooks find-file-hook and write-file-hook. Both of these variables if non-nil should be functions of no arguments. At the time they are called (current-buffer) will be the buffer being read or written respectively. find-file-hook is called whenever a file is read into its own buffer, such as by calling find-file, revert-buffer, etc. It is not called by functions such as insert-file which do not read the file into a buffer of its own. find-file-hook is called after the file has been read in and its local variables (if any) have been processed. write-file-hook is called just before writing out a file from a buffer.* The initial value of shell-prompt-pattern is now "^[^#$%>]*[#$%>] *"* If the .emacs file sets inhibit-startup-message to non-nil, the messages normally printed by Emacs at startup time are inhibited.* Facility for run-time conditionalization on the basis of emacs features. The new variable features is a list of symbols which represent "features" of the executing emacs, for use in run-time conditionalization. The function featurep of one argument may be used to test for the presence of a feature. It is just the same as (not (null (memq FEATURE features))) where FEATURE is its argument. For example, (if (featurep 'magic-window-hack) (transmogrify-window 'vertical) (split-window-vertically)) The function provide of one argument "announces" that FEATURE is present. It is much the same as (if (not (featurep FEATURE)) (setq features (cons FEATURE features))) The function require with arguments FEATURE and FILE-NAME loads FILE-NAME (which should contain the form (provide FEATURE)) unless FEATURE is present. It is much the same as (if (not (featurep FEATURE)) (progn (load FILE-NAME) (if (not featurep FEATURE) (error ...)))) FILE-NAME is optional and defaults to FEATURE.* New function load-average. This returns a list of three integers, which are the current 1 minute, 5 minute and 15 minute load averages, each multiplied by a hundred (since normally they are floating point numbers).* Per-terminal libraries loaded automatically. Emacs when starting up on terminal type T automatically loads a library named term-T. T is the value of the TERM environment variable. Thus, on terminal type vt100, Emacs would do (load "term-vt100" t t). Such libraries are good places to set the character translation table. It is a bad idea to redefine lots of commands in a per-terminal library, since this affects all users. Instead, define a command to do the redefinitions and let the user's init file, which is loaded later, call that command or not, as the user prefers.* Programmer's note: detecting killed buffers. Buffers are eliminated by explicitly killing them, using the function kill-buffer. This does not eliminate or affect the pointers to the buffer which may exist in list structure. If you have a pointer to a buffer and wish to tell whether the buffer has been killed, use the function buffer-name. It returns nil on a killed buffer, and a string on a live buffer.* New ways to access the last command input character. The function last-key-struck, which used to return the last input character that was read by command input, is eliminated. Instead, you can find this information as the value of the variable last-command-char. (This variable used to be called last-key). Another new variable, last-input-char, holds the last character read from the command input stream regardless of what it was read for. last-input-char and last-command-char are different only inside a command that has called read-char to read input.* The new switch -kill causes Emacs to exit after processing the preceding command line arguments. Thus, emacs -l lib data -e do-it -kill means to load lib, find file data, call do-it on no arguments, and then exit.* The config.h file has been modularized. Options that depend on the machine you are running on are defined in a file whose name starts with "m-", such as m-vax.h. Options that depend on the operating system software version you are running on are defined in a file whose name starts with "s-", such as s-bsd4.2.h. config.h includes one m- file and one s- file. It also defines a few other options whose values do not follow from the machine type and system type being used. Installers normally will have to select the correct m- and s- files but will never have to change their contents.* Termcap AL and DL strings are understood. If the termcap entry defines AL and DL strings, for insertion and deletion of multiple lines in one blow, Emacs now uses them. This matters most on certain bit map display terminals for which scrolling is comparatively slow.* Bias against scrolling screen far on fast terminals. Emacs now prefers to redraw a few lines rather than shift them a long distance on the screen, when the terminal is fast.* New major mode, mim-mode. This major mode is for editing MDL code. Perhaps a MDL user can explain why it is not called mdl-mode. You must load the library mim-mode explicitly to use this.* GNU documentation formatter `texinfo'. The `texinfo' library defines a format for documentation files which can be passed through Tex to make a printed manual or passed through texinfo to make an Info file. Texinfo is documented fully by its own Info file; compare this file with its source, texinfo.texinfo, for additional guidance. All documentation files for GNU utilities should be written in texinfo input format. Tex processing of texinfo files requires the Botex macro package. This is not ready for distribution yet, but will appear at a later time.* New function read-from-string (emacs 15.29) read-from-string takes three arguments: a string to read from, and optionally start and end indices which delimit a substring from which to read. (They default to 0 and the length of the string, respectively.) This function returns a cons cell whose car is the object produced by reading from the string and whose cdr is a number giving the index in the string of the first character not read. That index may be passed as the second argument to a later call to read-from-string to read the next form represented by the string. In addition, the function read now accepts a string as its argument. In this case, it calls read-from-string on the whole string, and returns the car of the result. (ie the actual object read.)Changes in Emacs 14* Completion now prints various messages such as [Sole Completion] or [Next Character Not Unique] to describe the results obtained. These messages appear after the text in the minibuffer, and remain on the screen until a few seconds go by or you type a key.* The buffer-read-only flag is implemented. Setting or binding this per-buffer variable to a non-nil value makes illegal any operation which would modify the textual content of the buffer. (Such operations signal a buffer-read-only error) The read-only state of a buffer may be altered using toggle-read-only (C-x C-q) The buffers used by Rmail, Dired, Rnews, and Info are now read-only by default to prevent accidental damage to the information in those buffers.* Functions car-safe and cdr-safe. These functions are like car and cdr when the argument is a cons. Given an argument not a cons, car-safe always returns nil, with no error; the same for cdr-safe.* The new function user-real-login-name returns the name corresponding to the real uid of the Emacs process. This is usually the same as what user-login-name returns; however, when Emacs is invoked from su, user-real-login-name returns "root" but user-login-name returns the name of the user who invoked su.Changes in Emacs 13* There is a new version numbering scheme. What used to be the first version number, which was 1, has been discarded since it does not seem that I need three levels of version number. However, a new third version number has been added to represent changes by user sites. This number will always be zero in Emacs when I distribute it; it will be incremented each time Emacs is built at another site.* There is now a reader syntax for Meta characters: \M-CHAR means CHAR or'ed with the Meta bit. For example: ?\M-x is (+ ?x 128) ?\M-\n is (+ ?\n 128) ?\M-\^f is (+ ?\^f 128) This syntax can be used in strings too. Note, however, that Meta characters are not meaningful in key sequences being passed to define-key or lookup-key; you must use ESC characters (\e) in them instead. ?\C- can be used likewise for control characters. (13.9)* Installation change The string "../lisp" now adds to the front of the load-path used for searching for Lisp files during Emacs initialization. It used to replace the path specified in paths.h entirely. Now the directory ../lisp is searched first and the directoris specified in paths.h are searched afterward.Changes in Emacs 1.12* There is a new installation procedure. See the file INSTALL that comes in the top level directory in the tar file or tape.* The Meta key is now supported on terminals that have it. This is a shift key which causes the high bit to be turned on in all input characters typed while it is held down. read-char now returns a value in the range 128-255 if a Meta character is typed. When interpreted as command input, a Meta character is equivalent to a two character
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -