X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=info%2Fxemacs.info-8;fp=info%2Fxemacs.info-8;h=0000000000000000000000000000000000000000;hb=a5812bf2ff9a9cf40f4ff78dcb83f5b4c295bd18;hp=5b6078b15dd6b89fd9e448e0d7f517ef35b08874;hpb=ccce6217f84987dff10ed3d2b60b9f0f65d8f25a;p=chise%2Fxemacs-chise.git.1 diff --git a/info/xemacs.info-8 b/info/xemacs.info-8 deleted file mode 100644 index 5b6078b..0000000 --- a/info/xemacs.info-8 +++ /dev/null @@ -1,1068 +0,0 @@ -This is Info file ../../info/xemacs.info, produced by Makeinfo version -1.68 from the input file xemacs.texi. - -INFO-DIR-SECTION XEmacs Editor -START-INFO-DIR-ENTRY -* XEmacs: (xemacs). XEmacs Editor. -END-INFO-DIR-ENTRY - - This file documents the XEmacs editor. - - Copyright (C) 1985, 1986, 1988 Richard M. Stallman. Copyright (C) -1991, 1992, 1993, 1994 Lucid, Inc. Copyright (C) 1993, 1994 Sun -Microsystems, Inc. Copyright (C) 1995 Amdahl Corporation. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided also -that the sections entitled "The GNU Manifesto", "Distribution" and "GNU -General Public License" are included exactly as in the original, and -provided that the entire resulting derived work is distributed under the -terms of a permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that the sections entitled "The GNU Manifesto", -"Distribution" and "GNU General Public License" may be included in a -translation approved by the author instead of in the original English. - - -File: xemacs.info, Node: Dired Immed, Prev: Dired Deletion, Up: Dired - -Immediate File Operations in Dired ----------------------------------- - - Some file operations in Dired take place immediately when they are -requested. - -`C' - Copies the file described on the current line. You must supply a - file name to copy to, using the minibuffer. - -`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::. - -`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::. - -`R' - Renames the file described on the current line. You must supply a - file name to rename to, using the minibuffer. - -`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. - - -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'. - - -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::. - -* Menu: - -* 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. - - -File: xemacs.info, Node: Select Buffer, Next: List Buffers, Prev: Buffers, Up: Buffers - -Creating and Selecting Buffers -============================== - -`C-x b BUFFER ' - Select or create a buffer named BUFFER (`switch-to-buffer'). - -`C-x 4 b BUFFER ' - Similar, but select a buffer named BUFFER in another window - (`switch-to-buffer-other-window'). - -`M-x switch-to-other-buffer N' - Switch to the previous buffer. - - 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. - - 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. - - 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. - - 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. - - Note that you can also use `C-x C-f' and any other command for -visiting a file to switch buffers. *Note Visiting::. - - -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. - - -File: xemacs.info, Node: Misc Buffer, Next: Kill Buffer, Prev: List Buffers, Up: Buffers - -Miscellaneous Buffer Operations -=============================== - -`C-x C-q' - Toggle read-only status of buffer (`toggle-read-only'). - -`M-x rename-buffer' - Change the name of the current buffer. - -`M-x view-buffer' - Scroll through a buffer. - - 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'. - - `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. - - `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. - - 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: Kill Buffer, Next: Several Buffers, Prev: Misc Buffer, Up: Buffers - -Killing Buffers -=============== - - 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. - -`C-x k' - Kill a buffer, specified by name (`kill-buffer'). - -`M-x kill-some-buffers' - Offer to kill each buffer, one by one. - - `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. - - 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: Several Buffers, Prev: Kill Buffer, Up: Buffers - -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. - -`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: - -`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. - -`k' - Synonym for `d'. - -`C-d' - Like `d' but move up afterwards instead of down. - -`s' - Request to save the buffer. An `S' befor the buffer name on a line - indicates the request. Requested saves actually take place when - you use the `x' command. You can request both saving and deletion - for the same buffer. - -`~' - Mark buffer "unmodified". The command `~' does this immediately - when typed. - -`x' - Perform previously requested deletions and saves. - -`u' - Remove any request made for the current line, and move down. - -`' - Move to previous line and remove any request made for that line. - - 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. - - 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. - -`1' - Select the buffer in a full-frame window. This command takes - effect immediately. - -`2' - Immediately set up two windows, with this buffer in one and the - buffer selected before `*Buffer List*' in the other. - -`f' - Immediately select the buffer in place of the `*Buffer List*' - buffer. - -`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: Windows, Next: Mule, Prev: Buffers, Up: Top - -Multiple Windows -**************** - - 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: - -* 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: 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: 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'). - - -File: xemacs.info, Node: Other Window, Next: Pop Up Window, Prev: Split Window, Up: Windows - -Using Other Windows -=================== - -`C-x o' - Select another window (`other-window'). That is the letter `o', - not zero. - -`M-C-v' - Scroll the next window (`scroll-other-window'). - -`M-x compare-windows' - Find the next place where the text in the selected window does not - match the text in the next window. - -`M-x other-window-any-frame N' - Select the Nth different window on any frame. - - To select a different window, use `C-x o' (`other-window'). That is -an `o', for `other', not a zero. When there are more than two windows, -the command moves through all the windows in a cyclic order, generally -top to bottom and left to right. From the rightmost and bottommost -window, it goes back to the one at the upper left corner. A numeric -argument, N, moves several steps in the cyclic order of windows. A -negative numeric argument moves around the cycle in the opposite order. -If the optional second argument ALL-FRAMES is non-`nil', the function -cycles through all frames. When the minibuffer is active, the -minibuffer is the last window in the cycle; you can switch from the -minibuffer window to one of the other windows, and later switch back -and finish supplying the minibuffer argument that is requested. *Note -Minibuffer Edit::. - - The command `M-x other-window-any-frame' also selects the window N -steps away in the cyclic order. However, unlike `other-window', this -command selects a window on the next or previous frame instead of -wrapping around to the top or bottom of the current frame, when there -are no more windows. - - The usual scrolling commands (*note Display::.) apply to the selected -window only. `M-C-v' (`scroll-other-window') scrolls the window that -`C-x o' would select. Like `C-v', it takes positive and negative -arguments. - - The command `M-x compare-windows' compares the text in the current -window with the text in the next window. Comparison starts at point in -each window. Point moves forward in each window, a character at a time, -until the next set of characters in the two windows are different. -Then the command is finished. - - A prefix argument IGNORE-WHITESPACE means ignore changes in -whitespace. The variable `compare-windows-whitespace' controls how -whitespace is skipped. - - If `compare-ignore-case' is non-`nil', changes in case are also -ignored. - - -File: xemacs.info, Node: Pop Up Window, Next: Change Window, Prev: Other Window, Up: Windows - -Displaying in Another Window -============================ - - `C-x 4' is a prefix key for commands that select another window -(splitting the window if there is only one) and select a buffer in that -window. Different `C-x 4' commands have different ways of finding the -buffer to select. - -`C-x 4 b BUFNAME ' - Select buffer BUFNAME in another window. This runs - `switch-to-buffer-other-window'. - -`C-x 4 f FILENAME ' - Visit file FILENAME and select its buffer in another window. This - runs `find-file-other-window'. *Note Visiting::. - -`C-x 4 d DIRECTORY ' - Select a Dired buffer for directory DIRECTORY in another window. - This runs `dired-other-window'. *Note Dired::. - -`C-x 4 m' - Start composing a mail message in another window. This runs - `mail-other-window', and its same-window version is `C-x m' (*note - Sending Mail::.). - -`C-x 4 .' - Find a tag in the current tag table in another window. This runs - `find-tag-other-window', the multiple-window variant of `M-.' - (*note Tags::.). - - If the variable `display-buffer-function' is non-`nil', its value is -the function to call to handle `display-buffer'. It receives two -arguments, the buffer and a flag that if non-`nil' means that the -currently selected window is not acceptable. Commands such as -`switch-to-buffer-other-window' and `find-file-other-window' work using -this function. - - -File: xemacs.info, Node: Change Window, Prev: Pop Up Window, Up: Windows - -Deleting and Rearranging Windows -================================ - -`C-x 0' - Get rid of the selected window (`delete-window'). That is a zero. - If there is more than one Emacs frame, deleting the sole remaining - window on that frame deletes the frame as well. If the current - frame is the only frame, it is not deleted. - -`C-x 1' - Get rid of all windows except the selected one - (`delete-other-windows'). - -`C-x ^' - Make the selected window taller, at the expense of the other(s) - (`enlarge-window'). - -`C-x }' - Make the selected window wider (`enlarge-window-horizontally'). - - To delete a window, type `C-x 0' (`delete-window'). (That is a -zero.) The space occupied by the deleted window is distributed among -the other active windows (but not the minibuffer window, even if that -is active at the time). Once a window is deleted, its attributes are -forgotten; there is no automatic way to make another window of the same -shape or showing the same buffer. The buffer continues to exist, and -you can select it in any window with `C-x b'. - - `C-x 1' (`delete-other-windows') is more powerful than `C-x 0'; it -deletes all the windows except the selected one (and the minibuffer). -The selected window expands to use the whole frame except for the echo -area. - - To readjust the division of space among existing windows, use `C-x -^' (`enlarge-window'). It makes the currently selected window longer -by one line or as many lines as a numeric argument specifies. With a -negative argument, it makes the selected window smaller. `C-x }' -(`enlarge-window-horizontally') makes the selected window wider by the -specified number of columns. The extra screen space given to a window -comes from one of its neighbors, if that is possible; otherwise, all -the competing windows are shrunk in the same proportion. If this makes -some windows too small, those windows are deleted and their space is -divided up. Minimum window size is specified by the variables -`window-min-height' and `window-min-width'. - - You can also resize windows within a frame by clicking the left mouse -button on a modeline, and dragging. - - Clicking the right button on a mode line pops up a menu of common -window manager operations. This menu contains the following options: - -Delete Window - Remove the window above this modeline from the frame. - -Delete Other Windows - Delete all windows on the frame except for the one above this - modeline. - -Split Window - Split the window above the mode line in half, creating another - window. - -Split Window Horizontally - Split the window above the mode line in half horizontally, so that - there will be two windows side-by-side. - -Balance Windows - Readjust the sizes of all windows on the frame until all windows - have roughly the same number of lines. - - -File: xemacs.info, Node: Mule, Next: Major Modes, Prev: Windows, Up: Top - -World Scripts Support -********************* - - If you compile XEmacs with mule option, it supports a wide variety of -world scripts, including Latin script, as well as Arabic script, -Simplified Chinese script (for mainland of China), Traditional Chinese -script (for Taiwan and Hong-Kong), Greek script, Hebrew script, IPA -symbols, Japanese scripts (Hiragana, Katakana and Kanji), Korean scripts -(Hangul and Hanja) and Cyrillic script (for Beylorussian, Bulgarian, -Russian, Serbian and Ukrainian). These features have been merged from -the modified version of Emacs known as MULE (for "MULti-lingual -Enhancement to GNU Emacs"). - -* Menu: - -* Mule Intro:: Basic concepts of Mule. -* Language Environments:: Setting things up for the language you use. -* Input Methods:: Entering text characters not on your keyboard. -* Select Input Method:: Specifying your choice of input methods. -* Coding Systems:: Character set conversion when you read and - write files, and so on. -* Recognize Coding:: How XEmacs figures out which conversion to use. -* Specify Coding:: Various ways to choose which conversion to use. - - -File: xemacs.info, Node: Mule Intro, Next: Language Environments, Prev: Mule, Up: Mule - -Introduction to world scripts -============================= - - The users of these scripts have established many more-or-less -standard coding systems for storing files. XEmacs translates between -the internal character encoding and various other coding systems when -reading and writing files, when exchanging data with subprocesses, and -(in some cases) in the `C-q' command (see below). - - The command `C-h h' (`view-hello-file') displays the file -`etc/HELLO', which shows how to say "hello" in many languages. This -illustrates various scripts. - - Keyboards, even in the countries where these character sets are used, -generally don't have keys for all the characters in them. So XEmacs -supports various "input methods", typically one for each script or -language, to make it convenient to type them. - - The prefix key `C-x ' is used for commands that pertain to -world scripts, coding systems, and input methods. - - -File: xemacs.info, Node: Language Environments, Next: Input Methods, Prev: Mule Intro, Up: Mule - -Language Environments -===================== - - All supported character sets are supported in XEmacs buffers if it is -compile with mule; there is no need to select a particular language in -order to display its characters in an XEmacs buffer. However, it is -important to select a "language environment" in order to set various -defaults. The language environment really represents a choice of -preferred script (more or less) rather that a choice of language. - - The language environment controls which coding systems to recognize -when reading text (*note Recognize Coding::.). This applies to files, -incoming mail, netnews, and any other text you read into XEmacs. It may -also specify the default coding system to use when you create a file. -Each language environment also specifies a default input method. - - The command to select a language environment is `M-x -set-language-environment'. It makes no difference which buffer is -current when you use this command, because the effects apply globally to -the XEmacs session. The supported language environments include: - - Chinese-BIG5, Chinese-CNS, Chinese-GB, Cyrillic-ISO, English, - Ethiopic, Greek, Japanese, Korean, Latin-1, Latin-2, Latin-3, - Latin-4, Latin-5. - - Some operating systems let you specify the language you are using by -setting locale environment variables. XEmacs handles one common special -case of this: if your locale name for character types contains the -string `8859-N', XEmacs automatically selects the corresponding -language environment. - - To display information about the effects of a certain language -environment LANG-ENV, use the command `C-h L LANG-ENV ' -(`describe-language-environment'). This tells you which languages this -language environment is useful for, and lists the character sets, -coding systems, and input methods that go with it. It also shows some -sample text to illustrate scripts used in this language environment. -By default, this command describes the chosen language environment. - - -File: xemacs.info, Node: Input Methods, Next: Select Input Method, Prev: Language Environments, Up: Mule - -Input Methods -============= - - An "input method" is a kind of character conversion designed -specifically for interactive input. In XEmacs, typically each language -has its own input method; sometimes several languages which use the same -characters can share one input method. A few languages support several -input methods. - - The simplest kind of input method works by mapping ASCII letters into -another alphabet. This is how the Greek and Russian input methods work. - - A more powerful technique is composition: converting sequences of -characters into one letter. Many European input methods use composition -to produce a single non-ASCII letter from a sequence that consists of a -letter followed by accent characters. For example, some methods convert -the sequence `'a' into a single accented letter. - - The input methods for syllabic scripts typically use mapping followed -by composition. The input methods for Thai and Korean work this way. -First, letters are mapped into symbols for particular sounds or tone -marks; then, sequences of these which make up a whole syllable are -mapped into one syllable sign. - - Chinese and Japanese require more complex methods. In Chinese input -methods, first you enter the phonetic spelling of a Chinese word (in -input method `chinese-py', among others), or a sequence of portions of -the character (input methods `chinese-4corner' and `chinese-sw', and -others). Since one phonetic spelling typically corresponds to many -different Chinese characters, you must select one of the alternatives -using special XEmacs commands. Keys such as `C-f', `C-b', `C-n', -`C-p', and digits have special definitions in this situation, used for -selecting among the alternatives. displays a buffer showing all -the possibilities. - - In Japanese input methods, first you input a whole word using -phonetic spelling; then, after the word is in the buffer, XEmacs -converts it into one or more characters using a large dictionary. One -phonetic spelling corresponds to many differently written Japanese -words, so you must select one of them; use `C-n' and `C-p' to cycle -through the alternatives. - - Sometimes it is useful to cut off input method processing so that the -characters you have just entered will not combine with subsequent -characters. For example, in input method `latin-1-postfix', the -sequence `e '' combines to form an `e' with an accent. What if you -want to enter them as separate characters? - - One way is to type the accent twice; that is a special feature for -entering the separate letter and accent. For example, `e ' '' gives -you the two characters `e''. Another way is to type another letter -after the `e'--something that won't combine with that--and immediately -delete it. For example, you could type `e e '' to get separate -`e' and `''. - - Another method, more general but not quite as easy to type, is to use -`C-\ C-\' between two characters to stop them from combining. This is -the command `C-\' (`toggle-input-method') used twice. *Note Select -Input Method::. - - `C-\ C-\' is especially useful inside an incremental search, because -stops waiting for more characters to combine, and starts searching for -what you have already entered. - - The variables `input-method-highlight-flag' and -`input-method-verbose-flag' control how input methods explain what is -happening. If `input-method-highlight-flag' is non-`nil', the partial -sequence is highlighted in the buffer. If `input-method-verbose-flag' -is non-`nil', the list of possible characters to type next is displayed -in the echo area (but not when you are in the minibuffer). - - -File: xemacs.info, Node: Select Input Method, Next: Coding Systems, Prev: Input Methods, Up: Mule - -Selecting an Input Method -========================= - -`C-\' - Enable or disable use of the selected input method. - -`C-x C-\ METHOD ' - Select a new input method for the current buffer. - -`C-h I METHOD ' -`C-h C-\ METHOD ' - Describe the input method METHOD (`describe-input-method'). By - default, it describes the current input method (if any). - -`M-x list-input-methods' - Display a list of all the supported input methods. - - To choose an input method for the current buffer, use `C-x -C-\' (`select-input-method'). This command reads the input method name -with the minibuffer; the name normally starts with the language -environment that it is meant to be used with. The variable -`current-input-method' records which input method is selected. - - Input methods use various sequences of ASCII characters to stand for -non-ASCII characters. Sometimes it is useful to turn off the input -method temporarily. To do this, type `C-\' (`toggle-input-method'). -To reenable the input method, type `C-\' again. - - If you type `C-\' and you have not yet selected an input method, it -prompts for you to specify one. This has the same effect as using `C-x - C-\' to specify an input method. - - Selecting a language environment specifies a default input method for -use in various buffers. When you have a default input method, you can -select it in the current buffer by typing `C-\'. The variable -`default-input-method' specifies the default input method (`nil' means -there is none). - - Some input methods for alphabetic scripts work by (in effect) -remapping the keyboard to emulate various keyboard layouts commonly used -for those scripts. How to do this remapping properly depends on your -actual keyboard layout. To specify which layout your keyboard has, use -the command `M-x quail-set-keyboard-layout'. - - To display a list of all the supported input methods, type `M-x -list-input-methods'. The list gives information about each input -method, including the string that stands for it in the mode line. - - -File: xemacs.info, Node: Coding Systems, Next: Recognize Coding, Prev: Select Input Method, Up: Mule - -Coding Systems -============== - - Users of various languages have established many more-or-less -standard coding systems for representing them. XEmacs does not use -these coding systems internally; instead, it converts from various -coding systems to its own system when reading data, and converts the -internal coding system to other coding systems when writing data. -Conversion is possible in reading or writing files, in sending or -receiving from the terminal, and in exchanging data with subprocesses. - - XEmacs assigns a name to each coding system. Most coding systems are -used for one language, and the name of the coding system starts with the -language name. Some coding systems are used for several languages; -their names usually start with `iso'. There are also special coding -systems `binary' and `no-conversion' which do not convert printing -characters at all. - - In addition to converting various representations of non-ASCII -characters, a coding system can perform end-of-line conversion. XEmacs -handles three different conventions for how to separate lines in a file: -newline, carriage-return linefeed, and just carriage-return. - -`C-h C CODING ' - Describe coding system CODING. - -`C-h C ' - Describe the coding systems currently in use. - -`M-x list-coding-systems' - Display a list of all the supported coding systems. - - The command `C-h C' (`describe-coding-system') displays information -about particular coding systems. You can specify a coding system name -as argument; alternatively, with an empty argument, it describes the -coding systems currently selected for various purposes, both in the -current buffer and as the defaults, and the priority list for -recognizing coding systems (*note Recognize Coding::.). - - To display a list of all the supported coding systems, type `M-x -list-coding-systems'. The list gives information about each coding -system, including the letter that stands for it in the mode line (*note -Mode Line::.). - - Each of the coding systems that appear in this list--except for -`binary', which means no conversion of any kind--specifies how and -whether to convert printing characters, but leaves the choice of -end-of-line conversion to be decided based on the contents of each file. -For example, if the file appears to use carriage-return linefeed between -lines, that end-of-line conversion will be used. - - Each of the listed coding systems has three variants which specify -exactly what to do for end-of-line conversion: - -`...-unix' - Don't do any end-of-line conversion; assume the file uses newline - to separate lines. (This is the convention normally used on Unix - and GNU systems.) - -`...-dos' - Assume the file uses carriage-return linefeed to separate lines, - and do the appropriate conversion. (This is the convention - normally used on Microsoft systems.) - -`...-mac' - Assume the file uses carriage-return to separate lines, and do the - appropriate conversion. (This is the convention normally used on - the Macintosh system.) - - These variant coding systems are omitted from the -`list-coding-systems' display for brevity, since they are entirely -predictable. For example, the coding system `iso-8859-1' has variants -`iso-8859-1-unix', `iso-8859-1-dos' and `iso-8859-1-mac'. - - In contrast, the coding system `binary' specifies no character code -conversion at all--none for non-Latin-1 byte values and none for end of -line. This is useful for reading or writing binary files, tar files, -and other files that must be examined verbatim. - - The easiest way to edit a file with no conversion of any kind is with -the `M-x find-file-literally' command. This uses `binary', and also -suppresses other XEmacs features that might convert the file contents -before you see them. *Note Visiting::. - - The coding system `no-conversion' means that the file contains -non-Latin-1 characters stored with the internal XEmacs encoding. It -handles end-of-line conversion based on the data encountered, and has -the usual three variants to specify the kind of end-of-line conversion. - - -File: xemacs.info, Node: Recognize Coding, Next: Specify Coding, Prev: Coding Systems, Up: Mule - -Recognizing Coding Systems -========================== - - Most of the time, XEmacs can recognize which coding system to use for -any given file-once you have specified your preferences. - - Some coding systems can be recognized or distinguished by which byte -sequences appear in the data. However, there are coding systems that -cannot be distinguished, not even potentially. For example, there is no -way to distinguish between Latin-1 and Latin-2; they use the same byte -values with different meanings. - - XEmacs handles this situation by means of a priority list of coding -systems. Whenever XEmacs reads a file, if you do not specify the coding -system to use, XEmacs checks the data against each coding system, -starting with the first in priority and working down the list, until it -finds a coding system that fits the data. Then it converts the file -contents assuming that they are represented in this coding system. - - The priority list of coding systems depends on the selected language -environment (*note Language Environments::.). For example, if you use -French, you probably want XEmacs to prefer Latin-1 to Latin-2; if you -use Czech, you probably want Latin-2 to be preferred. This is one of -the reasons to specify a language environment. - - However, you can alter the priority list in detail with the command -`M-x prefer-coding-system'. This command reads the name of a coding -system from the minibuffer, and adds it to the front of the priority -list, so that it is preferred to all others. If you use this command -several times, each use adds one element to the front of the priority -list. - - Sometimes a file name indicates which coding system to use for the -file. The variable `file-coding-system-alist' specifies this -correspondence. There is a special function -`modify-coding-system-alist' for adding elements to this list. For -example, to read and write all `.txt' using the coding system -`china-iso-8bit', you can execute this Lisp expression: - - (modify-coding-system-alist 'file "\\.txt\\'" 'china-iso-8bit) - -The first argument should be `file', the second argument should be a -regular expression that determines which files this applies to, and the -third argument says which coding system to use for these files. - - You can specify the coding system for a particular file using the -`-*-...-*-' construct at the beginning of a file, or a local variables -list at the end (*note File Variables::.). You do this by defining a -value for the "variable" named `coding'. XEmacs does not really have a -variable `coding'; instead of setting a variable, it uses the specified -coding system for the file. For example, `-*-mode: C; coding: -iso-8859-1;-*-' specifies use of the iso-8859-1 coding system, as well -as C mode. - - Once XEmacs has chosen a coding system for a buffer, it stores that -coding system in `buffer-file-coding-system' and uses that coding -system, by default, for operations that write from this buffer into a -file. This includes the commands `save-buffer' and `write-region'. If -you want to write files from this buffer using a different coding -system, you can specify a different coding system for the buffer using -`set-buffer-file-coding-system' (*note Specify Coding::.). -