-This is ../info/xemacs.info, produced by makeinfo version 4.6 from
+This is ../info/xemacs.info, produced by makeinfo version 4.8 from
xemacs/xemacs.texi.
INFO-DIR-SECTION XEmacs Editor
* Change Log:: Maintaining a change history for your program.
* Tags:: Go directly to any function in your program in one
command. Tags remembers which file it is in.
+* CC Mode:: Modes for C, C++, Java and similar languages
* Fortran:: Fortran mode and its special features.
* Asm Mode:: Asm mode and its special features.
* Basic Indent::
* Multi-line Indent:: Commands to reindent many lines at once.
* Lisp Indent:: Specifying how each Lisp function should be indented.
-* C Indent:: Choosing an indentation style for C code.
Tags Tables
**************************
Version 1, February 1989
-
Copyright (C) 1989 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
-
+
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
and reuse of software generally.
NO WARRANTY
-
10. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
-
Appendix: How to Apply These Terms to Your New Programs
=======================================================
ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
Copyright (C) 19YY NAME OF AUTHOR
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Yoyodyne, Inc., hereby disclaims all copyright interest in the
program `Gnomovision' (a program to direct compilers to make passes
at assemblers) written by James Hacker.
-
+
SIGNATURE OF TY COON, 1 April 1989
Ty Coon, President of Vice
\1f
File: xemacs.info, Node: Frame, Next: Keystrokes, Prev: Concept Index, Up: Top
-The XEmacs Frame
-****************
+1 The XEmacs Frame
+******************
Frame
In many environments, such as a tty terminal, an XEmacs frame
\1f
File: xemacs.info, Node: Point, Next: Echo Area, Prev: Frame, Up: Frame
-Point
-=====
+1.1 Point
+=========
When XEmacs is running, the cursor shows the location at which editing
commands will take effect. This location is called "point". You can
\1f
File: xemacs.info, Node: Echo Area, Next: Mode Line, Prev: Point, Up: Frame
-The Echo Area
-=============
+1.2 The Echo Area
+=================
The line at the bottom of the frame (below the mode line) is the "echo
area". XEmacs uses this area to communicate with the user:
\1f
File: xemacs.info, Node: Mode Line, Next: GUI Components, Prev: Echo Area, Up: Frame
-The Mode Line
-=============
+1.3 The Mode Line
+=================
Each text window's last line is a "mode line" which describes what is
going on in that window. When there is only one text window, the mode
\1f
File: xemacs.info, Node: GUI Components, Next: XEmacs under X, Prev: Mode Line, Up: Frame
-GUI Components
-==============
+1.4 GUI Components
+==================
When executed in a graphical windowing environment such as the X Window
System or Microsoft Windows, XEmacs displays several graphical user
\1f
File: xemacs.info, Node: Menubar Basics, Next: Scrollbar Basics, Up: GUI Components
-The XEmacs Menubar
-==================
+1.5 The XEmacs Menubar
+======================
The XEmacs menubar is intended to be conformant to the usual conventions
for menubars, although conformance is not yet perfect. The menu at the
\1f
File: xemacs.info, Node: Scrollbar Basics, Next: Mode Line Basics, Prev: Menubar Basics, Up: GUI Components
-XEmacs Scrollbars
-=================
+1.6 XEmacs Scrollbars
+=====================
XEmacs scrollbars provide the usual interface. Arrow buttons at either
end allow for line by line scrolling, including autorepeat. Clicking in
\1f
File: xemacs.info, Node: Mode Line Basics, Next: Toolbar Basics, Prev: Scrollbar Basics, Up: GUI Components
-XEmacs Mode Lines
-=================
+1.7 XEmacs Mode Lines
+=====================
When used in a windowing system, the XEmacs modelines can be dragged
vertically. The effect is to resize the windows above and below the
\1f
File: xemacs.info, Node: Toolbar Basics, Next: Gutter Basics, Prev: Mode Line Basics, Up: GUI Components
-XEmacs Toolbars
-===============
+1.8 XEmacs Toolbars
+===================
XEmacs has a default toolbar which provides shortcuts for some of the
commonly used operations (such as opening files) and applications (such
\1f
File: xemacs.info, Node: Gutter Basics, Next: Inhibiting, Prev: Toolbar Basics, Up: GUI Components
-XEmacs Gutters
-==============
+1.9 XEmacs Gutters
+==================
Gutters are the most flexible of the GUI components described in this
section. In theory, the other GUI components could be implemented by
\1f
File: xemacs.info, Node: Inhibiting, Next: Customizing, Prev: Gutter Basics, Up: GUI Components
-Inhibiting Display of GUI Components
-====================================
+1.10 Inhibiting Display of GUI Components
+=========================================
Use of GUI facilities is a personal thing. Almost everyone agrees that
drawing via keyboard-based "turtle graphics" is acceptable to hardly
\1f
File: xemacs.info, Node: Customizing, Prev: Inhibiting, Up: GUI Components
-Changing the Position, Orientation, and Appearance of GUI Components
-====================================================================
+1.11 Changing the Position, Orientation, and Appearance of GUI Components
+=========================================================================
#### Not documented yet.
\1f
File: xemacs.info, Node: XEmacs under X, Next: XEmacs under MS Windows, Prev: GUI Components, Up: Frame
-Using XEmacs Under the X Window System
-======================================
+1.12 Using XEmacs Under the X Window System
+===========================================
XEmacs can be used with the X Window System and a window manager like
MWM or TWM. In that case, the X window manager opens, closes, and
\1f
File: xemacs.info, Node: XEmacs under MS Windows, Prev: XEmacs under X, Up: Frame
-Using XEmacs Under Microsoft Windows
-====================================
+1.13 Using XEmacs Under Microsoft Windows
+=========================================
Use of XEmacs under MS Windows is not separately documented here, but
most operations available under the X Window System are also available
\1f
File: xemacs.info, Node: Keystrokes, Next: Pull-down Menus, Prev: Frame, Up: Top
-Keystrokes, Key Sequences, and Key Bindings
-*******************************************
+2 Keystrokes, Key Sequences, and Key Bindings
+*********************************************
* Menu:
\1f
File: xemacs.info, Node: Intro to Keystrokes, Next: Representing Keystrokes, Prev: Keystrokes, Up: Keystrokes
-Keystrokes as Building Blocks of Key Sequences
-==============================================
+2.1 Keystrokes as Building Blocks of Key Sequences
+==================================================
Earlier versions of Emacs used only the ASCII character set, which
defines 128 different character codes. Some of these codes are
\1f
File: xemacs.info, Node: Representing Keystrokes, Next: Key Sequences, Prev: Intro to Keystrokes, Up: Keystrokes
-Representing Keystrokes
------------------------
+2.1.1 Representing Keystrokes
+-----------------------------
XEmacs represents keystrokes as lists. Each list consists of an
arbitrary combination of modifiers followed by a single keysym at the
\1f
File: xemacs.info, Node: Key Sequences, Next: String Key Sequences, Prev: Representing Keystrokes, Up: Keystrokes
-Representing Key Sequences
---------------------------
+2.1.2 Representing Key Sequences
+--------------------------------
A "complete key sequence" is a sequence of keystrokes that Emacs
understands as a unit. Key sequences are significant because you can
\1f
File: xemacs.info, Node: String Key Sequences, Next: Meta Key, Prev: Key Sequences, Up: Keystrokes
-String Key Sequences
---------------------
+2.1.3 String Key Sequences
+--------------------------
For backward compatibility, you may also represent a key sequence using
strings. For example, we have the following equivalent representations:
\1f
File: xemacs.info, Node: Meta Key, Next: Super and Hyper Keys, Prev: String Key Sequences, Up: Keystrokes
-Assignment of the <META> Key
-----------------------------
+2.1.4 Assignment of the <META> Key
+----------------------------------
Not all terminals have the complete set of modifiers. Terminals that
have a <Meta> key allow you to type Meta characters by just holding
\1f
File: xemacs.info, Node: Super and Hyper Keys, Next: Character Representation, Prev: Meta Key, Up: Keystrokes
-Assignment of the <SUPER> and <HYPER> Keys
-------------------------------------------
+2.1.5 Assignment of the <SUPER> and <HYPER> Keys
+------------------------------------------------
Most keyboards do not, by default, have <SUPER> or <HYPER> modifier
keys. Under X, you can simulate the <SUPER> or <HYPER> key if you want
\1f
File: xemacs.info, Node: Character Representation, Next: Commands, Prev: Super and Hyper Keys, Up: Keystrokes
-Representation of Characters
-============================
+2.2 Representation of Characters
+================================
This section briefly discusses how characters are represented in Emacs
buffers. *Note Key Sequences::, for information on representing key
\1f
File: xemacs.info, Node: Commands, Prev: Character Representation, Up: Keystrokes
-Keys and Commands
-=================
+2.3 Keys and Commands
+=====================
This manual is full of passages that tell you what particular keys do.
But Emacs does not assign meanings to keys directly. Instead, Emacs
\1f
File: xemacs.info, Node: Pull-down Menus, Next: Entering Emacs, Prev: Keystrokes, Up: Top
-XEmacs Pull-down Menus
-======================
+2.4 XEmacs Pull-down Menus
+==========================
If you are running XEmacs under X, a menu bar on top of the Emacs frame
provides access to pull-down menus of file, edit, and help-related
File
Perform file and buffer-related operations, such as opening and
closing files, saving and printing buffers, as well as exiting
- Emacs.
+ Emacs.
Edit
Perform standard editing operations, such as cutting, copying,
- pasting, and killing selected text.
+ pasting, and killing selected text.
Apps
Access to sub-applications implemented within XEmacs, such as the
mail reader, the World Wide Web browser, the spell-checker, and
- the calendar program.
+ the calendar program.
Options
Control various options regarding the way XEmacs works, such as
controlling which elements of the frame are visible, selecting the
fonts to be used for text, specifying whether searches are
- case-sensitive, etc.
+ case-sensitive, etc.
Buffers
Present a menu of buffers for selection as well as the option to
- display a buffer list.
+ display a buffer list.
Tools
Perform various actions designed to automate software development
and similar technical work, such as searching through many files,
- compiling a program, and comparing or merging two or three files.
+ compiling a program, and comparing or merging two or three files.
Help
- Access to Emacs Info.
-
+ Access to Emacs Info.
+
There are two ways of selecting an item from a pull-down menu:
* Select an item in the menu bar by moving the cursor over it and
\1f
File: xemacs.info, Node: File Menu, Next: Edit Menu, Up: Pull-down Menus
-The File Menu
--------------
+2.4.1 The File Menu
+-------------------
The File menu bar item contains the items New Frame, Open File..., Save
Buffer, Save Buffer As..., Revert Buffer, Print Buffer, Delete Frame,
\1f
File: xemacs.info, Node: Edit Menu, Next: Apps Menu, Prev: File Menu, Up: Pull-down Menus
-The Edit Menu
--------------
+2.4.2 The Edit Menu
+-------------------
The Edit pull-down menu contains the Undo, Cut, Copy, Paste, and Clear
menu items. When you select a menu item, Emacs executes the equivalent
\1f
File: xemacs.info, Node: Apps Menu, Next: Options Menu, Prev: Edit Menu, Up: Pull-down Menus
-The Apps Menu
--------------
+2.4.3 The Apps Menu
+-------------------
The Apps pull-down menu contains the Read Mail (VM)..., Read Mail
(MH)..., Send Mail..., Usenet News, Browse the Web, Gopher, Spell-Check
\1f
File: xemacs.info, Node: Options Menu, Next: Buffers Menu, Prev: Apps Menu, Up: Pull-down Menus
-The Options Menu
-----------------
+2.4.4 The Options Menu
+----------------------
The Options pull-down menu contains the Read Only, Case Sensitive
Search, Overstrike, Auto Delete Selection, Teach Extended Commands,
\1f
File: xemacs.info, Node: Buffers Menu, Next: Tools Menu, Prev: Options Menu, Up: Pull-down Menus
-The Buffers Menu
-----------------
+2.4.5 The Buffers Menu
+----------------------
The Buffers menu provides a selection of up to ten buffers and the item
List All Buffers, which provides a Buffer List. *Note List Buffers::,
\1f
File: xemacs.info, Node: Tools Menu, Next: Help Menu, Prev: Buffers Menu, Up: Pull-down Menus
-The Tools Menu
---------------
+2.4.6 The Tools Menu
+--------------------
The Tools pull-down menu contains the Grep..., Compile..., Shell
Command..., Shell Command on Region..., Debug(GDB)... and
\1f
File: xemacs.info, Node: Help Menu, Next: Menu Customization, Prev: Tools Menu, Up: Pull-down Menus
-The Help Menu
--------------
+2.4.7 The Help Menu
+-------------------
The Help Menu gives you access to Emacs Info and provides a menu
equivalent for each of the choices you have when using `C-h'. *Note
\1f
File: xemacs.info, Node: Menu Customization, Prev: Help Menu, Up: Pull-down Menus
-Customizing XEmacs Menus
-------------------------
+2.4.8 Customizing XEmacs Menus
+------------------------------
You can customize any of the pull-down menus by adding or removing menu
items and disabling or enabling existing menu items.
\1f
File: xemacs.info, Node: Entering Emacs, Next: Exiting, Prev: Pull-down Menus, Up: Top
-Entering and Exiting Emacs
-**************************
+3 Entering and Exiting Emacs
+****************************
The usual way to invoke XEmacs is to type `xemacs <RET>' at the shell.
XEmacs clears the screen and then displays an initial advisory message
\1f
File: xemacs.info, Node: Exiting, Next: Command Switches, Prev: Entering Emacs, Up: Top
-Exiting Emacs
-=============
+3.1 Exiting Emacs
+=================
There are two commands for exiting Emacs because there are two kinds of
exiting: "suspending" Emacs and "killing" Emacs.
\1f
File: xemacs.info, Node: Command Switches, Next: Startup Paths, Prev: Exiting, Up: Top
-Command Line Switches and Arguments
-===================================
+3.2 Command Line Switches and Arguments
+=======================================
XEmacs supports command line arguments you can use to request various
actions when invoking Emacs. The commands are for compatibility with
* Command line arguments that are only relevant if you are running
XEmacs under X
-Command Line Arguments for Any Position
----------------------------------------
+3.2.1 Command Line Arguments for Any Position
+---------------------------------------------
Command line arguments are processed in the order they appear on the
command line; however, certain arguments (the ones in the second table)
`-help'
Prints a summary of command-line options and then exits.
-Command Line Arguments (Beginning of Line Only)
------------------------------------------------
+3.2.2 Command Line Arguments (Beginning of Line Only)
+-----------------------------------------------------
The following arguments are recognized only at the beginning of the
command line. If more than one of them appears, they must appear in the
because Emacs will not assume that it has a display terminal to work
with.
-Command Line Arguments (for XEmacs Under X)
--------------------------------------------
+3.2.3 Command Line Arguments (for XEmacs Under X)
+-------------------------------------------------
If you are running XEmacs under X, a number of options are available to
control color, border, and window title and icon name:
\1f
File: xemacs.info, Node: Startup Paths, Next: Packages, Prev: Command Switches, Up: Top
-How XEmacs finds Directories and Files
-======================================
+3.3 How XEmacs finds Directories and Files
+==========================================
XEmacs deals with a multitude of files during operation. These files
are spread over many directories, and XEmacs determines the location of
of directories which XEmacs searches successively in order to locate a
file.)
-XEmacs Directory Hierarchies
-----------------------------
+3.3.1 XEmacs Directory Hierarchies
+----------------------------------
Many of the files XEmacs looks for are located within the XEmacs
installation itself. However, there are several views of what actually
directory using the shorthand `<root>', it means that XEmacs searches
for it under all hierarchies XEmacs was able to scrounge up. In a
running XEmacs, the hierarchy roots are stored in the variable
-`emacs-roots'.
+`emacs-roots'.
-Package Hierarchies
--------------------
+3.3.2 Package Hierarchies
+-------------------------
Many relevant directories and files XEmacs uses are actually not part of
the core installation. They are part of any of the many packages
Hence, they play a prominent role in the various paths XEmacs sets up.
XEmacs locates packages in any of a number of package hierarchies.
-Package hierarchies fall into three groups: "early", "late", and "last",
-according to the relative location at which they show up in the various
-XEmacs paths. Early package hierarchies are at the very front, late
-ones somewhere in the middle, and last hierarchies are (you guessed it)
-last.
+Package hierarchies fall into three groups: "early", "late", and "last", according
+to the relative location at which they show up in the various XEmacs
+paths. Early package hierarchies are at the very front, late ones
+somewhere in the middle, and last hierarchies are (you guessed it) last.
By default, XEmacs expects an early package hierarchy in the
subdirectory `.xemacs/xemacs-packages' of the user's home directory.
There may be any number of package hierarchy directories.
-Directories and Paths
----------------------
+3.3.3 Directories and Paths
+---------------------------
Here is a list of the various directories and paths XEmacs tries to
locate during startup. XEmacs distinguishes between directories and
`load-library'. It contains the package lisp directories (see
further down) and the version-specific core Lisp directories. If
the environment variable `EMACSLOADPATH' is set at startup, its
- directories are prepended to `load-path'.
+ directories are prepended to `load-path'.
`Info-directory-list'
Contains the location of info files. (See *Note (info)::.) It
Is the path for executables which XEmacs may want to start. It
contains the package executable paths as well as `exec-directory',
and the directories of the environment variables `PATH' and
- `EMACSPATH'.
+ `EMACSPATH'.
`doc-directory'
Is the directory containing the architecture-specific `DOC' file
`data-directory'
Is the version-specific directory that contains core data files
- XEmacs uses. It may be initialized from the `EMACSDATA'
- environment variable.
+ XEmacs uses. It may be initialized from the `EMACSDATA' environment
+ variable.
`data-directory-list'
Is the path where XEmacs looks for data files. It contains
\1f
File: xemacs.info, Node: Basic, Next: Undo, Prev: Packages, Up: Top
-Basic Editing Commands
-**********************
+4 Basic Editing Commands
+************************
We now give the basics of how to enter text, make corrections, and save
the text in a file. If this material is new to you, you might learn it
\1f
File: xemacs.info, Node: Inserting Text, Next: Moving Point, Up: Basic
-Inserting Text
-==============
+4.1 Inserting Text
+==================
To insert printing characters into the text you are editing, just type
them. This inserts the characters you type into the buffer at the
\1f
File: xemacs.info, Node: Moving Point, Next: Erasing, Prev: Inserting Text, Up: Basic
-Changing the Location of Point
-==============================
+4.2 Changing the Location of Point
+==================================
To do more than insert characters, you have to know how to move point
(*note Point::). The simplest way to do this is with arrow keys, or by
\1f
File: xemacs.info, Node: Erasing, Next: Basic Files, Prev: Moving Point, Up: Basic
-Erasing Text
-============
+4.3 Erasing Text
+================
`<DEL>'
Delete the character before or after point
\1f
File: xemacs.info, Node: Basic Files, Next: Basic Help, Prev: Erasing, Up: Basic
-Files
-=====
+4.4 Files
+=========
The commands described above are sufficient for creating and altering
text in an Emacs buffer; the more advanced Emacs commands just make
\1f
File: xemacs.info, Node: Basic Help, Next: Blank Lines, Prev: Basic Files, Up: Basic
-Help
-====
+4.5 Help
+========
If you forget what a key does, you can find out with the Help
character, which is `C-h' (or <F1>, which is an alias for `C-h'). Type
\1f
File: xemacs.info, Node: Blank Lines, Next: Continuation Lines, Prev: Basic Help, Up: Basic
-Blank Lines
-===========
+4.6 Blank Lines
+===============
Here are special commands and techniques for putting in and taking out
blank lines.
\1f
File: xemacs.info, Node: Continuation Lines, Next: Position Info, Prev: Blank Lines, Up: Basic
-Continuation Lines
-==================
+4.7 Continuation Lines
+======================
If you add too many characters to one line without breaking it with
<RET>, the line will grow to occupy two (or more) lines on the screen,
\1f
File: xemacs.info, Node: Position Info, Next: Arguments, Prev: Continuation Lines, Up: Basic
-Cursor Position Information
-===========================
+4.8 Cursor Position Information
+===============================
If you are accustomed to other display editors, you may be surprised
that Emacs does not always display the page number or line number of
\1f
File: xemacs.info, Node: Arguments, Prev: Position Info, Up: Basic
-Numeric Arguments
-=================
+4.9 Numeric Arguments
+=====================
In mathematics and computer usage, the word "argument" means "data
provided to a function or operation." Any Emacs command can be given a
easiest way to specify a numeric argument is to type digits and/or a
minus sign while holding down the <META> key. For example,
M-5 C-n
-
-would move down five lines. The characters `Meta-1', `Meta-2', and so
-on, as well as `Meta--', do this because they are keys bound to
+ would move down five lines. The characters `Meta-1', `Meta-2', and
+so on, as well as `Meta--', do this because they are keys bound to
commands (`digit-argument' and `negative-argument') that are defined to
contribute to an argument for the next command. Digits and `-'
modified with Control, or Control and Meta, also specify numeric
\1f
File: xemacs.info, Node: Undo, Next: Minibuffer, Prev: Basic, Up: Top
-Undoing Changes
-***************
+5 Undoing Changes
+*****************
Emacs allows you to undo all changes you make to the text of a buffer,
up to a certain amount of change (8000 characters). Each buffer records
\1f
File: xemacs.info, Node: Minibuffer, Next: M-x, Prev: Undo, Up: Top
-The Minibuffer
-**************
+6 The Minibuffer
+****************
The "minibuffer" is the facility used by XEmacs commands to read
arguments more complicated than a single number. Minibuffer arguments
\1f
File: xemacs.info, Node: Minibuffer File, Next: Minibuffer Edit, Prev: Minibuffer, Up: Minibuffer
-Minibuffers for File Names
-==========================
+6.1 Minibuffers for File Names
+==============================
Sometimes the minibuffer starts out with text in it. For example, when
you are supposed to give a file name, the minibuffer starts out
\1f
File: xemacs.info, Node: Minibuffer Edit, Next: Completion, Prev: Minibuffer File, Up: Minibuffer
-Editing in the Minibuffer
-=========================
+6.2 Editing in the Minibuffer
+=============================
The minibuffer is an XEmacs buffer (albeit a peculiar one), and the
usual XEmacs commands are available for editing the text of an argument
\1f
File: xemacs.info, Node: Completion, Next: Minibuffer History, Prev: Minibuffer Edit, Up: Minibuffer
-Completion
-==========
+6.3 Completion
+==============
For certain kinds of arguments, you can use "completion" to enter the
argument value. Completion means that you type part of the argument,
\1f
File: xemacs.info, Node: Completion Example, Next: Completion Commands, Prev: Completion, Up: Completion
-Completion Example
-------------------
+6.3.1 Completion Example
+------------------------
A concrete example may help here. If you type `M-x au <TAB>', the
<TAB> looks for alternatives (in this case, command names) that start
\1f
File: xemacs.info, Node: Completion Commands, Next: Strict Completion, Prev: Completion Example, Up: Completion
-Completion Commands
--------------------
+6.3.2 Completion Commands
+-------------------------
Here is a list of the completion commands defined in the minibuffer
when completion is available.
\1f
File: xemacs.info, Node: Strict Completion, Next: Completion Options, Prev: Completion Commands, Up: Completion
-Strict Completion
------------------
+6.3.3 Strict Completion
+-----------------------
There are three different ways that <RET> can work in completing
minibuffers, depending on how the argument will be used.
\1f
File: xemacs.info, Node: Completion Options, Prev: Strict Completion, Up: Completion
-Completion Options
-------------------
+6.3.4 Completion Options
+------------------------
When completion is done on file names, certain file names are usually
ignored. The variable `completion-ignored-extensions' contains a list
\1f
File: xemacs.info, Node: Minibuffer History, Next: Repetition, Prev: Completion, Up: Minibuffer
-Minibuffer History
-==================
+6.4 Minibuffer History
+======================
Every argument that you enter with the minibuffer is saved on a
"minibuffer history list" so that you can use it again later in another
\1f
File: xemacs.info, Node: Repetition, Prev: Minibuffer History, Up: Minibuffer
-Repeating Minibuffer Commands
-=============================
+6.5 Repeating Minibuffer Commands
+=================================
Every command that uses the minibuffer at least once is recorded on a
special history list, together with the values of its arguments, so that
\1f
File: xemacs.info, Node: M-x, Next: Help, Prev: Minibuffer, Up: Top
-Running Commands by Name
-************************
+7 Running Commands by Name
+**************************
The Emacs commands that are used often or that must be quick to type are
bound to keys--short sequences of characters--for convenient use. Other
\1f
File: xemacs.info, Node: Help, Next: Mark, Prev: M-x, Up: Top
-Help
-****
+8 Help
+******
XEmacs provides extensive help features accessible through a single
character, `C-h'. `C-h' is a prefix key that is used only for
\1f
File: xemacs.info, Node: Help Summary, Next: Key Help, Prev: Help, Up: Help
-Help Summary
-============
+8.1 Help Summary
+================
Here is a summary of the defined help commands.
\1f
File: xemacs.info, Node: Key Help, Next: Name Help, Prev: Help Summary, Up: Help
-Documentation for a Key
-=======================
+8.2 Documentation for a Key
+===========================
The most basic `C-h' options are `C-h c' (`describe-key-briefly') and
`C-h k' (`describe-key'). `C-h c KEY' prints in the echo area the name
\1f
File: xemacs.info, Node: Name Help, Next: Apropos, Prev: Key Help, Up: Help
-Help by Command or Variable Name
-================================
+8.3 Help by Command or Variable Name
+====================================
`C-h f' (`describe-function') reads the name of a Lisp function using
the minibuffer, then displays that function's documentation string in a
\1f
File: xemacs.info, Node: Apropos, Next: Library Keywords, Prev: Name Help, Up: Help
-Apropos
-=======
+8.4 Apropos
+===========
`C-h A'
Show only symbols that are names of commands (`command-apropos').
\1f
File: xemacs.info, Node: Library Keywords, Next: Help Mode, Prev: Apropos, Up: Help
-Keyword Search for Lisp Libraries
-=================================
+8.5 Keyword Search for Lisp Libraries
+=====================================
The `C-h p' command lets you search the standard Emacs Lisp libraries
by topic keywords. Here is a partial list of keywords you can use:
\1f
File: xemacs.info, Node: Help Mode, Next: Misc Help, Prev: Library Keywords, Up: Help
-Help Mode Commands
-==================
+8.6 Help Mode Commands
+======================
Help buffers provide the commands of View mode (*note Misc File Ops::),
plus a few special commands of their own.
\1f
File: xemacs.info, Node: Misc Help, Prev: Help Mode, Up: Help
-Other Help Commands
-===================
+8.7 Other Help Commands
+=======================
`C-h i' (`info') runs the Info program, which is used for browsing
through structured documentation files. The entire XEmacs manual is
goes straight to the documentation of the XEmacs function FUNCTION.
`C-h C-k KEY' enters Info and goes straight to the documentation of the
key KEY. These two keys run the commands `Info-elisp-ref' and
-`Info-goto-emacs-key-command-node'.
+`Info-goto-emacs-key-command-node'. (GNU Emacs binds `C-h C-f' to
+`Info-goto-emacs-command-node', but this is less helpful to
+programmers.)
If something surprising happens, and you are not sure what commands
you typed, use `C-h l' (`view-lossage'). `C-h l' prints the last 100
\1f
File: xemacs.info, Node: Mark, Next: Mouse Selection, Prev: Help, Up: Top
-Selecting Text
-**************
+9 Selecting Text
+****************
Many Emacs commands operate on an arbitrary contiguous part of the
current buffer. You can select text in two ways:
* If you are running XEmacs under X, you can also select text with
the mouse.
-The Mark and the Region
-=======================
+9.1 The Mark and the Region
+===========================
To specify the text for a command to operate on, set "the mark" at one
end of it, and move point to the other end. The text between point and
\1f
File: xemacs.info, Node: Setting Mark, Next: Using Region, Prev: Mark, Up: Mark
-Setting the Mark
-----------------
+9.1.1 Setting the Mark
+----------------------
Here are some commands for setting the mark:
\1f
File: xemacs.info, Node: Using Region, Next: Marking Objects, Prev: Setting Mark, Up: Mark
-Operating on the Region
------------------------
+9.1.2 Operating on the Region
+-----------------------------
Once you have created an active region, you can do many things to the
text in it:
\1f
File: xemacs.info, Node: Marking Objects, Next: Mark Ring, Prev: Using Region, Up: Mark
-Commands to Mark Textual Objects
---------------------------------
+9.1.3 Commands to Mark Textual Objects
+--------------------------------------
There are commands for placing point and the mark around a textual
object such as a word, list, paragraph or page.
\1f
File: xemacs.info, Node: Mark Ring, Prev: Marking Objects, Up: Mark
-The Mark Ring
--------------
+9.1.4 The Mark Ring
+-------------------
Aside from delimiting the region, the mark is also useful for marking a
spot that you may want to go back to. To make this feature more
\1f
File: xemacs.info, Node: Mouse Selection, Next: Additional Mouse Operations, Prev: Mark, Up: Top
-Selecting Text with the Mouse
-=============================
+9.2 Selecting Text with the Mouse
+=================================
If you are using XEmacs under X, you can use the mouse pointer to
select text. (The normal mouse pointer is an I-beam, the same pointer
\1f
File: xemacs.info, Node: Additional Mouse Operations, Next: Killing, Prev: Mouse Selection, Up: Top
-Additional Mouse Operations
-===========================
+9.3 Additional Mouse Operations
+===============================
XEmacs also provides the following mouse functions. Most of these are
not bound to mouse gestures by default, but they are provided for your
\1f
File: xemacs.info, Node: Killing, Next: Yanking, Prev: Additional Mouse Operations, Up: Top
-Deletion and Killing
-====================
+9.4 Deletion and Killing
+========================
Most commands that erase text from the buffer save it. You can get the
text back if you change your mind, or you can move or copy it to other
and those commands that delete only spaces or newlines. Commands that
can destroy significant amounts of nontrivial data usually kill.
-Deletion
---------
+9.4.1 Deletion
+--------------
`C-d'
Delete next character (`delete-char').
the next line by deleting a newline and all surrounding spaces, possibly
leaving a single space. *Note M-^: Indentation.
-Killing by Lines
-----------------
+9.4.2 Killing by Lines
+----------------------
`C-k'
Kill rest of line or one or more lines (`kill-line').
`C-k' with an argument of zero kills all the text before point on the
current line.
-Other Kill Commands
--------------------
+9.4.3 Other Kill Commands
+-------------------------
`C-w'
Kill region (from point to the mark) (`kill-region'). *Note
\1f
File: xemacs.info, Node: Yanking, Next: Using X Selections, Prev: Killing, Up: Top
-Yanking
-=======
+9.5 Yanking
+===========
"Yanking" means getting back text which was killed. Some systems call
this "pasting". The usual way to move or copy text is to kill it and
\1f
File: xemacs.info, Node: Kill Ring, Next: Appending Kills, Prev: Yanking, Up: Yanking
-The Kill Ring
--------------
+9.5.1 The Kill Ring
+-------------------
All killed text is recorded in the "kill ring", a list of blocks of
text that have been killed. There is only one kill ring, used in all
\1f
File: xemacs.info, Node: Appending Kills, Next: Earlier Kills, Prev: Kill Ring, Up: Yanking
-Appending Kills
----------------
+9.5.2 Appending Kills
+---------------------
Normally, each kill command pushes a new block onto the kill ring.
However, two or more kill commands in a row combine their text into a
\1f
File: xemacs.info, Node: Earlier Kills, Prev: Appending Kills, Up: Yanking
-Yanking Earlier Kills
----------------------
+9.5.3 Yanking Earlier Kills
+---------------------------
To recover killed text that is no longer the most recent kill, you need
the `Meta-y' (`yank-pop') command. You can use `M-y' only after a
\1f
File: xemacs.info, Node: Using X Selections, Next: Accumulating Text, Prev: Yanking, Up: Top
-Using X Selections
-==================
+9.6 Using X Selections
+======================
In the X window system, mouse selections provide a simple mechanism for
text transfer between different applications. In a typical X
\1f
File: xemacs.info, Node: X Clipboard Selection, Next: X Selection Commands, Prev: Using X Selections, Up: Using X Selections
-The Clipboard Selection
------------------------
+9.6.1 The Clipboard Selection
+-----------------------------
There are other kinds of X selections besides the Primary selection; one
common one is the Clipboard selection. Some applications prefer to
\1f
File: xemacs.info, Node: X Selection Commands, Next: X Cut Buffers, Prev: X Clipboard Selection, Up: Using X Selections
-Miscellaneous X Selection Commands
-----------------------------------
+9.6.2 Miscellaneous X Selection Commands
+----------------------------------------
`M-x x-copy-primary-selection'
Copy the primary selection to both the kill ring and the Clipboard.
\1f
File: xemacs.info, Node: X Cut Buffers, Next: Active Regions, Prev: X Selection Commands, Up: Using X Selections
-X Cut Buffers
--------------
+9.6.3 X Cut Buffers
+-------------------
X cut buffers are a different, older way of transferring text between
applications. XEmacs supports cut buffers for compatibility with older
\1f
File: xemacs.info, Node: Active Regions, Prev: X Cut Buffers, Up: Using X Selections
-Active Regions
---------------
+9.6.4 Active Regions
+--------------------
By default, both the text you select in an Emacs buffer using the
click-and-drag mechanism and text you select by setting point and the
\1f
File: xemacs.info, Node: Accumulating Text, Next: Rectangles, Prev: Using X Selections, Up: Top
-Accumulating Text
-=================
+9.7 Accumulating Text
+=====================
Usually you copy or move text by killing it and yanking it, but there
are other ways that are useful for copying one block of text in many
\1f
File: xemacs.info, Node: Rectangles, Next: Registers, Prev: Accumulating Text, Up: Top
-Rectangles
-==========
+9.8 Rectangles
+==============
The rectangle commands affect rectangular areas of text: all characters
between a certain pair of columns, in a certain range of lines.
\1f
File: xemacs.info, Node: Registers, Next: Display, Prev: Rectangles, Up: Top
-Registers
-*********
+10 Registers
+************
XEmacs "registers" are places in which you can save text or positions
for later use. Once you save text or a rectangle in a register, you
\1f
File: xemacs.info, Node: RegPos, Next: RegText, Prev: Registers, Up: Registers
-Saving Positions in Registers
-=============================
+10.1 Saving Positions in Registers
+==================================
Saving a position records a place in a buffer so that you can move back
there later. Moving to a saved position switches to that buffer and
\1f
File: xemacs.info, Node: RegText, Next: RegRect, Prev: RegPos, Up: Registers
-Saving Text in Registers
-========================
+10.2 Saving Text in Registers
+=============================
When you want to insert a copy of the same piece of text many times, it
can be impractical to use the kill ring, since each subsequent kill
\1f
File: xemacs.info, Node: RegRect, Next: RegConfig, Prev: RegText, Up: Registers
-Saving Rectangles in Registers
-==============================
+10.3 Saving Rectangles in Registers
+===================================
A register can contain a rectangle instead of lines of text. The
rectangle is represented as a list of strings. *Note Rectangles::, for
\1f
File: xemacs.info, Node: RegConfig, Next: RegNumbers, Prev: RegRect, Up: Registers
-Saving Window Configurations in Registers
-=========================================
+10.4 Saving Window Configurations in Registers
+==============================================
You can save the window configuration of the selected frame in a
register, or even the configuration of all windows in all frames, and
\1f
File: xemacs.info, Node: RegNumbers, Next: RegFiles, Prev: RegConfig, Up: Registers
-Keeping Numbers in Registers
-============================
+10.5 Keeping Numbers in Registers
+=================================
There are commands to store a number in a register, to insert the
number in the buffer in decimal, and to increment it. These commands
\1f
File: xemacs.info, Node: RegFiles, Next: Bookmarks, Prev: RegNumbers, Up: Registers
-Keeping File Names in Registers
-===============================
+10.6 Keeping File Names in Registers
+====================================
If you visit certain file names frequently, you can visit them more
conveniently if you put their names in registers. Here's the Lisp code
\1f
File: xemacs.info, Node: Bookmarks, Prev: RegFiles, Up: Registers
-Bookmarks
-=========
+10.7 Bookmarks
+==============
"Bookmarks" are somewhat like registers in that they record positions
you can jump to. Unlike registers, they have long names, and they
\1f
File: xemacs.info, Node: Display, Next: Search, Prev: Registers, Up: Top
-Controlling the Display
-***********************
+11 Controlling the Display
+**************************
Since only part of a large buffer fits in the window, XEmacs tries to
show the part that is likely to be interesting. The display control
\1f
File: xemacs.info, Node: Scrolling, Next: Horizontal Scrolling, Prev: Display, Up: Display
-Scrolling
-=========
+11.1 Scrolling
+==============
If a buffer contains text that is too large to fit entirely within the
window that is displaying the buffer, XEmacs shows a contiguous section
\1f
File: xemacs.info, Node: Horizontal Scrolling, Prev: Scrolling, Up: Display
-Horizontal Scrolling
-====================
+11.2 Horizontal Scrolling
+=========================
`C-x <'
Scroll text in current window to the left (`scroll-left').
\1f
File: xemacs.info, Node: Selective Display, Next: Display Vars, Prev: Display, Up: Display
-Selective Display
-=================
+11.3 Selective Display
+======================
XEmacs can hide lines indented more than a certain number of columns
(you specify how many columns). This allows you to get an overview of
\1f
File: xemacs.info, Node: Display Vars, Prev: Selective Display, Up: Display
-Variables Controlling Display
-=============================
+11.4 Variables Controlling Display
+==================================
This section contains information for customization only. Beginning
users should skip it.
\1f
File: xemacs.info, Node: Search, Next: Fixit, Prev: Display, Up: Top
-Searching and Replacement
-*************************
+12 Searching and Replacement
+****************************
Like other editors, Emacs has commands for searching for occurrences of
a string. The principal search command is unusual in that it is
\1f
File: xemacs.info, Node: Incremental Search, Next: Non-Incremental Search, Prev: Search, Up: Search
-Incremental Search
-==================
+12.1 Incremental Search
+=======================
An incremental search begins searching as soon as you type the first
character of the search string. As you type in the search string, Emacs
Any other character which is normally inserted into a buffer when
typed is automatically added to the search string in isearch-mode.
-Slow Terminal Incremental Search
---------------------------------
+12.1.1 Slow Terminal Incremental Search
+---------------------------------------
Incremental search on a slow terminal uses a modified style of display
that is designed to take less time. Instead of redisplaying the buffer
\1f
File: xemacs.info, Node: Non-Incremental Search, Next: Word Search, Prev: Incremental Search, Up: Search
-Non-Incremental Search
-======================
+12.2 Non-Incremental Search
+===========================
Emacs also has conventional non-incremental search commands, which
require you type the entire search string before searching begins.
\1f
File: xemacs.info, Node: Word Search, Next: Regexp Search, Prev: Non-Incremental Search, Up: Search
-Word Search
-===========
+12.3 Word Search
+================
Word search looks for a sequence of words without regard to how the
words are separated. More precisely, you type a string of many words,
\1f
File: xemacs.info, Node: Regexp Search, Next: Regexps, Prev: Word Search, Up: Search
-Regular Expression Search
-=========================
+12.4 Regular Expression Search
+==============================
A "regular expression" ("regexp", for short) is a pattern that denotes
a (possibly infinite) set of strings. Searching for matches for a
\1f
File: xemacs.info, Node: Regexps, Next: Search Case, Prev: Regexp Search, Up: Search
-Syntax of Regular Expressions
-=============================
+12.5 Syntax of Regular Expressions
+==================================
Regular expressions have a syntax in which a few characters are special
constructs and the rest are "ordinary". An ordinary character is a
\1f
File: xemacs.info, Node: Search Case, Next: Replace, Prev: Regexps, Up: Search
-Searching and Case
-==================
+12.6 Searching and Case
+=======================
All searches in Emacs normally ignore the case of the text they are
searching through; if you specify searching for `FOO', `Foo' and `foo'
\1f
File: xemacs.info, Node: Replace, Next: Other Repeating Search, Prev: Search Case, Up: Search
-Replacement Commands
-====================
+12.7 Replacement Commands
+=========================
Global search-and-replace operations are not needed as often in Emacs as
they are in other editors, but they are available. In addition to the
* Replacement and Case:: How replacements preserve case of letters.
* Query Replace:: How to use querying.
-\1f
-File: xemacs.info, Node: Unconditional Replace, Next: Regexp Replace, Prev: Replace, Up: Replace
-
-Unconditional Replacement
--------------------------
-
-`M-x replace-string <RET> STRING <RET> NEWSTRING <RET>'
- Replace every occurrence of STRING with NEWSTRING.
-
-`M-x replace-regexp <RET> REGEXP <RET> NEWSTRING <RET>'
- Replace every match for REGEXP with NEWSTRING.
-
- To replace every instance of `foo' after point with `bar', use the
-command `M-x replace-string' with the two arguments `foo' and `bar'.
-Replacement occurs only after point: if you want to cover the whole
-buffer you must go to the beginning first. By default, all occurrences
-up to the end of the buffer are replaced. To limit replacement to part
-of the buffer, narrow to that part of the buffer before doing the
-replacement (*note Narrowing::).
-
- When `replace-string' exits, point is left at the last occurrence
-replaced. The value of point when the `replace-string' command was
-issued is remembered on the mark ring; `C-u C-<SPC>' moves back there.
-
- A numeric argument restricts replacement to matches that are
-surrounded by word boundaries.
-
-\1f
-File: xemacs.info, Node: Regexp Replace, Next: Replacement and Case, Prev: Unconditional Replace, Up: Replace
-
-Regexp Replacement
-------------------
-
-`replace-string' replaces exact matches for a single string. The
-similar command `replace-regexp' replaces any match for a specified
-pattern.
-
- In `replace-regexp', the NEWSTRING need not be constant. It can
-refer to all or part of what is matched by the REGEXP. `\&' in
-NEWSTRING stands for the entire text being replaced. `\D' in
-NEWSTRING, where D is a digit, stands for whatever matched the D'th
-parenthesized grouping in REGEXP. For example,
-
- M-x replace-regexp <RET> c[ad]+r <RET> \&-safe <RET>
-
-would replace (for example) `cadr' with `cadr-safe' and `cddr' with
-`cddr-safe'.
-
- M-x replace-regexp <RET> \(c[ad]+r\)-safe <RET> \1 <RET>
-
-would perform exactly the opposite replacements. To include a `\' in
-the text to replace with, you must give `\\'.
-