X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=info%2Fxemacs.info-9;h=7c95cda8ee425e9474980dffb7c3b7093b5771ef;hb=478bbff714872a6032f56d1a4081a13c24d3ac66;hp=29af4a34b094879b2c65e38ba776e94440c5e2a2;hpb=376658ea71d16dced8acff36c3e385ac3738d868;p=chise%2Fxemacs-chise.git diff --git a/info/xemacs.info-9 b/info/xemacs.info-9 index 29af4a3..7c95cda 100644 --- a/info/xemacs.info-9 +++ b/info/xemacs.info-9 @@ -1,4 +1,4 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from +This is ../info/xemacs.info, produced by makeinfo version 4.0b from xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,1130 +30,1115 @@ versions, except that the sections entitled "The GNU Manifesto", translation approved by the author instead of in the original English.  -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 f CODING ' - Use coding system CODING for the visited file in the current - buffer. - -`C-x c CODING ' - Specify coding system CODING for the immediately following command. - -`C-x k CODING ' - Use coding system CODING for keyboard input. - -`C-x t CODING ' - Use coding system CODING for terminal output. - -`C-x p CODING ' - 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 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 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 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 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. + +`' + Remove deletion-flag on previous line, moving point to that line. + +`x' + Delete the files that are flagged for deletion. + +`#' + Flag all auto-save files (files whose names start and end with `#') + for deletion (*note Auto Save::). + +`~' + Flag all backup files (files whose names end with `~') for deletion + (*note Backup::). + +`. (Period)' + Flag excess numeric backup files for deletion. The oldest and + newest few backup files of any one file are exempt; the middle + ones are flagged. + + You can flag a file for deletion by moving to the line describing the +file and typing `d' or `C-d'. The deletion flag is visible as a `D' at +the beginning of the line. Point is moved to the beginning of the next +line, so that repeated `d' commands flag successive files. + + The files are flagged for deletion rather than deleted immediately to +avoid the danger of deleting a file accidentally. Until you direct +Dired to delete the flagged files, you can remove deletion flags using +the commands `u' and . `u' works just like `d', but removes flags +rather than making flags. moves upward, removing flags; it is +like `u' with numeric argument automatically negated. + + To delete the flagged files, type `x'. This command first displays a +list of all the file names flagged for deletion, and requests +confirmation with `yes'. Once you confirm, all the flagged files are +deleted, and their lines are deleted from the text of the Dired buffer. +The shortened Dired buffer remains selected. If you answer `no' or +quit with `C-g', you return immediately to Dired, with the deletion +flags still present and no files actually deleted. + + The `#', `~', and `.' commands flag many files for deletion, based +on their names. These commands are useful precisely because they do +not actually delete any files; you can remove the deletion flags from +any flagged files that you really wish to keep. + + `#' flags for deletion all files that appear to have been made by +auto-saving (that is, files whose names begin and end with `#'). `~' +flags for deletion all files that appear to have been made as backups +for files that were edited (that is, files whose names end with `~'). + + `.' (Period) flags just some of the backup files for deletion: only +numeric backups that are not among the oldest few nor the newest few +backups of any one file. Normally `dired-kept-versions' (not +`kept-new-versions'; that applies only when saving) specifies the +number of newest versions of each file to keep, and `kept-old-versions' +specifies the number of oldest versions to keep. Period with a +positive numeric argument, as in `C-u 3 .', specifies the number of +newest versions to keep, overriding `dired-kept-versions'. A negative +numeric argument overrides `kept-old-versions', using minus the value +of the argument to specify the number of oldest versions of each file +to keep.  -File: xemacs.info, Node: 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. , , -and 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 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. - -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. + +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 to scroll forward one window, +or 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: + +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::. + +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 +============================== - -File: xemacs.info, Node: Indentation, Next: Text, Prev: Major Modes, Up: Top +`C-x b BUFFER ' + Select or create a buffer named BUFFER (`switch-to-buffer'). -Indentation -*********** +`C-x 4 b BUFFER ' + Similar, but select a buffer named BUFFER in another window + (`switch-to-buffer-other-window'). -`' - Indent current line "appropriately" in a mode-dependent fashion. +`M-x switch-to-other-buffer N' + Switch to the previous buffer. -`' - Perform followed by (`newline-and-indent'). + To select a buffer named BUFNAME, type `C-x b BUFNAME '. 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 . + 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 ', 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 ' - Shift block of lines rigidly right or left (`indent-rigidly'). + +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'). + +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 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, aligns a line according -to its depth in parentheses. No matter where in the line you are when -you type , it aligns the line as a whole. In C mode, -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, 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. - -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 '. - - 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 -'. To make an indented line after the current line, use `C-e -'. - - `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 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 ' -(`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 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. - -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-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::.  -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'). - -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 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'.  -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, 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 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 -, 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. - -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 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 ', 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'. - -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. +`' + 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.  -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'). - -`' - 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. -(`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 - -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 +**************** - -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.  -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.  -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'). + +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'). + +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. - -File: xemacs.info, Node: Outline Visibility, Prev: Outline Motion, Up: Outline Mode +`C-x 4 b BUFNAME ' + Select buffer BUFNAME in another window. This runs + `switch-to-buffer-other-window'. -Outline Visibility Commands -........................... +`C-x 4 f FILENAME ' + 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 ' + 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'). + +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. + +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. + +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 ' is used for commands that pertain to +world scripts, coding systems, and input methods.  -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-' - 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 . `M-@' is related -to `C-@', which is an alias for `C-'. - - 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-'.) `Meta-d' takes -arguments just like `Meta-f'. - - `Meta-' (`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-'. - - `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 ' +(`describe-language-environment'). This tells you which languages this +language environment is useful for, and lists the character sets, +coding systems, and input methods that go with it. It also shows some +sample text to illustrate scripts used in this language environment. +By default, this command describes the chosen language environment.  -File: xemacs.info, Node: 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. displays a buffer showing all +the possibilities. + + In Japanese input methods, first you input a whole word using +phonetic spelling; then, after the word is in the buffer, XEmacs +converts it into one or more characters using a large dictionary. One +phonetic spelling corresponds to many differently written Japanese +words, so you must select one of them; use `C-n' and `C-p' to cycle +through the alternatives. + + Sometimes it is useful to cut off input method processing so that the +characters you have just entered will not combine with subsequent +characters. For example, in input method `latin-1-postfix', the +sequence `e '' combines to form an `e' with an accent. What if you +want to enter them as separate characters? + + One way is to type the accent twice; that is a special feature for +entering the separate letter and accent. For example, `e ' '' gives +you the two characters `e''. Another way is to type another letter +after the `e'--something that won't combine with that--and immediately +delete it. For example, you could type `e e '' to get separate +`e' and `''. + + Another method, more general but not quite as easy to type, is to use +`C-\ C-\' between two characters to stop them from combining. This is +the command `C-\' (`toggle-input-method') used twice. *Note Select +Input Method::. + + `C-\ C-\' is especially useful inside an incremental search, because +stops waiting for more characters to combine, and starts searching for +what you have already entered. + + The variables `input-method-highlight-flag' and +`input-method-verbose-flag' control how input methods explain what is +happening. If `input-method-highlight-flag' is non-`nil', the partial +sequence is highlighted in the buffer. If `input-method-verbose-flag' +is non-`nil', the list of possible characters to type next is displayed +in the echo area (but not when you are in the minibuffer). -Sentences -========= + +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 C-\ METHOD ' + 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 ' +`C-h C-\ METHOD ' + Describe the input method METHOD (`describe-input-method'). By + default, it describes the current input method (if any). -`C-x ' - 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 +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 + C-\' to specify an input method. - There is a special command, `C-x ' (`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::. + +File: xemacs.info, Node: Coding Systems, Next: Recognize Coding, Prev: Select Input Method, Up: Mule + +Coding Systems +============== + + Users of various languages have established many more-or-less +standard coding systems for representing them. XEmacs does not use +these coding systems internally; instead, it converts from various +coding systems to its own system when reading data, and converts the +internal coding system to other coding systems when writing data. +Conversion is possible in reading or writing files, in sending or +receiving from the terminal, and in exchanging data with subprocesses. + + XEmacs assigns a name to each coding system. Most coding systems are +used for one language, and the name of the coding system starts with the +language name. Some coding systems are used for several languages; +their names usually start with `iso'. There are also special coding +systems `binary' and `no-conversion' which do not convert printing +characters at all. + + In addition to converting various representations of non-ASCII +characters, a coding system can perform end-of-line conversion. XEmacs +handles three different conventions for how to separate lines in a file: +newline, carriage-return linefeed, and just carriage-return. + +`C-h C CODING ' + Describe coding system CODING. + +`C-h C ' + Describe the coding systems currently in use. + +`M-x list-coding-systems' + Display a list of all the supported coding systems. + + The command `C-h C' (`describe-coding-system') displays information +about particular coding systems. You can specify a coding system name +as argument; alternatively, with an empty argument, it describes the +coding systems currently selected for various purposes, both in the +current buffer and as the defaults, and the priority list for +recognizing coding systems (*note Recognize Coding::). + + To display a list of all the supported coding systems, type `M-x +list-coding-systems'. The list gives information about each coding +system, including the letter that stands for it in the mode line (*note +Mode Line::). + + Each of the coding systems that appear in this list--except for +`binary', which means no conversion of any kind--specifies how and +whether to convert printing characters, but leaves the choice of +end-of-line conversion to be decided based on the contents of each file. +For example, if the file appears to use carriage-return linefeed between +lines, that end-of-line conversion will be used. + + Each of the listed coding systems has three variants which specify +exactly what to do for end-of-line conversion: + +`...-unix' + Don't do any end-of-line conversion; assume the file uses newline + to separate lines. (This is the convention normally used on Unix + and GNU systems.) + +`...-dos' + Assume the file uses carriage-return linefeed to separate lines, + and do the appropriate conversion. (This is the convention + normally used on Microsoft systems.) + +`...-mac' + Assume the file uses carriage-return to separate lines, and do the + appropriate conversion. (This is the convention normally used on + the Macintosh system.) + + These variant coding systems are omitted from the +`list-coding-systems' display for brevity, since they are entirely +predictable. For example, the coding system `iso-8859-1' has variants +`iso-8859-1-unix', `iso-8859-1-dos' and `iso-8859-1-mac'. + + In contrast, the coding system `binary' specifies no character code +conversion at all--none for non-Latin-1 byte values and none for end of +line. This is useful for reading or writing binary files, tar files, +and other files that must be examined verbatim. + + The easiest way to edit a file with no conversion of any kind is with +the `M-x find-file-literally' command. This uses `binary', and also +suppresses other XEmacs features that might convert the file contents +before you see them. *Note Visiting::. + + The coding system `no-conversion' means that the file contains +non-Latin-1 characters stored with the internal XEmacs encoding. It +handles end-of-line conversion based on the data encountered, and has +the usual three variants to specify the kind of end-of-line conversion.  -File: xemacs.info, Node: 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::).