-This is ../info/xemacs.info, produced by makeinfo version 3.12s from
+This is ../info/xemacs.info, produced by makeinfo version 4.0b from
xemacs/xemacs.texi.
INFO-DIR-SECTION XEmacs Editor
translation approved by the author instead of in the original English.
\1f
-File: xemacs.info, Node: Specify Coding, Prev: Recognize Coding, Up: Mule
-
-Specifying a Coding System
-==========================
-
- In cases where XEmacs does not automatically choose the right coding
-system, you can use these commands to specify one:
-
-`C-x <RET> f CODING <RET>'
- Use coding system CODING for the visited file in the current
- buffer.
-
-`C-x <RET> c CODING <RET>'
- Specify coding system CODING for the immediately following command.
-
-`C-x <RET> k CODING <RET>'
- Use coding system CODING for keyboard input.
-
-`C-x <RET> t CODING <RET>'
- Use coding system CODING for terminal output.
-
-`C-x <RET> p CODING <RET>'
- Use coding system CODING for subprocess input and output in the
- current buffer.
-
- The command `C-x RET f' (`set-buffer-file-coding-system') specifies
-the file coding system for the current buffer--in other words, which
-coding system to use when saving or rereading the visited file. You
-specify which coding system using the minibuffer. Since this command
-applies to a file you have already visited, it affects only the way the
-file is saved.
-
- Another way to specify the coding system for a file is when you visit
-the file. First use the command `C-x <RET> c'
-(`universal-coding-system-argument'); this command uses the minibuffer
-to read a coding system name. After you exit the minibuffer, the
-specified coding system is used for _the immediately following command_.
-
- So if the immediately following command is `C-x C-f', for example,
-it reads the file using that coding system (and records the coding
-system for when the file is saved). Or if the immediately following
-command is `C-x C-w', it writes the file using that coding system.
-Other file commands affected by a specified coding system include `C-x
-C-i' and `C-x C-v', as well as the other-window variants of `C-x C-f'.
-
- In addition, if you run some file input commands with the precedent
-`C-u', you can specify coding system to read from minibuffer. So if
-the immediately following command is `C-x C-f', for example, it reads
-the file using that coding system (and records the coding system for
-when the file is saved). Other file commands affected by a specified
-coding system include `C-x C-i' and `C-x C-v', as well as the
-other-window variants of `C-x C-f'.
-
- The variable `default-buffer-file-coding-system' specifies the
-choice of coding system to use when you create a new file. It applies
-when you find a new file, and when you create a buffer and then save it
-in a file. Selecting a language environment typically sets this
-variable to a good choice of default coding system for that language
-environment.
-
- The command `C-x <RET> t' (`set-terminal-coding-system') specifies
-the coding system for terminal output. If you specify a character code
-for terminal output, all characters output to the terminal are
-translated into that coding system.
-
- This feature is useful for certain character-only terminals built to
-support specific languages or character sets--for example, European
-terminals that support one of the ISO Latin character sets.
-
- By default, output to the terminal is not translated at all.
-
- The command `C-x <RET> k' (`set-keyboard-coding-system') specifies
-the coding system for keyboard input. Character-code translation of
-keyboard input is useful for terminals with keys that send non-ASCII
-graphic characters--for example, some terminals designed for ISO
-Latin-1 or subsets of it.
-
- By default, keyboard input is not translated at all.
-
- There is a similarity between using a coding system translation for
-keyboard input, and using an input method: both define sequences of
-keyboard input that translate into single characters. However, input
-methods are designed to be convenient for interactive use by humans, and
-the sequences that are translated are typically sequences of ASCII
-printing characters. Coding systems typically translate sequences of
-non-graphic characters.
-
- The command `C-x <RET> p' (`set-buffer-process-coding-system')
-specifies the coding system for input and output to a subprocess. This
-command applies to the current buffer; normally, each subprocess has its
-own buffer, and thus you can use this command to specify translation to
-and from a particular subprocess by giving the command in the
-corresponding buffer.
-
- By default, process input and output are not translated at all.
-
- The variable `file-name-coding-system' specifies a coding system to
-use for encoding file names. If you set the variable to a coding
-system name (as a Lisp symbol or a string), XEmacs encodes file names
-using that coding system for all file operations. This makes it
-possible to use non-Latin-1 characters in file names--or, at least,
-those non-Latin-1 characters which the specified coding system can
-encode. By default, this variable is `nil', which implies that you
-cannot use non-Latin-1 characters in file names.
+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.
+
+`<DEL>'
+ 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 <DEL>. `u' works just like `d', but removes flags
+rather than making flags. <DEL> 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.
\1f
-File: xemacs.info, Node: Major Modes, Next: Indentation, Prev: Mule, Up: Top
-
-Major Modes
-***********
-
- Emacs has many different "major modes", each of which customizes
-Emacs for editing text of a particular sort. The major modes are
-mutually exclusive; at any time, each buffer has one major mode. The
-mode line normally contains the name of the current major mode in
-parentheses. *Note Mode Line::.
-
- The least specialized major mode is called "Fundamental mode". This
-mode has no mode-specific redefinitions or variable settings. Each
-Emacs command behaves in its most general manner, and each option is in
-its default state. For editing any specific type of text, such as Lisp
-code or English text, you should switch to the appropriate major mode,
-such as Lisp mode or Text mode.
-
- Selecting a major mode changes the meanings of a few keys to become
-more specifically adapted to the language being edited. <TAB>, <DEL>,
-and <LFD> are changed frequently. In addition, commands which handle
-comments use the mode to determine how to delimit comments. Many major
-modes redefine the syntactical properties of characters appearing in
-the buffer. *Note Syntax::.
-
- The major modes fall into three major groups. Lisp mode (which has
-several variants), C mode, and Muddle mode are for specific programming
-languages. Text mode, Nroff mode, TeX mode, and Outline mode are for
-editing English text. The remaining major modes are not intended for
-use on users' files; they are used in buffers created by Emacs for
-specific purposes and include Dired mode for buffers made by Dired
-(*note Dired::), Mail mode for buffers made by `C-x m' (*note Sending
-Mail::), and Shell mode for buffers used for communicating with an
-inferior shell process (*note Interactive Shell::).
-
- Most programming language major modes specify that only blank lines
-separate paragraphs. This is so that the paragraph commands remain
-useful. *Note Paragraphs::. They also cause Auto Fill mode to use the
-definition of <TAB> to indent the new lines it creates. This is
-because most lines in a program are usually indented. *Note
-Indentation::.
+File: xemacs.info, Node: Dired Immed, Prev: Dired Deletion, Up: Dired
-* Menu:
+Immediate File Operations in Dired
+----------------------------------
-* Choosing Modes:: How major modes are specified or chosen.
+ Some file operations in Dired take place immediately when they are
+requested.
-\1f
-File: xemacs.info, Node: Choosing Modes, Prev: Major Modes, Up: Major Modes
-
-Choosing Major Modes
-====================
-
- You can select a major mode explicitly for the current buffer, but
-most of the time Emacs determines which mode to use based on the file
-name or some text in the file.
+`C'
+ Copies the file described on the current line. You must supply a
+ file name to copy to, using the minibuffer.
- Use a `M-x' command to explicitly select a new major mode. Add
-`-mode' to the name of a major mode to get the name of a command to
-select that mode. For example, to enter Lisp mode, execute `M-x
-lisp-mode'.
+`f'
+ Visits the file described on the current line. It is just like
+ typing `C-x C-f' and supplying that file name. If the file on
+ this line is a subdirectory, `f' actually causes Dired to be
+ invoked on that subdirectory. *Note Visiting::.
- When you visit a file, Emacs usually chooses the right major mode
-based on the file's name. For example, files whose names end in `.c'
-are edited in C mode. The variable `auto-mode-alist' controls the
-correspondence between file names and major mode. Its value is a list
-in which each element has the form:
+`o'
+ Like `f', but uses another window to display the file's buffer.
+ The Dired buffer remains visible in the first window. This is
+ like using `C-x 4 C-f' to visit the file. *Note Windows::.
- (REGEXP . MODE-FUNCTION)
+`R'
+ Renames the file described on the current line. You must supply a
+ file name to rename to, using the minibuffer.
-For example, one element normally found in the list has the form
-`("\\.c$" . c-mode)'. It is responsible for selecting C mode for files
-whose names end in `.c'. (Note that `\\' is needed in Lisp syntax to
-include a `\' in the string, which is needed to suppress the special
-meaning of `.' in regexps.) The only practical way to change this
-variable is with Lisp code.
+`v'
+ Views the file described on this line using `M-x view-file'.
+ Viewing a file is like visiting it, but is slanted toward moving
+ around in the file conveniently and does not allow changing the
+ file. *Note View File: Misc File Ops. Viewing a file that is a
+ directory runs Dired on that directory.
- You can specify which major mode should be used for editing a certain
-file by a special sort of text in the first non-blank line of the file.
-The mode name should appear in this line both preceded and followed by
-`-*-'. Other text may appear on the line as well. For example,
-
- ;-*-Lisp-*-
-
-tells Emacs to use Lisp mode. Note how the semicolon is used to make
-Lisp treat this line as a comment. Such an explicit specification
-overrides any default mode based on the file name.
+\1f
+File: xemacs.info, Node: Misc File Ops, Prev: Dired, Up: Files
+
+Miscellaneous File Operations
+=============================
+
+ Emacs has commands for performing many other operations on files.
+All operate on one file; they do not accept wildcard file names.
+
+ You can use the command `M-x add-name-to-file' to add a name to an
+existing file without removing the old name. The new name must belong
+on the file system that the file is on.
+
+ `M-x append-to-file' adds the text of the region to the end of the
+specified file.
+
+ `M-x copy-file' reads the file OLD and writes a new file named NEW
+with the same contents. Confirmation is required if a file named NEW
+already exists, because copying overwrites the old contents of the file
+NEW.
+
+ `M-x delete-file' deletes a specified file, like the `rm' command in
+the shell. If you are deleting many files in one directory, it may be
+more convenient to use Dired (*note Dired::).
+
+ `M-x insert-file' inserts a copy of the contents of a specified file
+into the current buffer at point, leaving point unchanged before the
+contents and the mark after them. *Note Mark::.
+
+ `M-x make-symbolic-link' reads two file names OLD and LINKNAME, and
+then creates a symbolic link named LINKNAME and pointing at OLD.
+Future attempts to open file LINKNAME will then refer to the file named
+OLD at the time the opening is done, or will result in an error if the
+name OLD is not in use at that time. Confirmation is required if you
+create the link while LINKNAME is in use. Note that not all systems
+support symbolic links.
+
+ `M-x rename-file' reads two file names OLD and NEW using the
+minibuffer, then renames file OLD as NEW. If a file named NEW already
+exists, you must confirm with `yes' or renaming is not done; this is
+because renaming causes the previous meaning of the name NEW to be
+lost. If OLD and NEW are on different file systems, the file OLD is
+copied and deleted.
+
+ `M-x view-file' allows you to scan or read a file by sequential
+screenfuls. It reads a file name argument using the minibuffer. After
+reading the file into an Emacs buffer, `view-file' reads and displays
+one windowful. You can then type <SPC> to scroll forward one window,
+or <DEL> to scroll backward. Various other commands are provided for
+moving around in the file, but none for changing it; type `C-h' while
+viewing a file for a list of them. Most commands are the default Emacs
+cursor motion commands. To exit from viewing, type `C-c'.
- Another format of mode specification is:
+\1f
+File: xemacs.info, Node: Buffers, Next: Windows, Prev: Files, Up: Top
+
+Using Multiple Buffers
+**********************
+
+ Text you are editing in Emacs resides in an object called a
+"buffer". Each time you visit a file, Emacs creates a buffer to hold
+the file's text. Each time you invoke Dired, Emacs creates a buffer to
+hold the directory listing. If you send a message with `C-x m', a
+buffer named `*mail*' is used to hold the text of the message. When
+you ask for a command's documentation, it appears in a buffer called
+`*Help*'.
+
+ At any time, one and only one buffer is "selected". It is also
+called the "current buffer". Saying a command operates on "the buffer"
+really means that the command operates on the selected buffer, as most
+commands do.
+
+ When Emacs creates multiple windows, each window has a chosen buffer
+which is displayed there, but at any time only one of the windows is
+selected and its chosen buffer is the selected buffer. Each window's
+mode line displays the name of the buffer the window is displaying
+(*note Windows::).
+
+ Each buffer has a name which can be of any length but is
+case-sensitive. You can select a buffer using its name. Most buffers
+are created when you visit files; their names are derived from the
+files' names. You can also create an empty buffer with any name you
+want. A newly started Emacs has a buffer named `*scratch*' which you
+can use for evaluating Lisp expressions in Emacs.
+
+ Each buffer records what file it is visiting, whether it is
+modified, and what major mode and minor modes are in effect in it
+(*note Major Modes::). Any Emacs variable can be made "local to" a
+particular buffer, meaning its value in that buffer can be different
+from the value in other buffers. *Note Locals::.
- -*-Mode: MODENAME;-*-
+* Menu:
-which allows other things besides the major mode name to be specified.
-However, Emacs does not look for anything except the mode name.
+* Select Buffer:: Creating a new buffer or reselecting an old one.
+* List Buffers:: Getting a list of buffers that exist.
+* Misc Buffer:: Renaming; changing read-onliness; copying text.
+* Kill Buffer:: Killing buffers you no longer need.
+* Several Buffers:: How to go through the list of all buffers
+ and operate variously on several of them.
- The major mode can also be specified in a local variables list.
-*Note File Variables::.
+\1f
+File: xemacs.info, Node: Select Buffer, Next: List Buffers, Prev: Buffers, Up: Buffers
- When you visit a file that does not specify a major mode to use, or
-when you create a new buffer with `C-x b', Emacs uses the major mode
-specified by the variable `default-major-mode'. Normally this value is
-the symbol `fundamental-mode', which specifies Fundamental mode. If
-`default-major-mode' is `nil', the major mode is taken from the
-previously selected buffer.
+Creating and Selecting Buffers
+==============================
-\1f
-File: xemacs.info, Node: Indentation, Next: Text, Prev: Major Modes, Up: Top
+`C-x b BUFFER <RET>'
+ Select or create a buffer named BUFFER (`switch-to-buffer').
-Indentation
-***********
+`C-x 4 b BUFFER <RET>'
+ Similar, but select a buffer named BUFFER in another window
+ (`switch-to-buffer-other-window').
-`<TAB>'
- Indent current line "appropriately" in a mode-dependent fashion.
+`M-x switch-to-other-buffer N'
+ Switch to the previous buffer.
-`<LFD>'
- Perform <RET> followed by <TAB> (`newline-and-indent').
+ To select a buffer named BUFNAME, type `C-x b BUFNAME <RET>'. This
+is the command `switch-to-buffer' with argument BUFNAME. You can use
+completion on an abbreviation for the buffer name you want (*note
+Completion::). An empty argument to `C-x b' specifies the most
+recently selected buffer that is not displayed in any window.
-`M-^'
- Merge two lines (`delete-indentation'). This would cancel out the
- effect of <LFD>.
+ Most buffers are created when you visit files, or use Emacs commands
+that display text. You can also create a buffer explicitly by typing
+`C-x b BUFNAME <RET>', which creates a new, empty buffer that is not
+visiting any file, and selects it for editing. The new buffer's major
+mode is determined by the value of `default-major-mode' (*note Major
+Modes::). Buffers not visiting files are usually used for making notes
+to yourself. If you try to save one, you are asked for the file name
+to use.
-`C-M-o'
- Split line at point; text on the line after point becomes a new
- line indented to the same column that it now starts in
- (`split-line').
+ The function `switch-to-buffer-other-frame' is similar to
+`switch-to-buffer' except that it creates a new frame in which to
+display the selected buffer.
-`M-m'
- Move (forward or back) to the first non-blank character on the
- current line (`back-to-indentation').
+ Use `M-x switch-to-other-buffer' to visit the previous buffer. If
+you supply a positive integer N, the Nth most recent buffer is
+displayed. If you supply an argument of 0, the current buffer is moved
+to the bottom of the buffer stack.
-`C-M-\'
- Indent several lines to same column (`indent-region').
+ Note that you can also use `C-x C-f' and any other command for
+visiting a file to switch buffers. *Note Visiting::.
-`C-x <TAB>'
- Shift block of lines rigidly right or left (`indent-rigidly').
+\1f
+File: xemacs.info, Node: List Buffers, Next: Misc Buffer, Prev: Select Buffer, Up: Buffers
+
+Listing Existing Buffers
+========================
+
+`C-x C-b'
+ List the existing buffers (`list-buffers').
+
+ To print a list of all existing buffers, type `C-x C-b'. Each line
+in the list shows one buffer's name, major mode, and visited file. A
+`*' at the beginning of a line indicates the buffer has been
+"modified". If several buffers are modified, it may be time to save
+some with `C-x s' (*note Saving::). A `%' indicates a read-only
+buffer. A `.' marks the selected buffer. Here is an example of a
+buffer list:
+
+ MR Buffer Size Mode File
+ -- ------ ---- ---- ----
+ .* emacs.tex 383402 Texinfo /u2/emacs/man/emacs.tex
+ *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/
+ 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
+
+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
+`/u2/emacs/man/'.
+
+ As you move the mouse over the `*Buffer List*' buffer, the lines are
+highlighted. This visual cue indicates that clicking the right mouse
+button (`button3') will pop up a menu of commands on the buffer
+represented by this line. This menu duplicates most of those commands
+which are bound to keys in the `*Buffer List*' buffer.
-`M-i'
- Indent from point to the next prespecified tab stop column
- (`tab-to-tab-stop').
+\1f
+File: xemacs.info, Node: Misc Buffer, Next: Kill Buffer, Prev: List Buffers, Up: Buffers
-`M-x indent-relative'
- Indent from point to under an indentation point in the previous
- line.
+Miscellaneous Buffer Operations
+===============================
- Most programming languages have some indentation convention. For
-Lisp code, lines are indented according to their nesting in
-parentheses. The same general idea is used for C code, though details
-differ.
+`C-x C-q'
+ Toggle read-only status of buffer (`toggle-read-only').
- Use the <TAB> command to indent a line whatever the language. Each
-major mode defines this command to perform indentation appropriate for
-the particular language. In Lisp mode, <TAB> aligns a line according
-to its depth in parentheses. No matter where in the line you are when
-you type <TAB>, it aligns the line as a whole. In C mode, <TAB>
-implements a subtle and sophisticated indentation style that knows
-about many aspects of C syntax.
+`M-x rename-buffer'
+ Change the name of the current buffer.
- In Text mode, <TAB> runs the command `tab-to-tab-stop', which
-indents to the next tab stop column. You can set the tab stops with
-`M-x edit-tab-stops'.
+`M-x view-buffer'
+ Scroll through a buffer.
-* Menu:
+ A buffer can be "read-only", which means that commands to change its
+text are not allowed. Normally, read-only buffers are created by
+subsystems such as Dired and Rmail that have special commands to operate
+on the text. Emacs also creates a read-only buffer if you visit a file
+that is protected. To make changes in a read-only buffer, use the
+command `C-x C-q' (`toggle-read-only'). It makes a read-only buffer
+writable, and makes a writable buffer read-only. This works by setting
+the variable `buffer-read-only', which has a local value in each buffer
+and makes a buffer read-only if its value is non-`nil'.
-* Indentation Commands:: Various commands and techniques for indentation.
-* Tab Stops:: You can set arbitrary "tab stops" and then
- indent to the next tab stop when you want to.
-* Just Spaces:: You can request indentation using just spaces.
+ `M-x rename-buffer' changes the name of the current buffer,
+prompting for the new name in the minibuffer. There is no default. If
+you specify a name that is used by a different buffer, an error is
+signalled and renaming is not done.
-\1f
-File: xemacs.info, Node: Indentation Commands, Next: Tab Stops, Prev: Indentation, Up: Indentation
-
-Indentation Commands and Techniques
-===================================
-
- If you just want to insert a tab character in the buffer, you can
-type `C-q <TAB>'.
-
- To move over the indentation on a line, type `Meta-m'
-(`back-to-indentation'). This command, given anywhere on a line,
-positions point at the first non-blank character on the line.
-
- To insert an indented line before the current line, type `C-a C-o
-<TAB>'. To make an indented line after the current line, use `C-e
-<LFD>'.
-
- `C-M-o' (`split-line') moves the text from point to the end of the
-line vertically down, so that the current line becomes two lines.
-`C-M-o' first moves point forward over any spaces and tabs. Then it
-inserts after point a newline and enough indentation to reach the same
-column point is on. Point remains before the inserted newline; in this
-regard, `C-M-o' resembles `C-o'.
-
- To join two lines cleanly, use the `Meta-^' (`delete-indentation')
-command to delete the indentation at the front of the current line, and
-the line boundary as well. Empty spaces are replaced by a single
-space, or by no space if at the beginning of a line, before a close
-parenthesis, or after an open parenthesis. To delete just the
-indentation of a line, go to the beginning of the line and use `Meta-\'
-(`delete-horizontal-space'), which deletes all spaces and tabs around
-the cursor.
-
- There are also commands for changing the indentation of several
-lines at once. `Control-Meta-\' (`indent-region') gives each line which
-begins in the region the "usual" indentation by invoking <TAB> at the
-beginning of the line. A numeric argument specifies the column to
-indent to. Each line is shifted left or right so that its first
-non-blank character appears in that column. `C-x <TAB>'
-(`indent-rigidly') moves all the lines in the region right by its
-argument (left, for negative arguments). The whole group of lines moves
-rigidly sideways, which is how the command gets its name.
-
- `M-x indent-relative' indents at point based on the previous line
-(actually, the last non-empty line.) It inserts whitespace at point,
-moving point, until it is underneath an indentation point in the
-previous line. An indentation point is the end of a sequence of
-whitespace or the end of the line. If point is farther right than any
-indentation point in the previous line, the whitespace before point is
-deleted and the first indentation point then applicable is used. If no
-indentation point is applicable even then, `tab-to-tab-stop' is run
-(see next section).
-
- `indent-relative' is the definition of <TAB> in Indented Text mode.
-*Note Text::.
+ `M-x view-buffer' is similar to `M-x view-file' (*note Misc File
+Ops::), but it examines an already existing Emacs buffer. View mode
+provides convenient commands for scrolling through the buffer but not
+for changing it. When you exit View mode, the resulting value of point
+remains in effect.
-\1f
-File: xemacs.info, Node: Tab Stops, Next: Just Spaces, Prev: Indentation Commands, Up: Indentation
-
-Tab Stops
-=========
-
- For typing in tables, you can use Text mode's definition of <TAB>,
-`tab-to-tab-stop'. This command inserts indentation before point,
-enough to reach the next tab stop column. Even if you are not in Text
-mode, this function is associated with `M-i' anyway.
-
- You can arbitrarily set the tab stops used by `M-i'. They are
-stored as a list of column-numbers in increasing order in the variable
-`tab-stop-list'.
-
- The convenient way to set the tab stops is using `M-x
-edit-tab-stops', which creates and selects a buffer containing a
-description of the tab stop settings. You can edit this buffer to
-specify different tab stops, and then type `C-c C-c' to make those new
-tab stops take effect. In the tab stop buffer, `C-c C-c' runs the
-function `edit-tab-stops-note-changes' rather than the default
-`save-buffer'. `edit-tab-stops' records which buffer was current when
-you invoked it, and stores the tab stops in that buffer. Normally all
-buffers share the same tab stops and changing them in one buffer
-affects all. If you make `tab-stop-list' local in one buffer
-`edit-tab-stops' in that buffer edits only the local settings.
-
- Below is the text representing ordinary tab stops every eight
-columns:
-
- : : : : : :
- 0 1 2 3 4
- 0123456789012345678901234567890123456789012345678
- To install changes, type C-c C-c
-
- The first line contains a colon at each tab stop. The remaining
-lines help you see where the colons are and tell you what to do.
-
- Note that the tab stops that control `tab-to-tab-stop' have nothing
-to do with displaying tab characters in the buffer. *Note Display
-Vars::, for more information on that.
+ To copy text from one buffer to another, use the commands `M-x
+append-to-buffer' and `M-x insert-buffer'. *Note Accumulating Text::.
\1f
-File: xemacs.info, Node: Just Spaces, Prev: Tab Stops, Up: Indentation
+File: xemacs.info, Node: Kill Buffer, Next: Several Buffers, Prev: Misc Buffer, Up: Buffers
-Tabs vs. Spaces
+Killing Buffers
===============
- Emacs normally uses both tabs and spaces to indent lines. If you
-prefer, all indentation can be made from spaces only. To request this,
-set `indent-tabs-mode' to `nil'. This is a per-buffer variable;
-altering the variable affects only the current buffer, but there is a
-default value which you can change as well. *Note Locals::.
+ After using Emacs for a while, you may accumulate a large number of
+buffers and may want to eliminate the ones you no longer need. There
+are several commands for doing this.
- There are also commands to convert tabs to spaces or vice versa,
-always preserving the columns of all non-blank text. `M-x tabify'
-scans the region for sequences of spaces, and converts sequences of at
-least three spaces to tabs if that is possible without changing
-indentation. `M-x untabify' changes all tabs in the region to
-corresponding numbers of spaces.
+`C-x k'
+ Kill a buffer, specified by name (`kill-buffer').
-\1f
-File: xemacs.info, Node: Text, Next: Programs, Prev: Indentation, Up: Top
-
-Commands for Human Languages
-****************************
-
- The term "text" has two widespread meanings in our area of the
-computer field. One is data that is a sequence of characters. In this
-sense of the word any file that you edit with Emacs is text. The other
-meaning is more restrictive: a sequence of characters in a human
-language for humans to read (possibly after processing by a text
-formatter), as opposed to a program or commands for a program.
-
- Human languages have syntactic and stylistic conventions that editor
-commands should support or use to advantage: conventions involving
-words, sentences, paragraphs, and capital letters. This chapter
-describes Emacs commands for all these things. There are also commands
-for "filling", or rearranging paragraphs into lines of approximately
-equal length. The commands for moving over and killing words,
-sentences, and paragraphs, while intended primarily for editing text,
-are also often useful for editing programs.
-
- Emacs has several major modes for editing human language text. If a
-file contains plain text, use Text mode, which customizes Emacs in
-small ways for the syntactic conventions of text. For text which
-contains embedded commands for text formatters, Emacs has other major
-modes, each for a particular text formatter. Thus, for input to TeX,
-you can use TeX mode; for input to nroff, Nroff mode.
+`M-x kill-some-buffers'
+ Offer to kill each buffer, one by one.
-* Menu:
+ `C-x k' (`kill-buffer') kills one buffer, whose name you specify in
+the minibuffer. If you type just <RET> in the minibuffer, the default,
+killing the current buffer, is used. If the current buffer is killed,
+the buffer that has been selected recently but does not appear in any
+window now is selected. If the buffer being killed contains unsaved
+changes, you are asked to confirm with `yes' before the buffer is
+killed.
-* Text Mode:: The major modes for editing text files.
-* Nroff Mode:: The major mode for editing input to the formatter nroff.
-* TeX Mode:: The major modes for editing input to the formatter TeX.
-* Outline Mode:: The major mode for editing outlines.
-* Words:: Moving over and killing words.
-* Sentences:: Moving over and killing sentences.
-* Paragraphs:: Moving over paragraphs.
-* Pages:: Moving over pages.
-* Filling:: Filling or justifying text
-* Case:: Changing the case of text
+ The command `M-x kill-some-buffers' asks about each buffer, one by
+one. An answer of `y' means to kill the buffer. Killing the current
+buffer or a buffer containing unsaved changes selects a new buffer or
+asks for confirmation just like `kill-buffer'.
\1f
-File: xemacs.info, Node: Text Mode, Next: Words, Prev: Text, Up: Text
-
-Text Mode
-=========
-
- You should use Text mode--rather than Fundamental or Lisp mode--to
-edit files of text in a human language. Invoke `M-x text-mode' to
-enter Text mode. In Text mode, <TAB> runs the function
-`tab-to-tab-stop', which allows you to use arbitrary tab stops set with
-`M-x edit-tab-stops' (*note Tab Stops::). Features concerned with
-comments in programs are turned off unless they are explicitly invoked.
-The syntax table is changed so that periods are not considered part of a
-word, while apostrophes, backspaces and underlines are.
-
- A similar variant mode is Indented Text mode, intended for editing
-text in which most lines are indented. This mode defines <TAB> to run
-`indent-relative' (*note Indentation::), and makes Auto Fill indent the
-lines it creates. As a result, a line made by Auto Filling, or by
-<LFD>, is normally indented just like the previous line. Use `M-x
-indented-text-mode' to select this mode.
-
- Entering Text mode or Indented Text mode calls the value of the
-variable `text-mode-hook' with no arguments, if that value exists and
-is not `nil'. This value is also called when modes related to Text
-mode are entered; this includes Nroff mode, TeX mode, Outline mode, and
-Mail mode. Your hook can look at the value of `major-mode' to see
-which of these modes is actually being entered.
-
- Two modes similar to Text mode are of use for editing text that is to
-be passed through a text formatter before achieving its final readable
-form.
-
-* Menu:
+File: xemacs.info, Node: Several Buffers, Prev: Kill Buffer, Up: Buffers
-* Nroff Mode:: The major mode for editing input to the formatter nroff.
-* TeX Mode:: The major modes for editing input to the formatter TeX.
+Operating on Several Buffers
+============================
+ The "buffer-menu" facility is like a "Dired for buffers"; it allows
+you to request operations on various Emacs buffers by editing a buffer
+containing a list of them. You can save buffers, kill them (here
+called "deleting" them, for consistency with Dired), or display them.
- Another similar mode is used for editing outlines. It allows you
-to view the text at various levels of detail. You can view either
-the outline headings alone or both headings and text; you can also
-hide some of the headings at lower levels from view to make the high
-level structure more visible.
+`M-x buffer-menu'
+ Begin editing a buffer listing all Emacs buffers.
+ The command `buffer-menu' writes a list of all Emacs buffers into
+the buffer `*Buffer List*', and selects that buffer in Buffer Menu
+mode. The buffer is read-only. You can only change it using the
+special commands described in this section. Most of the commands are
+graphic characters. You can use Emacs cursor motion commands in the
+`*Buffer List*' buffer. If the cursor is on a line describing a
+buffer, the following special commands apply to that buffer:
-* Outline Mode:: The major mode for editing outlines.
+`d'
+ Request to delete (kill) the buffer, then move down. A `D' before
+ the buffer name on a line indicates a deletion request. Requested
+ deletions actually take place when you use the `x' command.
-\1f
-File: xemacs.info, Node: Nroff Mode, Next: TeX Mode, Prev: Text Mode, Up: Text Mode
-
-Nroff Mode
-----------
-
- Nroff mode is a mode like Text mode but modified to handle nroff
-commands present in the text. Invoke `M-x nroff-mode' to enter this
-mode. Nroff mode differs from Text mode in only a few ways. All nroff
-command lines are considered paragraph separators, so that filling never
-garbles the nroff commands. Pages are separated by `.bp' commands.
-Comments start with backslash-doublequote. There are also three special
-commands that are not available in Text mode:
-
-`M-n'
- Move to the beginning of the next line that isn't an nroff command
- (`forward-text-line'). An argument is a repeat count.
-
-`M-p'
- Like `M-n' but move up (`backward-text-line').
-
-`M-?'
- Prints in the echo area the number of text lines (lines that are
- not nroff commands) in the region (`count-text-lines').
-
- The other feature of Nroff mode is Electric Nroff newline mode.
-This is a minor mode that you can turn on or off with `M-x
-electric-nroff-mode' (*note Minor Modes::). When the mode is on and
-you use <RET> to end a line containing an nroff command that opens a
-kind of grouping, Emacs automatically inserts the matching nroff
-command to close that grouping on the following line. For example, if
-you are at the beginning of a line and type `.(b <RET>', the matching
-command `.)b' will be inserted on a new line following point.
-
- Entering Nroff mode calls the value of the variable `text-mode-hook'
-with no arguments, if that value exists and is not `nil'; then it does
-the same with the variable `nroff-mode-hook'.
+`k'
+ Synonym for `d'.
-\1f
-File: xemacs.info, Node: TeX Mode, Next: Outline Mode, Prev: Nroff Mode, Up: Text Mode
+`C-d'
+ Like `d' but move up afterwards instead of down.
-TeX Mode
---------
+`s'
+ 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.
- TeX is a powerful text formatter written by Donald Knuth; like GNU
-Emacs, it is free. LaTeX is a simplified input format for TeX,
-implemented by TeX macros. It is part of TeX.
+`~'
+ Mark buffer "unmodified". The command `~' does this immediately
+ when typed.
- Emacs has a special TeX mode for editing TeX input files. It
-provides facilities for checking the balance of delimiters and for
-invoking TeX on all or part of the file.
+`x'
+ Perform previously requested deletions and saves.
- TeX mode has two variants, Plain TeX mode and LaTeX mode, which are
-two distinct major modes that differ only slightly. These modes are
-designed for editing the two different input formats. The command `M-x
-tex-mode' looks at the contents of a buffer to determine whether it
-appears to be LaTeX input or not; it then selects the appropriate mode.
-If it can't tell which is right (e.g., the buffer is empty), the
-variable `tex-default-mode' controls which mode is used.
+`u'
+ Remove any request made for the current line, and move down.
- The commands `M-x plain-tex-mode' and `M-x latex-mode' explicitly
-select one of the variants of TeX mode. Use these commands when `M-x
-tex-mode' does not guess right.
+`<DEL>'
+ Move to previous line and remove any request made for that line.
-* Menu:
+ All commands that add or remove flags to request later operations
+also move down a line. They accept a numeric argument as a repeat
+count, unless otherwise specified.
-* Editing: TeX Editing. Special commands for editing in TeX mode.
-* Printing: TeX Print. Commands for printing part of a file with TeX.
+ There are also special commands to use the buffer list to select
+another buffer, and to specify one or more other buffers for display in
+additional windows.
- TeX for Unix systems can be obtained from the University of
-Washington for a distribution fee.
+`1'
+ Select the buffer in a full-frame window. This command takes
+ effect immediately.
- To order a full distribution, send $140.00 for a 1/2 inch 9-track
-tape, $165.00 for two 4-track 1/4 inch cartridge tapes (foreign sites
-$150.00, for 1/2 inch, $175.00 for 1/4 inch, to cover the extra
-postage) payable to the University of Washington to:
+`2'
+ Immediately set up two windows, with this buffer in one and the
+ buffer selected before `*Buffer List*' in the other.
- The Director
- Northwest Computer Support Group, DW-10
- University of Washington
- Seattle, Washington 98195
-
-Purchase orders are acceptable, but there is an extra charge of $10.00
-to pay for processing charges. (The total cost comes to $150 for
-domestic sites, $175 for foreign sites).
+`f'
+ Immediately select the buffer in place of the `*Buffer List*'
+ buffer.
- The normal distribution is a tar tape, blocked 20, 1600 bpi, on an
-industry standard 2400 foot half-inch reel. The physical format for
-the 1/4 inch streamer cartridges uses QIC-11, 8000 bpi, 4-track
-serpentine recording for the SUN. Also, SystemV tapes can be written
-in cpio format, blocked 5120 bytes, ASCII headers.
+`o'
+ Immediately select the buffer in another window as if by `C-x 4 b',
+ leaving `*Buffer List*' visible.
+
+`q'
+ Immediately select this buffer, and display any buffers previously
+ flagged with the `m' command in other windows. If there are no
+ buffers flagged with `m', this command is equivalent to `1'.
+
+`m'
+ Flag this buffer to be displayed in another window if the `q'
+ command is used. The request shows as a `>' at the beginning of
+ the line. The same buffer may not have both a delete request and a
+ display request.
+
+ Going back between a `buffer-menu' buffer and other Emacs buffers is
+easy. You can, for example, switch from the `*Buffer List*' buffer to
+another Emacs buffer, and edit there. You can then reselect the
+`buffer-menu' buffer and perform operations already requested, or you
+can kill that buffer or pay no further attention to it. All that
+`buffer-menu' does directly is create and select a suitable buffer, and
+turn on Buffer Menu mode. All the other capabilities of the buffer
+menu are implemented by special commands provided in Buffer Menu mode.
+
+ The only difference between `buffer-menu' and `list-buffers' is that
+`buffer-menu' selects the `*Buffer List*' buffer and `list-buffers'
+does not. If you run `list-buffers' (that is, type `C-x C-b') and
+select the buffer list manually, you can use all the commands described
+here.
\1f
-File: xemacs.info, Node: TeX Editing, Next: TeX Print, Prev: TeX Mode, Up: TeX Mode
-
-TeX Editing Commands
-....................
-
- Here are the special commands provided in TeX mode for editing the
-text of the file.
-
-`"'
- Insert, according to context, either ```' or `"' or `'''
- (`TeX-insert-quote').
-
-`<LFD>'
- Insert a paragraph break (two newlines) and check the previous
- paragraph for unbalanced braces or dollar signs (`tex-terminate-
- paragraph').
-
-`M-x validate-tex-buffer'
- Check each paragraph in the buffer for unbalanced braces or dollar
- signs.
-
-`C-c {'
- Insert `{}' and position point between them (`tex-insert-braces').
-
-`C-c }'
- Move forward past the next unmatched close brace (`up-list').
-
-`C-c C-e'
- Close a block for LaTeX (`tex-close-latex-block').
-
- In TeX, the character `"' is not normally used; you use ```' to
-start a quotation and `''' to end one. TeX mode defines the key `"' to
-insert ```' after whitespace or an open brace, `"' after a backslash,
-or `''' otherwise. This is done by the command `tex-insert-quote'. If
-you need the character `"' itself in unusual contexts, use `C-q' to
-insert it. Also, `"' with a numeric argument always inserts that
-number of `"' characters.
-
- In TeX mode, `$' has a special syntax code which attempts to
-understand the way TeX math mode delimiters match. When you insert a
-`$' that is meant to exit math mode, the position of the matching `$'
-that entered math mode is displayed for a second. This is the same
-feature that displays the open brace that matches a close brace that is
-inserted. However, there is no way to tell whether a `$' enters math
-mode or leaves it; so when you insert a `$' that enters math mode, the
-previous `$' position is shown as if it were a match, even though they
-are actually unrelated.
-
- If you prefer to keep braces balanced at all times, you can use `C-c
-{' (`tex-insert-braces') to insert a pair of braces. It leaves point
-between the two braces so you can insert the text that belongs inside.
-Afterward, use the command `C-c }' (`up-list') to move forward past the
-close brace.
-
- There are two commands for checking the matching of braces. <LFD>
-(`tex-terminate-paragraph') checks the paragraph before point, and
-inserts two newlines to start a new paragraph. It prints a message in
-the echo area if any mismatch is found. `M-x validate-tex-buffer'
-checks the entire buffer, paragraph by paragraph. When it finds a
-paragraph that contains a mismatch, it displays point at the beginning
-of the paragraph for a few seconds and pushes a mark at that spot.
-Scanning continues until the whole buffer has been checked or until you
-type another key. The positions of the last several paragraphs with
-mismatches can be found in the mark ring (*note Mark Ring::).
-
- Note that square brackets and parentheses, not just braces, are
-matched in TeX mode. This is wrong if you want to check TeX syntax.
-However, parentheses and square brackets are likely to be used in text
-as matching delimiters and it is useful for the various motion commands
-and automatic match display to work with them.
-
- In LaTeX input, `\begin' and `\end' commands must balance. After
-you insert a `\begin', use `C-c C-f' (`tex-close-latex-block') to
-insert automatically a matching `\end' (on a new line following the
-`\begin'). A blank line is inserted between the two, and point is left
-there.
+File: xemacs.info, Node: Windows, Next: Mule, Prev: Buffers, Up: Top
-\1f
-File: xemacs.info, Node: TeX Print, Prev: TeX Editing, Up: TeX Mode
-
-TeX Printing Commands
-.....................
-
- You can invoke TeX as an inferior of Emacs on either the entire
-contents of the buffer or just a region at a time. Running TeX in this
-way on just one chapter is a good way to see what your changes look
-like without taking the time to format the entire file.
-
-`C-c C-r'
- Invoke TeX on the current region, plus the buffer's header
- (`tex-region').
-
-`C-c C-b'
- Invoke TeX on the entire current buffer (`tex-buffer').
-
-`C-c C-l'
- Recenter the window showing output from the inferior TeX so that
- the last line can be seen (`tex-recenter-output-buffer').
-
-`C-c C-k'
- Kill the inferior TeX (`tex-kill-job').
-
-`C-c C-p'
- Print the output from the last `C-c C-r' or `C-c C-b' command
- (`tex-print').
-
-`C-c C-q'
- Show the printer queue (`tex-show-print-queue').
-
- You can pass the current buffer through an inferior TeX using `C-c
-C-b' (`tex-buffer'). The formatted output appears in a file in `/tmp';
-to print it, type `C-c C-p' (`tex-print'). Afterward use `C-c C-q'
-(`tex-show-print-queue') to view the progress of your output towards
-being printed.
-
- The console output from TeX, including any error messages, appears
-in a buffer called `*TeX-shell*'. If TeX gets an error, you can switch
-to this buffer and feed it input (this works as in Shell mode; *note
-Interactive Shell::). Without switching to this buffer, you can scroll
-it so that its last line is visible by typing `C-c C-l'.
-
- Type `C-c C-k' (`tex-kill-job') to kill the TeX process if you see
-that its output is no longer useful. Using `C-c C-b' or `C-c C-r' also
-kills any TeX process still running.
-
- You can pass an arbitrary region through an inferior TeX by typing
-`C-c C-r' (`tex-region'). This is tricky, however, because most files
-of TeX input contain commands at the beginning to set parameters and
-define macros. Without them, no later part of the file will format
-correctly. To solve this problem, `C-c C-r' allows you to designate a
-part of the file as containing essential commands; it is included
-before the specified region as part of the input to TeX. The
-designated part of the file is called the "header".
-
- To indicate the bounds of the header in Plain TeX mode, insert two
-special strings in the file: `%**start of header' before the header,
-and `%**end of header' after it. Each string must appear entirely on
-one line, but there may be other text on the line before or after. The
-lines containing the two strings are included in the header. If
-`%**start of header' does not appear within the first 100 lines of the
-buffer, `C-c C-r' assumes there is no header.
-
- In LaTeX mode, the header begins with `\documentstyle' and ends with
-`\begin{document}'. These are commands that LaTeX requires you to use,
-so you don't need to do anything special to identify the header.
-
- When you enter either kind of TeX mode, Emacs calls with no
-arguments the value of the variable `text-mode-hook', if that value
-exists and is not `nil'. Emacs then calls the variable `TeX-mode-hook'
-and either `plain-TeX-mode-hook' or `LaTeX-mode-hook' under the same
-conditions.
+Multiple Windows
+****************
-\1f
-File: xemacs.info, Node: Outline Mode, Prev: TeX Mode, Up: Text Mode
-
-Outline Mode
-------------
-
- Outline mode is a major mode similar to Text mode but intended for
-editing outlines. It allows you to make parts of the text temporarily
-invisible so that you can see just the overall structure of the
-outline. Type `M-x outline-mode' to turn on Outline mode in the
-current buffer.
-
- When you enter Outline mode, Emacs calls with no arguments the value
-of the variable `text-mode-hook', if that value exists and is not
-`nil'; then it does the same with the variable `outline-mode-hook'.
-
- When a line is invisible in outline mode, it does not appear on the
-screen. The screen appears exactly as if the invisible line were
-deleted, except that an ellipsis (three periods in a row) appears at
-the end of the previous visible line (only one ellipsis no matter how
-many invisible lines follow).
-
- All editing commands treat the text of the invisible line as part of
-the previous visible line. For example, `C-n' moves onto the next
-visible line. Killing an entire visible line, including its
-terminating newline, really kills all the following invisible lines as
-well; yanking everything back yanks the invisible lines and they remain
-invisible.
+ Emacs can split the frame into two or many windows, which can display
+parts of different buffers or different parts of one buffer. If you are
+running XEmacs under X, that means you can have the X window that
+contains the Emacs frame have multiple subwindows.
* Menu:
-* Format: Outline Format. What the text of an outline looks like.
-* Motion: Outline Motion. Special commands for moving through outlines.
-* Visibility: Outline Visibility. Commands to control what is visible.
+* Basic Window:: Introduction to Emacs windows.
+* Split Window:: New windows are made by splitting existing windows.
+* Other Window:: Moving to another window or doing something to it.
+* Pop Up Window:: Finding a file or buffer in another window.
+* Change Window:: Deleting windows and changing their sizes.
\1f
-File: xemacs.info, Node: Outline Format, Next: Outline Motion, Prev: Outline Mode, Up: Outline Mode
-
-Format of Outlines
-..................
-
- Outline mode assumes that the lines in the buffer are of two types:
-"heading lines" and "body lines". A heading line represents a topic in
-the outline. Heading lines start with one or more stars; the number of
-stars determines the depth of the heading in the outline structure.
-Thus, a heading line with one star is a major topic; all the heading
-lines with two stars between it and the next one-star heading are its
-subtopics; and so on. Any line that is not a heading line is a body
-line. Body lines belong to the preceding heading line. Here is an
-example:
-
- * Food
-
- This is the body,
- which says something about the topic of food.
-
- ** Delicious Food
-
- This is the body of the second-level header.
-
- ** Distasteful Food
-
- This could have
- a body too, with
- several lines.
-
- *** Dormitory Food
-
- * Shelter
-
- A second first-level topic with its header line.
-
- A heading line together with all following body lines is called
-collectively an "entry". A heading line together with all following
-deeper heading lines and their body lines is called a "subtree".
-
- You can customize the criterion for distinguishing heading lines by
-setting the variable `outline-regexp'. Any line whose beginning has a
-match for this regexp is considered a heading line. Matches that start
-within a line (not at the beginning) do not count. The length of the
-matching text determines the level of the heading; longer matches make
-a more deeply nested level. Thus, for example, if a text formatter has
-commands `@chapter', `@section' and `@subsection' to divide the
-document into chapters and sections, you can make those lines count as
-heading lines by setting `outline-regexp' to
-`"@chap\\|@\\(sub\\)*section"'. Note the trick: the two words
-`chapter' and `section' are the same length, but by defining the regexp
-to match only `chap' we ensure that the length of the text matched on a
-chapter heading is shorter, so that Outline mode will know that
-sections are contained in chapters. This works as long as no other
-command starts with `@chap'.
-
- Outline mode makes a line invisible by changing the newline before it
-into an ASCII Control-M (code 015). Most editing commands that work on
-lines treat an invisible line as part of the previous line because,
-strictly speaking, it is part of that line, since there is no longer a
-newline in between. When you save the file in Outline mode, Control-M
-characters are saved as newlines, so the invisible lines become ordinary
-lines in the file. Saving does not change the visibility status of a
-line inside Emacs.
+File: xemacs.info, Node: Basic Window, Next: Split Window, Prev: Windows, Up: Windows
+
+Concepts of Emacs Windows
+=========================
+
+ When Emacs displays multiple windows, each window has one Emacs
+buffer designated for display. The same buffer may appear in more than
+one window; if it does, any changes in its text are displayed in all
+the windows that display it. Windows showing the same buffer can show
+different parts of it, because each window has its own value of point.
+
+ At any time, one window is the "selected window"; the buffer
+displayed by that window is the current buffer. The cursor shows the
+location of point in that window. Each other window has a location of
+point as well, but since the terminal has only one cursor, it cannot
+show the location of point in the other windows.
+
+ Commands to move point affect the value of point for the selected
+Emacs window only. They do not change the value of point in any other
+Emacs window, including those showing the same buffer. The same is
+true for commands such as `C-x b' to change the selected buffer in the
+selected window; they do not affect other windows at all. However,
+there are other commands such as `C-x 4 b' that select a different
+window and switch buffers in it. Also, all commands that display
+information in a window, including (for example) `C-h f'
+(`describe-function') and `C-x C-b' (`list-buffers'), work by switching
+buffers in a non-selected window without affecting the selected window.
+
+ Each window has its own mode line, which displays the buffer name,
+modification status, and major and minor modes of the buffer that is
+displayed in the window. *Note Mode Line::, for details on the mode
+line.
\1f
-File: xemacs.info, Node: Outline Motion, Next: Outline Visibility, Prev: Outline Format, Up: Outline Mode
-
-Outline Motion Commands
-.......................
-
- Some special commands in Outline mode move backward and forward to
-heading lines.
-
-`C-c C-n'
- Move point to the next visible heading line
- (`outline-next-visible-heading').
-
-`C-c C-p'
- Move point to the previous visible heading line
- (`outline-previous-visible-heading').
-
-`C-c C-f'
- Move point to the next visible heading line at the same level as
- the one point is on (`outline-forward-same-level').
+File: xemacs.info, Node: Split Window, Next: Other Window, Prev: Basic Window, Up: Windows
+
+Splitting Windows
+=================
+
+`C-x 2'
+ Split the selected window into two windows, one above the other
+ (`split-window-vertically').
+
+`C-x 3'
+ Split the selected window into two windows positioned side by side
+ (`split-window-horizontally').
+
+`C-x 6'
+ Save the current window configuration in register REG (a letter).
+
+`C-x 7'
+ Restore (make current) the window configuration in register REG (a
+ letter). Use with a register previously set with `C-x 6'.
+
+ The command `C-x 2' (`split-window-vertically') breaks the selected
+window into two windows, one above the other. Both windows start out
+displaying the same buffer, with the same value of point. By default
+each of the two windows gets half the height of the window that was
+split. A numeric argument specifies how many lines to give to the top
+window.
+
+ `C-x 3' (`split-window-horizontally') breaks the selected window
+into two side-by-side windows. A numeric argument specifies how many
+columns to give the one on the left. A line of vertical bars separates
+the two windows. Windows that are not the full width of the frame have
+truncated mode lines which do not always appear in inverse video,
+because Emacs display routines cannot display a region of inverse video
+that is only part of a line on the screen.
+
+ When a window is less than the full width, many text lines are too
+long to fit. Continuing all those lines might be confusing. Set the
+variable `truncate-partial-width-windows' to non-`nil' to force
+truncation in all windows less than the full width of the frame,
+independent of the buffer and its value for `truncate-lines'. *Note
+Continuation Lines::.
+
+ Horizontal scrolling is often used in side-by-side windows. *Note
+Display::.
+
+ You can resize a window and store that configuration in a register by
+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').
-`C-c C-b'
- Move point to the previous visible heading line at the same level
- (`outline-backward-same-level').
+\1f
+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 WHICH-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.
-`C-c C-u'
- Move point up to a lower-level (more inclusive) visible heading
- line (`outline-up-heading').
+\1f
+File: xemacs.info, Node: Pop Up Window, Next: Change Window, Prev: Other Window, Up: Windows
- `C-c C-n' (`next-visible-heading') moves down to the next heading
-line. `C-c C-p' (`previous-visible-heading') moves similarly backward.
-Both accept numeric arguments as repeat counts. The names emphasize
-that invisible headings are skipped, but this is not really a special
-feature. All editing commands that look for lines ignore the invisible
-lines automatically.
+Displaying in Another Window
+============================
- More advanced motion commands understand the levels of headings.
-The commands `C-c C-f' (`outline-forward-same-level') and `C-c C-b'
-(`outline-backward-same-level') move from one heading line to another
-visible heading at the same depth in the outline. `C-c C-u'
-(`outline-up-heading') moves backward to another heading that is less
-deeply nested.
+ `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.
-\1f
-File: xemacs.info, Node: Outline Visibility, Prev: Outline Motion, Up: Outline Mode
+`C-x 4 b BUFNAME <RET>'
+ Select buffer BUFNAME in another window. This runs
+ `switch-to-buffer-other-window'.
-Outline Visibility Commands
-...........................
+`C-x 4 f FILENAME <RET>'
+ Visit file FILENAME and select its buffer in another window. This
+ runs `find-file-other-window'. *Note Visiting::.
- The other special commands of outline mode are used to make lines
-visible or invisible. Their names all start with `hide' or `show'.
-Most of them exist as pairs of opposites. They are not undoable;
-instead, you can undo right past them. Making lines visible or
-invisible is simply not recorded by the undo mechanism.
+`C-x 4 d DIRECTORY <RET>'
+ Select a Dired buffer for directory DIRECTORY in another window.
+ This runs `dired-other-window'. *Note Dired::.
-`M-x hide-body'
- Make all body lines in the buffer invisible.
+`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::).
-`M-x show-all'
- Make all lines in the buffer visible.
+`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::).
-`C-c C-d'
- Make everything under this heading invisible, not including this
- heading itself (`hide-subtree').
+ 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.
-`C-c C-s'
- Make everything under this heading visible, including body,
- subheadings, and their bodies (`show-subtree').
+\1f
+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.
-`M-x hide-leaves'
- Make the body of this heading line, and of all its subheadings,
- invisible.
+\1f
+File: xemacs.info, Node: Mule, Next: Major Modes, Prev: Windows, Up: Top
-`M-x show-branches'
- Make all subheadings of this heading line, at all levels, visible.
+World Scripts Support
+*********************
-`C-c C-i'
- Make immediate subheadings (one level down) of this heading line
- visible (`show-children').
+ 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 Byelorussian, 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").
-`M-x hide-entry'
- Make this heading line's body invisible.
+* Menu:
-`M-x show-entry'
- Make this heading line's body visible.
+* 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.
- Two commands that are exact opposites are `M-x hide-entry' and `M-x
-show-entry'. They are used with point on a heading line, and apply
-only to the body lines of that heading. The subtopics and their bodies
-are not affected.
+\1f
+File: xemacs.info, Node: Mule Intro, Next: Language Environments, Prev: Mule, Up: Mule
- Two more powerful opposites are `C-c C-h' (`hide-subtree') and `C-c
-C-s' (`show-subtree'). Both should be used when point is on a heading
-line, and both apply to all the lines of that heading's "subtree": its
-body, all its subheadings, both direct and indirect, and all of their
-bodies. In other words, the subtree contains everything following this
-heading line, up to and not including the next heading of the same or
-higher rank.
+Introduction to world scripts
+=============================
- Intermediate between a visible subtree and an invisible one is having
-all the subheadings visible but none of the body. There are two
-commands for doing this, one that hides the bodies and one that makes
-the subheadings visible. They are `M-x hide-leaves' and `M-x
-show-branches'.
+ 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).
- A little weaker than `show-branches' is `C-c C-i' (`show-children').
-It makes just the direct subheadings visible--those one level down.
-Deeper subheadings remain invisible.
+ 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.
- Two commands have a blanket effect on the whole file. `M-x
-hide-body' makes all body lines invisible, so that you see just the
-outline structure. `M-x show-all' makes all lines visible. You can
-think of these commands as a pair of opposites even though `M-x
-show-all' applies to more than just body lines.
+ 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.
- You can turn off the use of ellipses at the ends of visible lines by
-setting `selective-display-ellipses' to `nil'. The result is no
-visible indication of the presence of invisible lines.
+ The prefix key `C-x <RET>' is used for commands that pertain to
+world scripts, coding systems, and input methods.
\1f
-File: xemacs.info, Node: Words, Next: Sentences, Prev: Text Mode, Up: Text
-
-Words
-=====
-
- Emacs has commands for moving over or operating on words. By
-convention, the keys for them are all `Meta-' characters.
-
-`M-f'
- Move forward over a word (`forward-word').
-
-`M-b'
- Move backward over a word (`backward-word').
-
-`M-d'
- Kill up to the end of a word (`kill-word').
-
-`M-<DEL>'
- Kill back to the beginning of a word (`backward-kill-word').
-
-`M-@'
- Mark the end of the next word (`mark-word').
-
-`M-t'
- Transpose two words; drag a word forward or backward across other
- words (`transpose-words').
-
- Notice how these keys form a series that parallels the
-character-based `C-f', `C-b', `C-d', `C-t' and <DEL>. `M-@' is related
-to `C-@', which is an alias for `C-<SPC>'.
-
- The commands `Meta-f' (`forward-word') and `Meta-b'
-(`backward-word') move forward and backward over words. They are
-analogous to `Control-f' and `Control-b', which move over single
-characters. Like their `Control-' analogues, `Meta-f' and `Meta-b'
-move several words if given an argument. `Meta-f' with a negative
-argument moves backward, and `Meta-b' with a negative argument moves
-forward. Forward motion stops after the last letter of the word, while
-backward motion stops before the first letter.
-
- `Meta-d' (`kill-word') kills the word after point. To be precise,
-it kills everything from point to the place `Meta-f' would move to.
-Thus, if point is in the middle of a word, `Meta-d' kills just the part
-after point. If some punctuation comes between point and the next
-word, it is killed along with the word. (To kill only the next word
-but not the punctuation before it, simply type `Meta-f' to get to the
-end and kill the word backwards with `Meta-<DEL>'.) `Meta-d' takes
-arguments just like `Meta-f'.
-
- `Meta-<DEL>' (`backward-kill-word') kills the word before point. It
-kills everything from point back to where `Meta-b' would move to. If
-point is after the space in `FOO, BAR', then `FOO, ' is killed. To
-kill just `FOO', type `Meta-b Meta-d' instead of `Meta-<DEL>'.
-
- `Meta-t' (`transpose-words') exchanges the word before or containing
-point with the following word. The delimiter characters between the
-words do not move. For example, transposing `FOO, BAR' results in
-`BAR, FOO' rather than `BAR FOO,'. *Note Transpose::, for more on
-transposition and on arguments to transposition commands.
-
- To operate on the next N words with an operation which applies
-between point and mark, you can either set the mark at point and then
-move over the words, or you can use the command `Meta-@' (`mark-word')
-which does not move point but sets the mark where `Meta-f' would move
-to. It can be given arguments just like `Meta-f'.
-
- The word commands' understanding of syntax is completely controlled
-by the syntax table. For example, any character can be declared to be
-a word delimiter. *Note Syntax::.
+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 <RET>'
+(`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.
\1f
-File: xemacs.info, Node: Sentences, Next: Paragraphs, Prev: Words, Up: Text
+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. <TAB> 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 <DEL> '' 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).
-Sentences
-=========
+\1f
+File: xemacs.info, Node: Select Input Method, Next: Coding Systems, Prev: Input Methods, Up: Mule
- The Emacs commands for manipulating sentences and paragraphs are
-mostly on `Meta-' keys, and therefore are like the word-handling
-commands.
+Selecting an Input Method
+=========================
-`M-a'
- Move back to the beginning of the sentence (`backward-sentence').
+`C-\'
+ Enable or disable use of the selected input method.
-`M-e'
- Move forward to the end of the sentence (`forward-sentence').
+`C-x <RET> C-\ METHOD <RET>'
+ Select a new input method for the current buffer.
-`M-k'
- Kill forward to the end of the sentence (`kill-sentence').
+`C-h I METHOD <RET>'
+`C-h C-\ METHOD <RET>'
+ Describe the input method METHOD (`describe-input-method'). By
+ default, it describes the current input method (if any).
-`C-x <DEL>'
- Kill back to the beginning of the sentence
- (`backward-kill-sentence').
+`M-x list-input-methods'
+ Display a list of all the supported input methods.
- The commands `Meta-a' and `Meta-e' (`backward-sentence' and
-`forward-sentence') move to the beginning and end of the current
-sentence, respectively. They resemble `Control-a' and `Control-e',
-which move to the beginning and end of a line. Unlike their
-counterparts, `Meta-a' and `Meta-e' move over successive sentences if
-repeated or given numeric arguments. Emacs assumes the typist's
-convention is followed, and thus considers a sentence to end wherever
-there is a `.', `?', or `!' followed by the end of a line or two
-spaces, with any number of `)', `]', `'', or `"' characters allowed in
-between. A sentence also begins or ends wherever a paragraph begins or
-ends.
+ To choose an input method for the current buffer, use `C-x <RET>
+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.
- Neither `M-a' nor `M-e' moves past the newline or spaces beyond the
-sentence edge at which it is stopping.
+ 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.
- `M-a' and `M-e' have a corresponding kill command, just like `C-a'
-and `C-e' have `C-k'. The command is `M-k' (`kill-sentence') which
-kills from point to the end of the sentence. With minus one as an
-argument it kills back to the beginning of the sentence. Larger
-arguments serve as repeat counts.
+ 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
+<RET> C-\' to specify an input method.
- There is a special command, `C-x <DEL>' (`backward-kill-sentence'),
-for killing back to the beginning of a sentence, which is useful when
-you change your mind in the middle of composing text.
+ 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).
- The variable `sentence-end' controls recognition of the end of a
-sentence. It is a regexp that matches the last few characters of a
-sentence, together with the whitespace following the sentence. Its
-normal value is:
+ 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'.
- "[.?!][]\"')]*\\($\\|\t\\| \\)[ \t\n]*"
+ 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.
-This example is explained in the section on regexps. *Note Regexps::.
+\1f
+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 <RET>'
+ Describe coding system CODING.
+
+`C-h C <RET>'
+ 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.
\1f
-File: xemacs.info, Node: Paragraphs, Next: Pages, Prev: Sentences, Up: Text
-
-Paragraphs
-==========
-
- The Emacs commands for manipulating paragraphs are also `Meta-' keys.
-
-`M-['
- Move back to previous paragraph beginning
- (`backward-paragraph').
-
-`M-]'
- Move forward to next paragraph end (`forward-paragraph').
-
-`M-h'
- Put point and mark around this or next paragraph
- (`mark-paragraph').
-
- `Meta-[' moves to the beginning of the current or previous paragraph,
-while `Meta-]' moves to the end of the current or next paragraph.
-Blank lines and text formatter command lines separate paragraphs and are
-not part of any paragraph. An indented line starts a new paragraph.
-
- In major modes for programs (as opposed to Text mode), paragraphs
-begin and end only at blank lines. As a result, the paragraph commands
-continue to be useful even though there are no paragraphs per se.
-
- When there is a fill prefix, paragraphs are delimited by all lines
-which don't start with the fill prefix. *Note Filling::.
-
- To operate on a paragraph, you can use the command `Meta-h'
-(`mark-paragraph') to set the region around it. This command puts
-point at the beginning and mark at the end of the paragraph point was
-in. If point is between paragraphs (in a run of blank lines or at a
-boundary), the paragraph following point is surrounded by point and
-mark. If there are blank lines preceding the first line of the
-paragraph, one of the blank lines is included in the region. Thus, for
-example, `M-h C-w' kills the paragraph around or after point.
-
- The precise definition of a paragraph boundary is controlled by the
-variables `paragraph-separate' and `paragraph-start'. The value of
-`paragraph-start' is a regexp that matches any line that either starts
-or separates paragraphs. The value of `paragraph-separate' is another
-regexp that matches only lines that separate paragraphs without being
-part of any paragraph. Lines that start a new paragraph and are
-contained in it must match both regexps. For example, normally
-`paragraph-start' is `"^[ \t\n\f]"' and `paragraph-separate' is `"^[
-\t\f]*$"'.
-
- Normally it is desirable for page boundaries to separate paragraphs.
-The default values of these variables recognize the usual separator for
-pages.
+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::).