X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=info%2Fxemacs.info-8;h=ceb42a914a30a87f9aed550235f66d1f05ba2103;hb=4ed57cfee6165320a51f1dd2432f2cc610d0bfcf;hp=7f8258ba200119daa42d957073fabda623a1a446;hpb=376658ea71d16dced8acff36c3e385ac3738d868;p=chise%2Fxemacs-chise.git- diff --git a/info/xemacs.info-8 b/info/xemacs.info-8 index 7f8258b..ceb42a9 100644 --- a/info/xemacs.info-8 +++ b/info/xemacs.info-8 @@ -1,4 +1,4 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from +This is ../info/xemacs.info, produced by makeinfo version 4.0 from xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,6 +30,644 @@ versions, except that the sections entitled "The GNU Manifesto", translation approved by the author instead of in the original English.  +File: xemacs.info, Node: Variables for Check-in/out, Next: Log Entries, Prev: Editing with VC, Up: Version Control + +Variables Affecting Check-in and Check-out +------------------------------------------ + + If `vc-suppress-confirm' is non-`nil', then `C-x C-q' and `C-x v i' +can save the current buffer without asking, and `C-x v u' also operates +without asking for confirmation. (This variable does not affect `C-x v +c'; that is so drastic that it should always ask for confirmation.) + + VC mode does much of its work by running the shell commands for RCS +and SCCS. If `vc-command-messages' is non-`nil', VC displays messages +to indicate which shell commands it runs, and additional messages when +the commands finish. + + Normally, VC assumes that it can deduce the locked/unlocked state of +files by looking at the file permissions of the work file; this is +fast. However, if the `RCS' or `SCCS' subdirectory is actually a +symbolic link, then VC does not trust the file permissions to reflect +this status. + + You can specify the criterion for whether to trust the file +permissions by setting the variable `vc-mistrust-permissions'. Its +value may be `t' (always mistrust the file permissions and check the +master file), `nil' (always trust the file permissions), or a function +of one argument which makes the decision. The argument is the directory +name of the `RCS' or `SCCS' subdirectory. A non-`nil' value from the +function says to mistrust the file permissions. + + If you find that the file permissions of work files are changed +erroneously, set `vc-mistrust-permissions' to `t'. Then VC always +checks the master file to determine the file's status. + + You can specify additional directories to search for version control +programs by setting the variable `vc-path'. These directories are +searched before the usual search path. The proper result usually +happens automatically. + + +File: xemacs.info, Node: Log Entries, Next: Change Logs and VC, Prev: Variables for Check-in/out, Up: Version Control + +Log Entries +----------- + + When you're editing an initial comment or log entry for inclusion in +a master file, finish your entry by typing `C-c C-c'. + +`C-c C-c' + Finish the comment edit normally (`vc-finish-logentry'). This + finishes check-in. + + To abort check-in, just don't type `C-c C-c' in that buffer. You +can switch buffers and do other editing. As long as you don't try to +check in another file, the entry you were editing remains in its +buffer, and you can go back to that buffer at any time to complete the +check-in. + + If you change several source files for the same reason, it is often +convenient to specify the same log entry for many of the files. To do +this, use the history of previous log entries. The commands `M-n', +`M-p', `M-s' and `M-r' for doing this work just like the minibuffer +history commands (except that these versions are used outside the +minibuffer). + + Each time you check in a file, the log entry buffer is put into VC +Log mode, which involves running two hooks: `text-mode-hook' and +`vc-log-mode-hook'. + + +File: xemacs.info, Node: Change Logs and VC, Next: Old Versions, Prev: Log Entries, Up: Version Control + +Change Logs and VC +------------------ + + If you use RCS for a program and also maintain a change log file for +it (*note Change Log::), you can generate change log entries +automatically from the version control log entries: + +`C-x v a' + Visit the current directory's change log file and create new + entries for versions checked in since the most recent entry in the + change log file (`vc-update-change-log'). + + This command works with RCS only; it does not work with SCCS. + + For example, suppose the first line of `ChangeLog' is dated 10 April +1992, and that the only check-in since then was by Nathaniel Bowditch +to `rcs2log' on 8 May 1992 with log text `Ignore log messages that +start with `#'.'. Then `C-x v a' visits `ChangeLog' and inserts text +like this: + + Fri May 8 21:45:00 1992 Nathaniel Bowditch (nat@apn.org) + + * rcs2log: Ignore log messages that start with `#'. + +You can then edit the new change log entry further as you wish. + + Normally, the log entry for file `foo' is displayed as `* foo: TEXT +OF LOG ENTRY'. The `:' after `foo' is omitted if the text of the log +entry starts with `(FUNCTIONNAME): '. For example, if the log entry +for `vc.el' is `(vc-do-command): Check call-process status.', then the +text in `ChangeLog' looks like this: + + Wed May 6 10:53:00 1992 Nathaniel Bowditch (nat@apn.org) + + * vc.el (vc-do-command): Check call-process status. + + When `C-x v a' adds several change log entries at once, it groups +related log entries together if they all are checked in by the same +author at nearly the same time. If the log entries for several such +files all have the same text, it coalesces them into a single entry. +For example, suppose the most recent checkins have the following log +entries: + +For `vc.texinfo': + Fix expansion typos. +For `vc.el': + Don't call expand-file-name. +For `vc-hooks.el': + Don't call expand-file-name. + + They appear like this in `ChangeLog': + + Wed Apr 1 08:57:59 1992 Nathaniel Bowditch (nat@apn.org) + + * vc.texinfo: Fix expansion typos. + + * vc.el, vc-hooks.el: Don't call expand-file-name. + + Normally, `C-x v a' separates log entries by a blank line, but you +can mark several related log entries to be clumped together (without an +intervening blank line) by starting the text of each related log entry +with a label of the form `{CLUMPNAME} '. The label itself is not +copied to `ChangeLog'. For example, suppose the log entries are: + +For `vc.texinfo': + {expand} Fix expansion typos. +For `vc.el': + {expand} Don't call expand-file-name. +For `vc-hooks.el': + {expand} Don't call expand-file-name. + +Then the text in `ChangeLog' looks like this: + + Wed Apr 1 08:57:59 1992 Nathaniel Bowditch (nat@apn.org) + + * vc.texinfo: Fix expansion typos. + * vc.el, vc-hooks.el: Don't call expand-file-name. + + A log entry whose text begins with `#' is not copied to `ChangeLog'. +For example, if you merely fix some misspellings in comments, you can +log the change with an entry beginning with `#' to avoid putting such +trivia into `ChangeLog'. + + +File: xemacs.info, Node: Old Versions, Next: VC Status, Prev: Change Logs and VC, Up: Version Control + +Examining And Comparing Old Versions +------------------------------------ + +`C-x v ~ VERSION ' + Examine version VERSION of the visited file, in a buffer of its + own (`vc-version-other-window'). + +`C-x v =' + Compare the current buffer contents with the latest checked-in + version of the file. + +`C-u C-x v = FILE OLDVERS NEWVERS ' + Compare the specified two versions of FILE. + + You can examine any version of a file by first visiting it, and then +using `C-x v ~ VERSION ' (`vc-version-other-window'). This puts +the text of version VERSION in a file named `FILENAME.~VERSION~', then +visits it in a separate window. + + To compare two versions of a file, use the command `C-x v =' +(`vc-diff'). + + Plain `C-x v =' compares the current buffer contents (saving them in +the file if necessary) with the last checked-in version of the file. +With a prefix argument, `C-x v =' reads a file name and two version +numbers, then compares those versions of the specified file. + + If you supply a directory name instead of the name of a work file, +this command compares the two specified versions of all registered files +in that directory and its subdirectories. You can also specify a +snapshot name (*note Snapshots::) instead of one or both version +numbers. + + You can specify a checked-in version by its number; you can specify +the most recent checked-in version with an empty version number. + + This command works by running the `vcdiff' utility, getting the +options from the variable `diff-switches'. It displays the output in a +special buffer in another window. Unlike the `M-x diff' command, `C-x +v =' does not try to find the changes in the old and new versions. +This is because one or both versions normally do not exist as files. +They exist only in the records of the master file. *Note Comparing +Files::, for more information about `M-x diff'. + + +File: xemacs.info, Node: VC Status, Next: Renaming and VC, Prev: Old Versions, Up: Version Control + +VC Status Commands +------------------ + + To view the detailed version control status and history of a file, +type `C-x v l' (`vc-print-log'). It displays the history of changes to +the current file, including the text of the log entries. The output +appears in a separate window. + + When you are working on a large program, it's often useful to find +all the files that are currently locked, or all the files maintained in +version control at all. You can use `C-x v d' (`vc-directory') to show +all the locked files in or beneath the current directory. This +includes all files that are locked by any user. `C-u C-x v d' lists +all files in or beneath the current directory that are maintained with +version control. + + The list of files is displayed as a buffer that uses an augmented +Dired mode. The names of the users locking various files are shown (in +parentheses) in place of the owner and group. All the normal Dired +commands work in this buffer. Most interactive VC commands work also, +and apply to the file name on the current line. + + The `C-x v v' command (`vc-next-action'), when used in the augmented +Dired buffer, operates on all the marked files (or the file on the +current line). If it operates on more than one file, it handles each +file according to its current state; thus, it may check out one file +and check in another (because it is already checked out). If it has to +check in any files, it reads a single log entry, then uses that text +for all the files being checked in. This can be convenient for +registering or checking in several files at once, as part of the same +change. + + +File: xemacs.info, Node: Renaming and VC, Next: Snapshots, Prev: VC Status, Up: Version Control + +Renaming VC Work Files and Master Files +--------------------------------------- + + When you rename a registered file, you must also rename its master +file correspondingly to get proper results. Use `vc-rename-file' to +rename the source file as you specify, and rename its master file +accordingly. It also updates any snapshots (*note Snapshots::) that +mention the file, so that they use the new name; despite this, the +snapshot thus modified may not completely work (*note Snapshot +Caveats::). + + You cannot use `vc-rename-file' on a file that is locked by someone +else. + + +File: xemacs.info, Node: Snapshots, Next: Version Headers, Prev: Renaming and VC, Up: Version Control + +Snapshots +--------- + + A "snapshot" is a named set of file versions (one for each +registered file) that you can treat as a unit. One important kind of +snapshot is a "release", a (theoretically) stable version of the system +that is ready for distribution to users. + +* Menu: + +* Making Snapshots:: The snapshot facilities. +* Snapshot Caveats:: Things to be careful of when using snapshots. + + +File: xemacs.info, Node: Making Snapshots, Next: Snapshot Caveats, Prev: Snapshots, Up: Snapshots + +Making and Using Snapshots +.......................... + + There are two basic commands for snapshots; one makes a snapshot +with a given name, the other retrieves a named snapshot. + +`C-x v s NAME ' + Define the last saved versions of every registered file in or + under the current directory as a snapshot named NAME + (`vc-create-snapshot'). + +`C-x v r NAME ' + Check out all registered files at or below the current directory + level using whatever versions correspond to the snapshot NAME + (`vc-retrieve-snapshot'). + + This command reports an error if any files are locked at or below + the current directory, without changing anything; this is to avoid + overwriting work in progress. + + A snapshot uses a very small amount of resources--just enough to +record the list of file names and which version belongs to the +snapshot. Thus, you need not hesitate to create snapshots whenever +they are useful. + + You can give a snapshot name as an argument to `C-x v =' or `C-x v +~' (*note Old Versions::). Thus, you can use it to compare a snapshot +against the current files, or two snapshots against each other, or a +snapshot against a named version. + + +File: xemacs.info, Node: Snapshot Caveats, Prev: Making Snapshots, Up: Snapshots + +Snapshot Caveats +................ + + VC's snapshot facilities are modeled on RCS's named-configuration +support. They use RCS's native facilities for this, so under VC +snapshots made using RCS are visible even when you bypass VC. + + For SCCS, VC implements snapshots itself. The files it uses contain +name/file/version-number triples. These snapshots are visible only +through VC. + + A snapshot is a set of checked-in versions. So make sure that all +the files are checked in and not locked when you make a snapshot. + + File renaming and deletion can create some difficulties with +snapshots. This is not a VC-specific problem, but a general design +issue in version control systems that no one has solved very well yet. + + If you rename a registered file, you need to rename its master along +with it (the command `vc-rename-file' does this automatically). If you +are using SCCS, you must also update the records of the snapshot, to +mention the file by its new name (`vc-rename-file' does this, too). An +old snapshot that refers to a master file that no longer exists under +the recorded name is invalid; VC can no longer retrieve it. It would +be beyond the scope of this manual to explain enough about RCS and SCCS +to explain how to update the snapshots by hand. + + Using `vc-rename-file' makes the snapshot remain valid for +retrieval, but it does not solve all problems. For example, some of the +files in the program probably refer to others by name. At the very +least, the makefile probably mentions the file that you renamed. If you +retrieve an old snapshot, the renamed file is retrieved under its new +name, which is not the name that the makefile expects. So the program +won't really work as retrieved. + + +File: xemacs.info, Node: Version Headers, Prev: Snapshots, Up: Version Control + +Inserting Version Control Headers +--------------------------------- + + Sometimes it is convenient to put version identification strings +directly into working files. Certain special strings called "version +headers" are replaced in each successive version by the number of that +version. + + You can use the `C-x v h' command (`vc-insert-headers') to insert a +suitable header string. + +`C-x v h' + Insert headers in a file for use with your version-control system. + + The default header string is `\$Id\$' for RCS and `\%W\%' for SCCS. +(The actual strings inserted do not have the backslashes in them. They +were placed in the Info source file so that the strings don't get +interpreted as version-control headers when the Info source files are +maintained under version control.) You can specify other headers to +insert by setting the variable `vc-header-alist'. Its value is a list +of elements of the form `(PROGRAM . STRING)' where PROGRAM is `RCS' or +`SCCS' and STRING is the string to use. + + Instead of a single string, you can specify a list of strings; then +each string in the list is inserted as a separate header on a line of +its own. + + It is often necessary to use "superfluous" backslashes when writing +the strings that you put in this variable. This is to prevent the +string in the constant from being interpreted as a header itself if the +Emacs Lisp file containing it is maintained with version control. + + Each header is inserted surrounded by tabs, inside comment +delimiters, on a new line at the start of the buffer. Normally the +ordinary comment start and comment end strings of the current mode are +used, but for certain modes, there are special comment delimiters for +this purpose; the variable `vc-comment-alist' specifies them. Each +element of this list has the form `(MODE STARTER ENDER)'. + + The variable `vc-static-header-alist' specifies further strings to +add based on the name of the buffer. Its value should be a list of +elements of the form `(REGEXP . FORMAT)'. Whenever REGEXP matches the +buffer name, FORMAT is inserted as part of the header. A header line +is inserted for each element that matches the buffer name, and for each +string specified by `vc-header-alist'. The header line is made by +processing the string from `vc-header-alist' with the format taken from +the element. The default value for `vc-static-header-alist' is: + + (("\\.c$" . + "\n#ifndef lint\nstatic char vcid[] = \"\%s\";\n\ + #endif /* lint */\n")) + +which specifies insertion of a string of this form: + + + #ifndef lint + static char vcid[] = "STRING"; + #endif /* lint */ + + +File: xemacs.info, Node: ListDir, Next: Comparing Files, Prev: Version Control, Up: Files + +Listing a File Directory +======================== + + Files are organized by Unix into "directories". A "directory +listing" is a list of all the files in a directory. Emacs provides +directory listings in brief format (file names only) and verbose format +(sizes, dates, and authors included). + +`C-x C-d DIR-OR-PATTERN' + Print a brief directory listing (`list-directory'). + +`C-u C-x C-d DIR-OR-PATTERN' + Print a verbose directory listing. + + To print a directory listing, use `C-x C-d' (`list-directory'). +This command prompts in the minibuffer for a file name which is either +a directory to be listed or pattern containing wildcards for the files +to be listed. For example, + + C-x C-d /u2/emacs/etc + +lists all the files in directory `/u2/emacs/etc'. An example of +specifying a file name pattern is: + + C-x C-d /u2/emacs/src/*.c + + Normally, `C-x C-d' prints a brief directory listing containing just +file names. A numeric argument (regardless of value) tells it to print +a verbose listing (like `ls -l'). + + Emacs obtains the text of a directory listing by running `ls' in an +inferior process. Two Emacs variables control the switches passed to +`ls': `list-directory-brief-switches' is a string giving the switches +to use in brief listings (`"-CF"' by default). +`list-directory-verbose-switches' is a string giving the switches to +use in a verbose listing (`"-l"' by default). + + The variable `directory-abbrev-alist' is an alist of abbreviations +for file directories. The list consists of elements of the form `(FROM +. TO)', each meaning to replace `FROM' with `TO' when it appears in a +directory name. This replacement is done when setting up the default +directory of a newly visited file. Every `FROM' string should start +with ``^''. + + Use this feature when you have directories which you normally refer +to via absolute symbolic links. Make `TO' the name of the link, and +`FROM' the name it is linked to. + + +File: xemacs.info, Node: Comparing Files, Next: Dired, Prev: ListDir, Up: Files + +Comparing Files +=============== + + The command `M-x diff' compares two files, displaying the +differences in an Emacs buffer named `*Diff*'. It works by running the +`diff' program, using options taken from the variable `diff-switches', +whose value should be a string. + + The buffer `*Diff*' has Compilation mode as its major mode, so you +can use `C-x `' to visit successive changed locations in the two source +files. You can also move to a particular hunk of changes and type `C-c +C-c' to find the corresponding source location. You can also use the +other special commands of Compilation mode: and for +scrolling, and `M-p' and `M-n' for cursor motion. *Note Compilation::. + + The command `M-x diff-backup' compares a specified file with its most +recent backup. If you specify the name of a backup file, `diff-backup' +compares it with the source file that it is a backup of. + + The command `M-x compare-windows' compares the text in the current +window with that in the next window. Comparison starts at point in each +window. Point moves forward in each window, a character at a time in +each window, until the next characters in the two windows are +different. Then the command is finished. For more information about +windows in Emacs, *Note Windows::. + + With a numeric argument, `compare-windows' ignores changes in +whitespace. If the variable `compare-ignore-case' is non-`nil', it +ignores differences in case as well. + + +File: xemacs.info, Node: Dired, Next: Misc File Ops, Prev: Comparing Files, Up: Files + +Dired, the Directory Editor +=========================== + + Dired makes it easy to delete or visit many of the files in a single +directory at once. It creates an Emacs buffer containing a listing of +the directory. You can use the normal Emacs commands to move around in +this buffer and special Dired commands to operate on the files. + +* Menu: + +* Enter: Dired Enter. How to invoke Dired. +* Edit: Dired Edit. Editing the Dired buffer. +* Deletion: Dired Deletion. Deleting files with Dired. +* Immed: Dired Immed. Other file operations through Dired. + + +File: xemacs.info, Node: Dired Enter, Next: Dired Edit, Prev: Dired, Up: Dired + +Entering Dired +-------------- + + To invoke dired, type `C-x d' or `M-x dired'. The command reads a +directory name or wildcard file name pattern as a minibuffer argument +just like the `list-directory' command, `C-x C-d'. Where `dired' +differs from `list-directory' is in naming the buffer after the +directory name or the wildcard pattern used for the listing, and putting +the buffer into Dired mode so that the special commands of Dired are +available in it. The variable `dired-listing-switches' is a string +used as an argument to `ls' in making the directory; this string must +contain `-l'. + + To display the Dired buffer in another window rather than in the +selected window, use `C-x 4 d' (`dired-other-window)' instead of `C-x +d'. + + +File: xemacs.info, Node: Dired Edit, Next: Dired Deletion, Prev: Dired Enter, Up: Dired + +Editing in Dired +---------------- + + Once the Dired buffer exists, you can switch freely between it and +other Emacs buffers. Whenever the Dired buffer is selected, certain +special commands are provided that operate on files that are listed. +The Dired buffer is "read-only", and inserting text in it is not +useful, so ordinary printing characters such as `d' and `x' are used +for Dired commands. Most Dired commands operate on the file described +by the line that point is on. Some commands perform operations +immediately; others "flag" a file to be operated on later. + + Most Dired commands that operate on the current line's file also +treat a numeric argument as a repeat count, meaning to act on the files +of the next few lines. A negative argument means to operate on the +files of the preceding lines, and leave point on the first of those +lines. + + All the usual Emacs cursor motion commands are available in Dired +buffers. Some special purpose commands are also provided. The keys +`C-n' and `C-p' are redefined so that they try to position the cursor +at the beginning of the filename on the line, rather than at the +beginning of the line. + + For extra convenience, and `n' in Dired are equivalent to +`C-n'. `p' is equivalent to `C-p'. Moving by lines is done so often +in Dired that it deserves to be easy to type. (move up and +unflag) is often useful simply for moving up. + + The `g' command in Dired runs `revert-buffer' to reinitialize the +buffer from the actual disk directory and show any changes made in the +directory by programs other than Dired. All deletion flags in the Dired +buffer are lost when this is done. + + +File: xemacs.info, Node: Dired Deletion, Next: Dired Immed, Prev: Dired Edit, Up: Dired + +Deleting Files With Dired +------------------------- + + The primary use of Dired is to flag files for deletion and then +delete them. + +`d' + Flag this file for deletion. + +`u' + Remove deletion-flag on this line. + +`' + Remove deletion-flag on previous line, moving point to that line. + +`x' + Delete the files that are flagged for deletion. + +`#' + Flag all auto-save files (files whose names start and end with `#') + for deletion (*note Auto Save::). + +`~' + Flag all backup files (files whose names end with `~') for deletion + (*note Backup::). + +`. (Period)' + Flag excess numeric backup files for deletion. The oldest and + newest few backup files of any one file are exempt; the middle + ones are flagged. + + You can flag a file for deletion by moving to the line describing the +file and typing `d' or `C-d'. The deletion flag is visible as a `D' at +the beginning of the line. Point is moved to the beginning of the next +line, so that repeated `d' commands flag successive files. + + The files are flagged for deletion rather than deleted immediately to +avoid the danger of deleting a file accidentally. Until you direct +Dired to delete the flagged files, you can remove deletion flags using +the commands `u' and . `u' works just like `d', but removes flags +rather than making flags. moves upward, removing flags; it is +like `u' with numeric argument automatically negated. + + To delete the flagged files, type `x'. This command first displays a +list of all the file names flagged for deletion, and requests +confirmation with `yes'. Once you confirm, all the flagged files are +deleted, and their lines are deleted from the text of the Dired buffer. +The shortened Dired buffer remains selected. If you answer `no' or +quit with `C-g', you return immediately to Dired, with the deletion +flags still present and no files actually deleted. + + The `#', `~', and `.' commands flag many files for deletion, based +on their names. These commands are useful precisely because they do +not actually delete any files; you can remove the deletion flags from +any flagged files that you really wish to keep. + + `#' flags for deletion all files that appear to have been made by +auto-saving (that is, files whose names begin and end with `#'). `~' +flags for deletion all files that appear to have been made as backups +for files that were edited (that is, files whose names end with `~'). + + `.' (Period) flags just some of the backup files for deletion: only +numeric backups that are not among the oldest few nor the newest few +backups of any one file. Normally `dired-kept-versions' (not +`kept-new-versions'; that applies only when saving) specifies the +number of newest versions of each file to keep, and `kept-old-versions' +specifies the number of oldest versions to keep. Period with a +positive numeric argument, as in `C-u 3 .', specifies the number of +newest versions to keep, overriding `dired-kept-versions'. A negative +numeric argument overrides `kept-old-versions', using minus the value +of the argument to specify the number of oldest versions of each file +to keep. + + File: xemacs.info, Node: Dired Immed, Prev: Dired Deletion, Up: Dired Immediate File Operations in Dired @@ -230,11 +868,11 @@ buffer list: *Help* 1287 Fundamental files.el 23076 Emacs-Lisp /u2/emacs/lisp/files.el % RMAIL 64042 RMAIL /u/rms/RMAIL - *% man 747 Dired /u2/emacs/man/ + *% man 747 Dired /u2/emacs/man/ net.emacs 343885 Fundamental /u/rms/net.emacs fileio.c 27691 C /u2/emacs/src/fileio.c NEWS 67340 Text /u2/emacs/etc/NEWS - *scratch* 0 Lisp Interaction + *scratch* 0 Lisp Interaction Note that the buffer `*Help*' was made by a help request; it is not visiting any file. The buffer `man' was made by Dired on the directory @@ -348,10 +986,10 @@ buffer, the following special commands apply to that buffer: Like `d' but move up afterwards instead of down. `s' - Request to save the buffer. An `S' befor the buffer name on a line - indicates the request. Requested saves actually take place when - you use the `x' command. You can request both saving and deletion - for the same buffer. + Request to save the buffer. An `S' before the buffer name on a + line indicates the request. Requested saves actually take place + when you use the `x' command. You can request both saving and + deletion for the same buffer. `~' Mark buffer "unmodified". The command `~' does this immediately @@ -520,549 +1158,3 @@ supplying a REGISTER argument to `window-configuration-to-register' (`C-x 6'). To return to the window configuration established with `window-configuration-to-register', use `jump-to-register' (`C-x j'). - -File: xemacs.info, Node: Other Window, Next: Pop Up Window, Prev: Split Window, Up: Windows - -Using Other Windows -=================== - -`C-x o' - Select another window (`other-window'). That is the letter `o', - not zero. - -`M-C-v' - Scroll the next window (`scroll-other-window'). - -`M-x compare-windows' - Find the next place where the text in the selected window does not - match the text in the next window. - -`M-x other-window-any-frame N' - Select the Nth different window on any frame. - - To select a different window, use `C-x o' (`other-window'). That is -an `o', for `other', not a zero. When there are more than two windows, -the command moves through all the windows in a cyclic order, generally -top to bottom and left to right. From the rightmost and bottommost -window, it goes back to the one at the upper left corner. A numeric -argument, N, moves several steps in the cyclic order of windows. A -negative numeric argument moves around the cycle in the opposite order. -If the optional second argument ALL-FRAMES is non-`nil', the function -cycles through all frames. When the minibuffer is active, the -minibuffer is the last window in the cycle; you can switch from the -minibuffer window to one of the other windows, and later switch back -and finish supplying the minibuffer argument that is requested. *Note -Minibuffer Edit::. - - The command `M-x other-window-any-frame' also selects the window N -steps away in the cyclic order. However, unlike `other-window', this -command selects a window on the next or previous frame instead of -wrapping around to the top or bottom of the current frame, when there -are no more windows. - - The usual scrolling commands (*note Display::) apply to the selected -window only. `M-C-v' (`scroll-other-window') scrolls the window that -`C-x o' would select. Like `C-v', it takes positive and negative -arguments. - - The command `M-x compare-windows' compares the text in the current -window with the text in the next window. Comparison starts at point in -each window. Point moves forward in each window, a character at a time, -until the next set of characters in the two windows are different. -Then the command is finished. - - A prefix argument IGNORE-WHITESPACE means ignore changes in -whitespace. The variable `compare-windows-whitespace' controls how -whitespace is skipped. - - If `compare-ignore-case' is non-`nil', changes in case are also -ignored. - - -File: xemacs.info, Node: Pop Up Window, Next: Change Window, Prev: Other Window, Up: Windows - -Displaying in Another Window -============================ - - `C-x 4' is a prefix key for commands that select another window -(splitting the window if there is only one) and select a buffer in that -window. Different `C-x 4' commands have different ways of finding the -buffer to select. - -`C-x 4 b BUFNAME ' - Select buffer BUFNAME in another window. This runs - `switch-to-buffer-other-window'. - -`C-x 4 f FILENAME ' - Visit file FILENAME and select its buffer in another window. This - runs `find-file-other-window'. *Note Visiting::. - -`C-x 4 d DIRECTORY ' - Select a Dired buffer for directory DIRECTORY in another window. - This runs `dired-other-window'. *Note Dired::. - -`C-x 4 m' - Start composing a mail message in another window. This runs - `mail-other-window', and its same-window version is `C-x m' (*note - Sending Mail::). - -`C-x 4 .' - Find a tag in the current tag table in another window. This runs - `find-tag-other-window', the multiple-window variant of `M-.' - (*note Tags::). - - If the variable `display-buffer-function' is non-`nil', its value is -the function to call to handle `display-buffer'. It receives two -arguments, the buffer and a flag that if non-`nil' means that the -currently selected window is not acceptable. Commands such as -`switch-to-buffer-other-window' and `find-file-other-window' work using -this function. - - -File: xemacs.info, Node: Change Window, Prev: Pop Up Window, Up: Windows - -Deleting and Rearranging Windows -================================ - -`C-x 0' - Get rid of the selected window (`delete-window'). That is a zero. - If there is more than one Emacs frame, deleting the sole remaining - window on that frame deletes the frame as well. If the current - frame is the only frame, it is not deleted. - -`C-x 1' - Get rid of all windows except the selected one - (`delete-other-windows'). - -`C-x ^' - Make the selected window taller, at the expense of the other(s) - (`enlarge-window'). - -`C-x }' - Make the selected window wider (`enlarge-window-horizontally'). - - To delete a window, type `C-x 0' (`delete-window'). (That is a -zero.) The space occupied by the deleted window is distributed among -the other active windows (but not the minibuffer window, even if that -is active at the time). Once a window is deleted, its attributes are -forgotten; there is no automatic way to make another window of the same -shape or showing the same buffer. The buffer continues to exist, and -you can select it in any window with `C-x b'. - - `C-x 1' (`delete-other-windows') is more powerful than `C-x 0'; it -deletes all the windows except the selected one (and the minibuffer). -The selected window expands to use the whole frame except for the echo -area. - - To readjust the division of space among existing windows, use `C-x -^' (`enlarge-window'). It makes the currently selected window longer -by one line or as many lines as a numeric argument specifies. With a -negative argument, it makes the selected window smaller. `C-x }' -(`enlarge-window-horizontally') makes the selected window wider by the -specified number of columns. The extra screen space given to a window -comes from one of its neighbors, if that is possible; otherwise, all -the competing windows are shrunk in the same proportion. If this makes -some windows too small, those windows are deleted and their space is -divided up. Minimum window size is specified by the variables -`window-min-height' and `window-min-width'. - - You can also resize windows within a frame by clicking the left mouse -button on a modeline, and dragging. - - Clicking the right button on a mode line pops up a menu of common -window manager operations. This menu contains the following options: - -Delete Window - Remove the window above this modeline from the frame. - -Delete Other Windows - Delete all windows on the frame except for the one above this - modeline. - -Split Window - Split the window above the mode line in half, creating another - window. - -Split Window Horizontally - Split the window above the mode line in half horizontally, so that - there will be two windows side-by-side. - -Balance Windows - Readjust the sizes of all windows on the frame until all windows - have roughly the same number of lines. - - -File: xemacs.info, Node: Mule, Next: Major Modes, Prev: Windows, Up: Top - -World Scripts Support -********************* - - If you compile XEmacs with mule option, it supports a wide variety of -world scripts, including Latin script, as well as Arabic script, -Simplified Chinese script (for mainland of China), Traditional Chinese -script (for Taiwan and Hong-Kong), Greek script, Hebrew script, IPA -symbols, Japanese scripts (Hiragana, Katakana and Kanji), Korean scripts -(Hangul and Hanja) and Cyrillic script (for Beylorussian, Bulgarian, -Russian, Serbian and Ukrainian). These features have been merged from -the modified version of Emacs known as MULE (for "MULti-lingual -Enhancement to GNU Emacs"). - -* Menu: - -* Mule Intro:: Basic concepts of Mule. -* Language Environments:: Setting things up for the language you use. -* Input Methods:: Entering text characters not on your keyboard. -* Select Input Method:: Specifying your choice of input methods. -* Coding Systems:: Character set conversion when you read and - write files, and so on. -* Recognize Coding:: How XEmacs figures out which conversion to use. -* Specify Coding:: Various ways to choose which conversion to use. - - -File: xemacs.info, Node: Mule Intro, Next: Language Environments, Prev: Mule, Up: Mule - -Introduction to world scripts -============================= - - The users of these scripts have established many more-or-less -standard coding systems for storing files. XEmacs translates between -the internal character encoding and various other coding systems when -reading and writing files, when exchanging data with subprocesses, and -(in some cases) in the `C-q' command (see below). - - The command `C-h h' (`view-hello-file') displays the file -`etc/HELLO', which shows how to say "hello" in many languages. This -illustrates various scripts. - - Keyboards, even in the countries where these character sets are used, -generally don't have keys for all the characters in them. So XEmacs -supports various "input methods", typically one for each script or -language, to make it convenient to type them. - - The prefix key `C-x ' is used for commands that pertain to -world scripts, coding systems, and input methods. - - -File: xemacs.info, Node: Language Environments, Next: Input Methods, Prev: Mule Intro, Up: Mule - -Language Environments -===================== - - All supported character sets are supported in XEmacs buffers if it is -compile with mule; there is no need to select a particular language in -order to display its characters in an XEmacs buffer. However, it is -important to select a "language environment" in order to set various -defaults. The language environment really represents a choice of -preferred script (more or less) rather that a choice of language. - - The language environment controls which coding systems to recognize -when reading text (*note Recognize Coding::). This applies to files, -incoming mail, netnews, and any other text you read into XEmacs. It may -also specify the default coding system to use when you create a file. -Each language environment also specifies a default input method. - - The command to select a language environment is `M-x -set-language-environment'. It makes no difference which buffer is -current when you use this command, because the effects apply globally to -the XEmacs session. The supported language environments include: - - Chinese-BIG5, Chinese-CNS, Chinese-GB, Cyrillic-ISO, English, - Ethiopic, Greek, Japanese, Korean, Latin-1, Latin-2, Latin-3, - Latin-4, Latin-5. - - Some operating systems let you specify the language you are using by -setting locale environment variables. XEmacs handles one common special -case of this: if your locale name for character types contains the -string `8859-N', XEmacs automatically selects the corresponding -language environment. - - To display information about the effects of a certain language -environment LANG-ENV, use the command `C-h L LANG-ENV ' -(`describe-language-environment'). This tells you which languages this -language environment is useful for, and lists the character sets, -coding systems, and input methods that go with it. It also shows some -sample text to illustrate scripts used in this language environment. -By default, this command describes the chosen language environment. - - -File: xemacs.info, Node: Input Methods, Next: Select Input Method, Prev: Language Environments, Up: Mule - -Input Methods -============= - - An "input method" is a kind of character conversion designed -specifically for interactive input. In XEmacs, typically each language -has its own input method; sometimes several languages which use the same -characters can share one input method. A few languages support several -input methods. - - The simplest kind of input method works by mapping ASCII letters into -another alphabet. This is how the Greek and Russian input methods work. - - A more powerful technique is composition: converting sequences of -characters into one letter. Many European input methods use composition -to produce a single non-ASCII letter from a sequence that consists of a -letter followed by accent characters. For example, some methods convert -the sequence `'a' into a single accented letter. - - The input methods for syllabic scripts typically use mapping followed -by composition. The input methods for Thai and Korean work this way. -First, letters are mapped into symbols for particular sounds or tone -marks; then, sequences of these which make up a whole syllable are -mapped into one syllable sign. - - Chinese and Japanese require more complex methods. In Chinese input -methods, first you enter the phonetic spelling of a Chinese word (in -input method `chinese-py', among others), or a sequence of portions of -the character (input methods `chinese-4corner' and `chinese-sw', and -others). Since one phonetic spelling typically corresponds to many -different Chinese characters, you must select one of the alternatives -using special XEmacs commands. Keys such as `C-f', `C-b', `C-n', -`C-p', and digits have special definitions in this situation, used for -selecting among the alternatives. displays a buffer showing all -the possibilities. - - In Japanese input methods, first you input a whole word using -phonetic spelling; then, after the word is in the buffer, XEmacs -converts it into one or more characters using a large dictionary. One -phonetic spelling corresponds to many differently written Japanese -words, so you must select one of them; use `C-n' and `C-p' to cycle -through the alternatives. - - Sometimes it is useful to cut off input method processing so that the -characters you have just entered will not combine with subsequent -characters. For example, in input method `latin-1-postfix', the -sequence `e '' combines to form an `e' with an accent. What if you -want to enter them as separate characters? - - One way is to type the accent twice; that is a special feature for -entering the separate letter and accent. For example, `e ' '' gives -you the two characters `e''. Another way is to type another letter -after the `e'--something that won't combine with that--and immediately -delete it. For example, you could type `e e '' to get separate -`e' and `''. - - Another method, more general but not quite as easy to type, is to use -`C-\ C-\' between two characters to stop them from combining. This is -the command `C-\' (`toggle-input-method') used twice. *Note Select -Input Method::. - - `C-\ C-\' is especially useful inside an incremental search, because -stops waiting for more characters to combine, and starts searching for -what you have already entered. - - The variables `input-method-highlight-flag' and -`input-method-verbose-flag' control how input methods explain what is -happening. If `input-method-highlight-flag' is non-`nil', the partial -sequence is highlighted in the buffer. If `input-method-verbose-flag' -is non-`nil', the list of possible characters to type next is displayed -in the echo area (but not when you are in the minibuffer). - - -File: xemacs.info, Node: Select Input Method, Next: Coding Systems, Prev: Input Methods, Up: Mule - -Selecting an Input Method -========================= - -`C-\' - Enable or disable use of the selected input method. - -`C-x C-\ METHOD ' - Select a new input method for the current buffer. - -`C-h I METHOD ' -`C-h C-\ METHOD ' - Describe the input method METHOD (`describe-input-method'). By - default, it describes the current input method (if any). - -`M-x list-input-methods' - Display a list of all the supported input methods. - - To choose an input method for the current buffer, use `C-x -C-\' (`select-input-method'). This command reads the input method name -with the minibuffer; the name normally starts with the language -environment that it is meant to be used with. The variable -`current-input-method' records which input method is selected. - - Input methods use various sequences of ASCII characters to stand for -non-ASCII characters. Sometimes it is useful to turn off the input -method temporarily. To do this, type `C-\' (`toggle-input-method'). -To reenable the input method, type `C-\' again. - - If you type `C-\' and you have not yet selected an input method, it -prompts for you to specify one. This has the same effect as using `C-x - C-\' to specify an input method. - - Selecting a language environment specifies a default input method for -use in various buffers. When you have a default input method, you can -select it in the current buffer by typing `C-\'. The variable -`default-input-method' specifies the default input method (`nil' means -there is none). - - Some input methods for alphabetic scripts work by (in effect) -remapping the keyboard to emulate various keyboard layouts commonly used -for those scripts. How to do this remapping properly depends on your -actual keyboard layout. To specify which layout your keyboard has, use -the command `M-x quail-set-keyboard-layout'. - - To display a list of all the supported input methods, type `M-x -list-input-methods'. The list gives information about each input -method, including the string that stands for it in the mode line. - - -File: xemacs.info, Node: Coding Systems, Next: Recognize Coding, Prev: Select Input Method, Up: Mule - -Coding Systems -============== - - Users of various languages have established many more-or-less -standard coding systems for representing them. XEmacs does not use -these coding systems internally; instead, it converts from various -coding systems to its own system when reading data, and converts the -internal coding system to other coding systems when writing data. -Conversion is possible in reading or writing files, in sending or -receiving from the terminal, and in exchanging data with subprocesses. - - XEmacs assigns a name to each coding system. Most coding systems are -used for one language, and the name of the coding system starts with the -language name. Some coding systems are used for several languages; -their names usually start with `iso'. There are also special coding -systems `binary' and `no-conversion' which do not convert printing -characters at all. - - In addition to converting various representations of non-ASCII -characters, a coding system can perform end-of-line conversion. XEmacs -handles three different conventions for how to separate lines in a file: -newline, carriage-return linefeed, and just carriage-return. - -`C-h C CODING ' - Describe coding system CODING. - -`C-h C ' - Describe the coding systems currently in use. - -`M-x list-coding-systems' - Display a list of all the supported coding systems. - - The command `C-h C' (`describe-coding-system') displays information -about particular coding systems. You can specify a coding system name -as argument; alternatively, with an empty argument, it describes the -coding systems currently selected for various purposes, both in the -current buffer and as the defaults, and the priority list for -recognizing coding systems (*note Recognize Coding::). - - To display a list of all the supported coding systems, type `M-x -list-coding-systems'. The list gives information about each coding -system, including the letter that stands for it in the mode line (*note -Mode Line::). - - Each of the coding systems that appear in this list--except for -`binary', which means no conversion of any kind--specifies how and -whether to convert printing characters, but leaves the choice of -end-of-line conversion to be decided based on the contents of each file. -For example, if the file appears to use carriage-return linefeed between -lines, that end-of-line conversion will be used. - - Each of the listed coding systems has three variants which specify -exactly what to do for end-of-line conversion: - -`...-unix' - Don't do any end-of-line conversion; assume the file uses newline - to separate lines. (This is the convention normally used on Unix - and GNU systems.) - -`...-dos' - Assume the file uses carriage-return linefeed to separate lines, - and do the appropriate conversion. (This is the convention - normally used on Microsoft systems.) - -`...-mac' - Assume the file uses carriage-return to separate lines, and do the - appropriate conversion. (This is the convention normally used on - the Macintosh system.) - - These variant coding systems are omitted from the -`list-coding-systems' display for brevity, since they are entirely -predictable. For example, the coding system `iso-8859-1' has variants -`iso-8859-1-unix', `iso-8859-1-dos' and `iso-8859-1-mac'. - - In contrast, the coding system `binary' specifies no character code -conversion at all--none for non-Latin-1 byte values and none for end of -line. This is useful for reading or writing binary files, tar files, -and other files that must be examined verbatim. - - The easiest way to edit a file with no conversion of any kind is with -the `M-x find-file-literally' command. This uses `binary', and also -suppresses other XEmacs features that might convert the file contents -before you see them. *Note Visiting::. - - The coding system `no-conversion' means that the file contains -non-Latin-1 characters stored with the internal XEmacs encoding. It -handles end-of-line conversion based on the data encountered, and has -the usual three variants to specify the kind of end-of-line conversion. - - -File: xemacs.info, Node: Recognize Coding, Next: Specify Coding, Prev: Coding Systems, Up: Mule - -Recognizing Coding Systems -========================== - - Most of the time, XEmacs can recognize which coding system to use for -any given file-once you have specified your preferences. - - Some coding systems can be recognized or distinguished by which byte -sequences appear in the data. However, there are coding systems that -cannot be distinguished, not even potentially. For example, there is no -way to distinguish between Latin-1 and Latin-2; they use the same byte -values with different meanings. - - XEmacs handles this situation by means of a priority list of coding -systems. Whenever XEmacs reads a file, if you do not specify the coding -system to use, XEmacs checks the data against each coding system, -starting with the first in priority and working down the list, until it -finds a coding system that fits the data. Then it converts the file -contents assuming that they are represented in this coding system. - - The priority list of coding systems depends on the selected language -environment (*note Language Environments::). For example, if you use -French, you probably want XEmacs to prefer Latin-1 to Latin-2; if you -use Czech, you probably want Latin-2 to be preferred. This is one of -the reasons to specify a language environment. - - However, you can alter the priority list in detail with the command -`M-x prefer-coding-system'. This command reads the name of a coding -system from the minibuffer, and adds it to the front of the priority -list, so that it is preferred to all others. If you use this command -several times, each use adds one element to the front of the priority -list. - - Sometimes a file name indicates which coding system to use for the -file. The variable `file-coding-system-alist' specifies this -correspondence. There is a special function -`modify-coding-system-alist' for adding elements to this list. For -example, to read and write all `.txt' using the coding system -`china-iso-8bit', you can execute this Lisp expression: - - (modify-coding-system-alist 'file "\\.txt\\'" 'china-iso-8bit) - -The first argument should be `file', the second argument should be a -regular expression that determines which files this applies to, and the -third argument says which coding system to use for these files. - - You can specify the coding system for a particular file using the -`-*-...-*-' construct at the beginning of a file, or a local variables -list at the end (*note File Variables::). You do this by defining a -value for the "variable" named `coding'. XEmacs does not really have a -variable `coding'; instead of setting a variable, it uses the specified -coding system for the file. For example, `-*-mode: C; coding: -iso-8859-1;-*-' specifies use of the iso-8859-1 coding system, as well -as C mode. - - Once XEmacs has chosen a coding system for a buffer, it stores that -coding system in `buffer-file-coding-system' and uses that coding -system, by default, for operations that write from this buffer into a -file. This includes the commands `save-buffer' and `write-region'. If -you want to write files from this buffer using a different coding -system, you can specify a different coding system for the buffer using -`set-buffer-file-coding-system' (*note Specify Coding::). -